1
0
mirror of https://github.com/pevans/erc-c.git synced 2024-08-20 09:29:01 +00:00
erc-c/tests/vm_screen.c

66 lines
1.3 KiB
C
Raw Normal View History

2017-12-27 07:02:56 +00:00
/*
* vm_screen.c
*
* Generally speaking the tests here are very incomplete; this is partly
* because a lot of the code in vm_screen depends on a third-party
* graphics library, but I think we can do a better job of decoupling
* some concepts (like screen areas) from the graphics library, such
* that we can make the code that uses those testable.
*/
2017-12-02 19:05:53 +00:00
#include <criterion/criterion.h>
#include "vm_screen.h"
2017-12-27 07:02:56 +00:00
static vm_screen *screen;
2017-12-02 19:05:53 +00:00
2017-12-27 07:02:56 +00:00
static void
setup()
{
2017-12-24 21:07:24 +00:00
screen = vm_screen_create();
2017-12-27 07:02:56 +00:00
}
static void
teardown()
{
vm_screen_free(screen);
}
TestSuite(vm_screen, .init = setup, .fini = teardown);
Test(vm_screen, create) {
2017-12-17 22:42:05 +00:00
cr_assert_neq(screen, NULL);
2017-12-02 19:05:53 +00:00
cr_assert_eq(screen->window, NULL);
cr_assert_eq(screen->render, NULL);
2017-12-24 21:07:24 +00:00
cr_assert_eq(screen->xcoords, 0);
cr_assert_eq(screen->ycoords, 0);
2017-12-27 07:02:56 +00:00
}
2017-12-02 19:05:53 +00:00
2017-12-27 07:02:56 +00:00
Test(vm_screen, xcoords)
{
screen->xcoords = 123;
cr_assert_eq(screen->xcoords, 123);
screen->xcoords = 234;
cr_assert_eq(screen->xcoords, 234);
}
Test(vm_screen, ycoords)
{
screen->ycoords = 123;
cr_assert_eq(screen->ycoords, 123);
screen->ycoords = 234;
cr_assert_eq(screen->ycoords, 234);
2017-12-02 19:05:53 +00:00
}
Test(vm_screen, area_set)
{
vm_area area;
vm_area_set(&area, 1, 2, 3, 4);
cr_assert_eq(area.xoff, 1);
cr_assert_eq(area.yoff, 2);
cr_assert_eq(area.width, 3);
cr_assert_eq(area.height, 4);
}