70 lines
1.7 KiB
C
70 lines
1.7 KiB
C
/**
|
|
* Copyright (c) 2026 Dominic Masters
|
|
*
|
|
* This software is released under the MIT License.
|
|
* https://opensource.org/licenses/MIT
|
|
*/
|
|
|
|
#include "dusktest.h"
|
|
#include "console/console.h"
|
|
#include "script/scriptmanager.h"
|
|
#include "util/memory.h"
|
|
|
|
static int console_setup(void **state) {
|
|
consoleInit();
|
|
|
|
errorret_t ret = scriptManagerInit();
|
|
if(errorIsNotOk(ret)) { errorCatch(ret); return -1; }
|
|
|
|
return 0;
|
|
}
|
|
|
|
static int console_teardown(void **state) {
|
|
errorret_t ret = scriptManagerDispose();
|
|
if(errorIsNotOk(ret)) errorCatch(ret);
|
|
|
|
consoleDispose();
|
|
return 0;
|
|
}
|
|
|
|
static void test_console_print_joins_stringified_args(void **state) {
|
|
jerry_value_t result;
|
|
errorret_t ret = scriptManagerExec(
|
|
"Console.print('hello', 42, true);", &result
|
|
);
|
|
assert_true(errorIsOk(ret));
|
|
jerry_value_free(result);
|
|
|
|
assert_string_equal(
|
|
CONSOLE.line[CONSOLE_HISTORY_MAX - 1], "hello 42 true"
|
|
);
|
|
|
|
assert_int_equal(memoryGetAllocatedCount(), 0);
|
|
}
|
|
|
|
static void test_console_print_no_args_prints_empty_line(void **state) {
|
|
jerry_value_t result;
|
|
errorret_t ret = scriptManagerExec("Console.print();", &result);
|
|
assert_true(errorIsOk(ret));
|
|
jerry_value_free(result);
|
|
|
|
assert_string_equal(CONSOLE.line[CONSOLE_HISTORY_MAX - 1], "");
|
|
|
|
assert_int_equal(memoryGetAllocatedCount(), 0);
|
|
}
|
|
|
|
int main(void) {
|
|
assertInit();
|
|
const struct CMUnitTest tests[] = {
|
|
cmocka_unit_test_setup_teardown(
|
|
test_console_print_joins_stringified_args,
|
|
console_setup, console_teardown
|
|
),
|
|
cmocka_unit_test_setup_teardown(
|
|
test_console_print_no_args_prints_empty_line,
|
|
console_setup, console_teardown
|
|
),
|
|
};
|
|
return cmocka_run_group_tests(tests, NULL, NULL);
|
|
}
|