Add RzRun tests

This commit is contained in:
Anton Kochkov 2021-08-23 13:35:42 +08:00 committed by Anton Kochkov
parent 7e276b3f09
commit 8eba1dcbc4
2 changed files with 65 additions and 0 deletions

View file

@ -69,6 +69,7 @@ if get_option('enable_tests')
'queue',
'rbtree',
'reg',
'run',
'rz_test',
'rzpipe',
'serialize_analysis',

64
test/unit/test_run.c Normal file
View file

@ -0,0 +1,64 @@
// SPDX-FileCopyrightText: 2021 Anton Kochkov <anton.kochkov@gmail.com
// SPDX-License-Identifier: LGPL-3.0-only
#include <rz_util.h>
#include <rz_socket.h>
#include "minunit.h"
static char tmp_path[1000];
static const char *runprofile =
"program=%s\n"
"arg1=argument1\n"
"arg2=argument2\n"
"arg3=argument3\n"
"setenv=FOO=BAR\n"
"timeout=3\n"
"stdout=foo.txt\n";
const char *get_auxiliary_path(const char *s) {
char *p = rz_sys_pid_to_path(rz_sys_getpid());
char *pp = (char *)rz_str_lchr(p, RZ_SYS_DIR[0]);
if (pp) {
*pp = '\0';
}
snprintf(tmp_path, sizeof(tmp_path), "%s%s%s%s%s", p, RZ_SYS_DIR, "auxiliary", RZ_SYS_DIR, s);
free(p);
return tmp_path;
}
bool test_rz_run_profile_parse(void) {
RzRunProfile *rp = rz_run_new(NULL);
mu_assert_notnull(rp, "create new run profile");
const char *exe_path = get_auxiliary_path("subprocess-multiargs");
char *profile = rz_str_newf(runprofile, exe_path);
bool res = rz_run_parse(rp, profile);
mu_assert_true(res, "parse run profile");
rz_run_free(rp);
mu_end;
}
bool test_rz_run_profile(void) {
RzRunProfile *rp = rz_run_new(NULL);
mu_assert_notnull(rp, "create new run profile");
const char *exe_path = get_auxiliary_path("subprocess-multiargs");
char *profile = rz_str_newf(runprofile, exe_path);
bool res = rz_run_parse(rp, profile);
mu_assert_true(res, "parse run profile");
int exitcode = rz_run_start(rp);
mu_assert_eq(exitcode, 0, "run success");
rz_run_free(rp);
mu_end;
}
int all_tests() {
mu_run_test(test_rz_run_profile_parse);
mu_run_test(test_rz_run_profile);
return tests_passed != tests_run;
}
mu_main(all_tests)