66 lines
2.4 KiB
C
66 lines
2.4 KiB
C
#include "test_shell_commander.h"
|
|
#include "commander.h"
|
|
#include "str8.h"
|
|
#include "tester.h"
|
|
#include <stdbool.h>
|
|
#include <stdio.h>
|
|
#include <stdlib.h>
|
|
#include <string.h>
|
|
|
|
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);
|
|
}
|