1
0
mirror of https://github.com/pevans/erc-c.git synced 2025-01-19 17:31:17 +00:00

Split up logic for keyboard test

In accordance with the split in logic we had made for the source
function
This commit is contained in:
Peter Evans 2018-02-10 18:31:38 -06:00
parent 69d425db2d
commit 350a06890a

View File

@ -2,6 +2,25 @@
#include "vm_event.h" #include "vm_event.h"
static vm_event ev;
static vm_screen *scr;
static void
setup()
{
scr = vm_screen_create();
ev.screen = scr;
}
static void
teardown()
{
vm_screen_free(scr);
memset(&ev, 0, sizeof(vm_event));
}
TestSuite(vm_event, .init = setup, .fini = teardown);
/* /*
* There's not really much we can test here--right now--since almost * There's not really much we can test here--right now--since almost
* everything is driven by the SDL_PollEvent() function. * everything is driven by the SDL_PollEvent() function.
@ -16,21 +35,19 @@ Test(vm_event, poll)
*/ */
Test(vm_event, keyboard) Test(vm_event, keyboard)
{ {
vm_event ev;
vm_screen *scr;
scr = vm_screen_create();
ev.screen = scr;
ev.event.type = SDL_KEYDOWN; ev.event.type = SDL_KEYDOWN;
ev.event.key.keysym.sym = 'b'; ev.event.key.keysym.sym = 'b';
cr_assert_eq(scr->dirty, false); cr_assert_eq(scr->dirty, false);
cr_assert_eq(scr->key_pressed, false); cr_assert_eq(scr->key_pressed, false);
vm_event_keyboard(&ev); vm_event_keyboard(&ev);
}
cr_assert_eq(scr->dirty, true); Test(vm_event, keyboard_normal)
cr_assert_eq(scr->key_pressed, true); {
ev.event.type = SDL_KEYDOWN;
ev.event.key.keysym.sym = 'b';
vm_event_keyboard(&ev);
cr_assert_eq(scr->last_key, 'b'); cr_assert_eq(scr->last_key, 'b');
ev.event.key.keysym.mod = KMOD_LSHIFT; ev.event.key.keysym.mod = KMOD_LSHIFT;
@ -45,12 +62,14 @@ Test(vm_event, keyboard)
ev.event.type = SDL_KEYUP; ev.event.type = SDL_KEYUP;
vm_event_keyboard(&ev); vm_event_keyboard(&ev);
cr_assert_eq(scr->key_pressed, false); cr_assert_eq(scr->key_pressed, false);
}
Test(vm_event, keyboard_special)
{
ev.event.type = SDL_KEYUP;
cr_assert_eq(scr->should_exit, false); cr_assert_eq(scr->should_exit, false);
ev.event.key.keysym.sym = 'q'; ev.event.key.keysym.sym = 'q';
ev.event.key.keysym.mod = KMOD_ALT; ev.event.key.keysym.mod = KMOD_ALT;
vm_event_keyboard(&ev); vm_event_keyboard(&ev);
cr_assert_eq(scr->should_exit, true); cr_assert_eq(scr->should_exit, true);
vm_screen_free(scr);
} }