From e65158a0326108d1fc724ee683b7fa900ef2671a Mon Sep 17 00:00:00 2001 From: Albert Cervin Date: Thu, 26 Jan 2023 13:07:07 +0100 Subject: More tests and documentation Also, split out platform-specific parts and add mocks for tests. --- test/command.c | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) (limited to 'test/command.c') diff --git a/test/command.c b/test/command.c index 738f5f9..be5fffc 100644 --- a/test/command.c +++ b/test/command.c @@ -72,8 +72,30 @@ void test_lookup_command() { "Expected the found function to have the correct name"); } +int32_t failing_command(struct command_ctx ctx, int argc, const char *argv[]) { + return 100; +} + +void test_execute_command() { + struct commands cmds = single_fake_command("fake"); + struct command *cmd = lookup_command(&cmds, "fake"); + + int32_t res = execute_command(cmd, &cmds, NULL, NULL, 0, NULL); + ASSERT(res == 0, "Expected to be able to execute command successfully"); + + register_command(&cmds, (struct command){ + .fn = failing_command, + .name = "fejl", + .userdata = NULL, + }); + struct command *fail_cmd = lookup_command(&cmds, "fejl"); + int32_t res2 = execute_command(fail_cmd, &cmds, NULL, NULL, 0, NULL); + ASSERT(res2 != 0, "Expected failing command to fail"); +} + void run_command_tests() { run_test(test_command_registry_create); run_test(test_register_command); run_test(test_lookup_command); + run_test(test_execute_command); } -- cgit v1.2.3