From 1f9826faefa2b1a1bddac3f3413a6d6055ee49bf Mon Sep 17 00:00:00 2001 From: Johnny Richard Date: Sat, 17 Apr 2021 01:27:27 +0200 Subject: Add microunit test framework Signed-off-by: Johnny Richard --- test/controller-test.c | 89 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 89 insertions(+) create mode 100644 test/controller-test.c (limited to 'test/controller-test.c') diff --git a/test/controller-test.c b/test/controller-test.c new file mode 100644 index 0000000..fb13000 --- /dev/null +++ b/test/controller-test.c @@ -0,0 +1,89 @@ +#define MUNIT_ENABLE_ASSERT_ALIASES +#include "controller.h" +#include + +static SDL_Event +an_event(SDL_EventType type, SDL_KeyCode keycode) { + SDL_Event event; + event.type = type; + event.key.keysym.sym = keycode; + return event; +} + +static MunitResult +press_and_release_up(const MunitParameter params[], void* fixture) +{ + controller_t ctrl = {0}; + + SDL_Event event = an_event(SDL_KEYDOWN, SDLK_UP); + controller_update(&ctrl, &event); + assert_true(ctrl.up); + + event = an_event(SDL_KEYUP, SDLK_UP); + controller_update(&ctrl, &event); + assert_false(ctrl.up); + return MUNIT_OK; +} + +static MunitResult +press_and_release_down(const MunitParameter params[], void* fixture) +{ + controller_t ctrl = {0}; + + SDL_Event event = an_event(SDL_KEYDOWN, SDLK_DOWN); + controller_update(&ctrl, &event); + assert_true(ctrl.down); + + event = an_event(SDL_KEYUP, SDLK_DOWN); + controller_update(&ctrl, &event); + assert_false(ctrl.down); + return MUNIT_OK; +} + +static MunitResult +press_and_release_right(const MunitParameter params[], void* fixture) +{ + controller_t ctrl = {0}; + + SDL_Event event = an_event(SDL_KEYDOWN, SDLK_RIGHT); + controller_update(&ctrl, &event); + assert_true(ctrl.right); + + event = an_event(SDL_KEYUP, SDLK_RIGHT); + controller_update(&ctrl, &event); + assert_false(ctrl.right); + return MUNIT_OK; +} + +static MunitResult +press_and_release_left(const MunitParameter params[], void* fixture) +{ + controller_t ctrl = {0}; + + SDL_Event event = an_event(SDL_KEYDOWN, SDLK_LEFT); + controller_update(&ctrl, &event); + assert_true(ctrl.left); + + event = an_event(SDL_KEYUP, SDLK_LEFT); + controller_update(&ctrl, &event); + assert_false(ctrl.left); + return MUNIT_OK; +} + +MunitTest tests[] = { + { "/press_and_release_up", press_and_release_up, NULL, NULL, MUNIT_TEST_OPTION_NONE, NULL }, + { "/press_and_release_down", press_and_release_down, NULL, NULL, MUNIT_TEST_OPTION_NONE, NULL }, + { "/press_and_release_right", press_and_release_right, NULL, NULL, MUNIT_TEST_OPTION_NONE, NULL }, + { "/press_and_release_left", press_and_release_left, NULL, NULL, MUNIT_TEST_OPTION_NONE, NULL }, + { NULL, NULL, NULL, NULL, MUNIT_TEST_OPTION_NONE, NULL } +}; + +static const MunitSuite suite = { + "/controller", tests, NULL, 1, MUNIT_TEST_OPTION_NONE +}; + +int +main(int argc, char *argv[]) +{ + return munit_suite_main(&suite, NULL, argc, argv); +} -- cgit v1.2.3 From 6c1f0750e637f3a67aada3846bf32f815809205c Mon Sep 17 00:00:00 2001 From: Johnny Richard Date: Thu, 28 Oct 2021 02:59:05 +0200 Subject: docs: Add BSD 3-Clause License Signed-off-by: Johnny Richard --- test/controller-test.c | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) (limited to 'test/controller-test.c') diff --git a/test/controller-test.c b/test/controller-test.c index fb13000..d6c1455 100644 --- a/test/controller-test.c +++ b/test/controller-test.c @@ -1,3 +1,33 @@ +/* + * Copyright (c) 2021, Johnny Richard + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * 3. Neither the name of the copyright holder nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + #define MUNIT_ENABLE_ASSERT_ALIASES #include "controller.h" #include -- cgit v1.2.3 From e415b62a2e85f44e6ff285e08b16525605d2fc0f Mon Sep 17 00:00:00 2001 From: Johnny Richard Date: Sun, 14 Nov 2021 01:27:15 +0100 Subject: controller_t: Reduce memory usage using bitwise --- test/controller-test.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) (limited to 'test/controller-test.c') diff --git a/test/controller-test.c b/test/controller-test.c index d6c1455..c271756 100644 --- a/test/controller-test.c +++ b/test/controller-test.c @@ -47,11 +47,11 @@ press_and_release_up(const MunitParameter params[], void* fixture) SDL_Event event = an_event(SDL_KEYDOWN, SDLK_UP); controller_update(&ctrl, &event); - assert_true(ctrl.up); + assert_true(controller_is_up_pressed(&ctrl)); event = an_event(SDL_KEYUP, SDLK_UP); controller_update(&ctrl, &event); - assert_false(ctrl.up); + assert_false(controller_is_up_pressed(&ctrl)); return MUNIT_OK; } @@ -62,11 +62,11 @@ press_and_release_down(const MunitParameter params[], void* fixture) SDL_Event event = an_event(SDL_KEYDOWN, SDLK_DOWN); controller_update(&ctrl, &event); - assert_true(ctrl.down); + assert_true(controller_is_down_pressed(&ctrl)); event = an_event(SDL_KEYUP, SDLK_DOWN); controller_update(&ctrl, &event); - assert_false(ctrl.down); + assert_false(controller_is_down_pressed(&ctrl)); return MUNIT_OK; } @@ -77,11 +77,11 @@ press_and_release_right(const MunitParameter params[], void* fixture) SDL_Event event = an_event(SDL_KEYDOWN, SDLK_RIGHT); controller_update(&ctrl, &event); - assert_true(ctrl.right); + assert_true(controller_is_right_pressed(&ctrl)); event = an_event(SDL_KEYUP, SDLK_RIGHT); controller_update(&ctrl, &event); - assert_false(ctrl.right); + assert_false(controller_is_right_pressed(&ctrl)); return MUNIT_OK; } @@ -92,11 +92,11 @@ press_and_release_left(const MunitParameter params[], void* fixture) SDL_Event event = an_event(SDL_KEYDOWN, SDLK_LEFT); controller_update(&ctrl, &event); - assert_true(ctrl.left); + assert_true(controller_is_left_pressed(&ctrl)); event = an_event(SDL_KEYUP, SDLK_LEFT); controller_update(&ctrl, &event); - assert_false(ctrl.left); + assert_false(controller_is_left_pressed(&ctrl)); return MUNIT_OK; } -- cgit v1.2.3