/** * Copyright (c) 2026 Dominic Masters * * This software is released under the MIT License. * https://opensource.org/licenses/MIT */ #include "dusktest.h" #include "script/scriptmanager.h" #include "display/screen/screen.h" static int screen_setup(void **state) { errorret_t ret = scriptManagerInit(); if(errorIsNotOk(ret)) { errorCatch(ret); return -1; } return 0; } static int screen_teardown(void **state) { errorret_t ret = scriptManagerDispose(); if(errorIsNotOk(ret)) errorCatch(ret); return 0; } static void test_screen_dimensions_readback(void **state) { SCREEN.width = 640; SCREEN.height = 480; SCREEN.scanX = 10; SCREEN.scanY = 20; SCREEN.scanWidth = 600; SCREEN.scanHeight = 440; jerry_value_t result; errorret_t ret = scriptManagerExec("Screen.width;", &result); assert_true(errorIsOk(ret)); assert_int_equal((int32_t)jerry_value_as_number(result), 640); jerry_value_free(result); ret = scriptManagerExec("Screen.height;", &result); assert_true(errorIsOk(ret)); assert_int_equal((int32_t)jerry_value_as_number(result), 480); jerry_value_free(result); ret = scriptManagerExec("Screen.scanX;", &result); assert_true(errorIsOk(ret)); assert_int_equal((int32_t)jerry_value_as_number(result), 10); jerry_value_free(result); ret = scriptManagerExec("Screen.scanY;", &result); assert_true(errorIsOk(ret)); assert_int_equal((int32_t)jerry_value_as_number(result), 20); jerry_value_free(result); ret = scriptManagerExec("Screen.scanWidth;", &result); assert_true(errorIsOk(ret)); assert_int_equal((int32_t)jerry_value_as_number(result), 600); jerry_value_free(result); ret = scriptManagerExec("Screen.scanHeight;", &result); assert_true(errorIsOk(ret)); assert_int_equal((int32_t)jerry_value_as_number(result), 440); jerry_value_free(result); } int main(void) { assertInit(); const struct CMUnitTest tests[] = { cmocka_unit_test_setup_teardown( test_screen_dimensions_readback, screen_setup, screen_teardown ), }; return cmocka_run_group_tests(tests, NULL, NULL); }