#include "test_shell_commander.h" #include "wapp.h" #include #include #include #include TestFuncResult test_commander_cmd_success(void) { Str8List cmd = {0}; wapp_str8_list_push_back(&cmd, &wapp_str8_node_from_cstr("echo")); wapp_str8_list_push_back(&cmd, &wapp_str8_node_from_cstr("hello world")); CMDResult result = wapp_shell_commander_execute(SHELL_OUTPUT_DISCARD, NULL, &cmd); bool succeeded = result.exited && result.exit_code == EXIT_SUCCESS && result.error == SHELL_ERR_NO_ERROR; return wapp_tester_result(succeeded); } TestFuncResult test_commander_cmd_failure(void) { Str8List cmd = {0}; wapp_str8_list_push_back(&cmd, &wapp_str8_node_from_cstr("grep")); CMDResult result = wapp_shell_commander_execute(SHELL_OUTPUT_DISCARD, NULL, &cmd); bool failed = result.exited && result.exit_code != EXIT_SUCCESS && result.error == SHELL_ERR_NO_ERROR; return wapp_tester_result(failed); } TestFuncResult test_commander_cmd_out_buf_success(void) { Str8 buf = wapp_str8_buf(64); Str8 expected = wapp_str8_buf(64); char msg[] = "hello world"; wapp_str8_copy_cstr_capped(&expected, msg); Str8List cmd = {0}; wapp_str8_list_push_back(&cmd, &wapp_str8_node_from_cstr("echo")); wapp_str8_list_push_back(&cmd, &wapp_str8_node_from_cstr(msg)); CMDResult result = wapp_shell_commander_execute(SHELL_OUTPUT_CAPTURE, &buf, &cmd); bool succeeded = result.exited && result.exit_code == EXIT_SUCCESS && result.error == SHELL_ERR_NO_ERROR && wapp_str8_equal_to_count(&buf, &expected, strlen(msg)); return wapp_tester_result(succeeded); } TestFuncResult test_commander_cmd_out_buf_failure(void) { Str8 buf = wapp_str8_buf(4); Str8 expected = wapp_str8_buf(64); char msg[] = "hello world"; wapp_str8_copy_cstr_capped(&expected, msg); Str8List cmd = {0}; wapp_str8_list_push_back(&cmd, &wapp_str8_node_from_cstr("echo")); wapp_str8_list_push_back(&cmd, &wapp_str8_node_from_cstr(msg)); CMDResult result = wapp_shell_commander_execute(SHELL_OUTPUT_CAPTURE, &buf, &cmd); bool failed = !result.exited && result.exit_code != EXIT_SUCCESS && result.error == SHELL_ERR_OUT_BUF_FULL && !wapp_str8_equal(&buf, &expected); return wapp_tester_result(failed); }