This allows to easily add additional parameters Signed-off-by: Pascal Bach <pascal.b...@siemens.com> --- main.c | 10 ++-------- tests/utils.c | 14 ++++++++++---- utils.c | 4 ++-- utils.h | 9 ++++++++- 4 files changed, 22 insertions(+), 15 deletions(-)
diff --git a/main.c b/main.c index 31bf3b5..765d688 100644 --- a/main.c +++ b/main.c @@ -45,13 +45,6 @@ print_usage(FILE *stream, char *progname) "[-h] [ptest1 ptest2 ...]\n", progname); } -static struct { - char *directory; - int list; - int timeout; - char **ptests; -} opts; - int main(int argc, char *argv[]) { @@ -66,6 +59,7 @@ main(int argc, char *argv[]) struct ptest_list *head, *run; + struct options opts; opts.directory = strdup(DEFAULT_DIRECTORY); opts.list = 0; opts.timeout = DEFAULT_TIMEOUT; @@ -133,7 +127,7 @@ main(int argc, char *argv[]) ptest_list_free_all(head); } - rc = run_ptests(run, opts.timeout, argv[0], stdout, stderr); + rc = run_ptests(run, opts, argv[0], stdout, stderr); ptest_list_free_all(run); diff --git a/tests/utils.c b/tests/utils.c index 1332798..6b70c2e 100644 --- a/tests/utils.c +++ b/tests/utils.c @@ -51,6 +51,8 @@ static char *ptests_not_found[] = { NULL, }; +static struct options EmptyOpts; + static inline void find_word(int *found, const char *line, const char *word) { @@ -153,8 +155,9 @@ START_TEST(test_filter_ptests) END_TEST START_TEST(test_run_ptests) - struct ptest_list *head; - int timeout = 1; + struct ptest_list *head; + struct options opts = EmptyOpts; + opts.timeout = 1; int rc; char *buf_stdout; @@ -173,7 +176,7 @@ START_TEST(test_run_ptests) ptest_list_remove(head, "hang", 1); ptest_list_remove(head, "fail", 1); - rc = run_ptests(head, timeout, "test_run_ptests", fp_stdout, fp_stderr); + rc = run_ptests(head, opts, "test_run_ptests", fp_stdout, fp_stderr); ck_assert(rc == 0); ptest_list_free_all(head); @@ -275,8 +278,11 @@ test_ptest_expected_failure(struct ptest_list *head, const int timeout, char *pr struct ptest_list *filtered = filter_ptests(head, &progname, 1); ck_assert(ptest_list_length(filtered) == 1); + struct options opts = EmptyOpts; + opts.timeout = timeout; + h_analizer( - run_ptests(filtered, timeout, progname, fp_stdout, fp_stderr), + run_ptests(filtered, opts, progname, fp_stdout, fp_stderr), fp_stdout, fp_stderr ); diff --git a/utils.c b/utils.c index 77427e0..48c1990 100644 --- a/utils.c +++ b/utils.c @@ -302,7 +302,7 @@ wait_child(const char *ptest_dir, const char *run_ptest, pid_t pid, } int -run_ptests(struct ptest_list *head, int timeout, const char *progname, +run_ptests(struct ptest_list *head, const struct options opts, const char *progname, FILE *fp, FILE *fp_stderr) { int rc = 0; @@ -350,7 +350,7 @@ run_ptests(struct ptest_list *head, int timeout, const char *progname, fprintf(fp, "BEGIN: %s\n", ptest_dir); status = wait_child(ptest_dir, p->run_ptest, child, - timeout, fds, fps); + opts.timeout, fds, fps); if (status) { fprintf(fp, "ERROR: Exit status is %d\n", status); rc += 1; diff --git a/utils.h b/utils.h index 4dc23ef..d7f5268 100644 --- a/utils.h +++ b/utils.h @@ -30,10 +30,17 @@ #define CHECK_ALLOCATION(p, size, exit_on_null) \ check_allocation1(p, size, __FILE__, __LINE__, exit_on_null) +struct options { + char *directory; + int list; + int timeout; + char **ptests; +}; + extern void check_allocation1(void *, size_t, char *, int, int); extern struct ptest_list *get_available_ptests(const char *); extern int print_ptests(struct ptest_list *, FILE *); extern struct ptest_list *filter_ptests(struct ptest_list *, char **, int); -extern int run_ptests(struct ptest_list *, int, const char *progname, FILE *, FILE *); +extern int run_ptests(struct ptest_list *, const struct options, const char *progname, FILE *, FILE *); #endif -- 2.1.4 -- _______________________________________________ yocto mailing list yocto@yoctoproject.org https://lists.yoctoproject.org/listinfo/yocto