details: https://hg.nginx.org/njs/rev/9fc79481e32d branches: changeset: 1045:9fc79481e32d user: Dmitry Volyntsev <xei...@nginx.com> date: Mon Jul 15 15:54:41 2019 +0300 description: Tests: passing unit tests options in a struct.
diffstat: njs/test/njs_unit_test.c | 99 ++++++++++++++++++++++++----------------------- 1 files changed, 51 insertions(+), 48 deletions(-) diffs (237 lines): diff -r b0084c55d444 -r 9fc79481e32d njs/test/njs_unit_test.c --- a/njs/test/njs_unit_test.c Fri Jul 12 23:30:22 2019 +0300 +++ b/njs/test/njs_unit_test.c Mon Jul 15 15:54:41 2019 +0300 @@ -13853,9 +13853,15 @@ njs_externals_init(njs_vm_t *vm) } +typedef struct { + nxt_bool_t disassemble; + nxt_bool_t verbose; + nxt_bool_t module; +} njs_opts_t; + + static nxt_int_t -njs_unit_test(njs_unit_test_t tests[], size_t num, nxt_bool_t module, - nxt_bool_t disassemble, nxt_bool_t verbose) +njs_unit_test(njs_unit_test_t tests[], size_t num, njs_opts_t *opts) { u_char *start; njs_vm_t *vm, *nvm; @@ -13872,13 +13878,13 @@ njs_unit_test(njs_unit_test_t tests[], s for (i = 0; i < num; i++) { - if (verbose) { + if (opts->verbose) { nxt_printf("\"%V\"\n", &tests[i].script); } nxt_memzero(&options, sizeof(njs_vm_opt_t)); - options.module = module; + options.module = opts->module; vm = njs_vm_create(&options); if (vm == NULL) { @@ -13896,7 +13902,7 @@ njs_unit_test(njs_unit_test_t tests[], s ret = njs_vm_compile(vm, &start, start + tests[i].script.length); if (ret == NXT_OK) { - if (disassemble) { + if (opts->disassemble) { njs_disassembler(vm); } @@ -13957,7 +13963,7 @@ done: static nxt_int_t -njs_timezone_optional_test(nxt_bool_t disassemble, nxt_bool_t verbose) +njs_timezone_optional_test(njs_opts_t *opts) { size_t size; u_char buf[16]; @@ -13978,8 +13984,7 @@ njs_timezone_optional_test(nxt_bool_t di size = strftime((char *) buf, sizeof(buf), "%z", &tm); if (memcmp(buf, "+1245", size) == 0) { - ret = njs_unit_test(njs_tz_test, nxt_nitems(njs_tz_test), 0, - disassemble, verbose); + ret = njs_unit_test(njs_tz_test, nxt_nitems(njs_tz_test), opts); if (ret != NXT_OK) { return ret; } @@ -13995,7 +14000,7 @@ njs_timezone_optional_test(nxt_bool_t di static nxt_int_t -njs_regexp_optional_test(nxt_bool_t disassemble, nxt_bool_t verbose) +njs_regexp_optional_test(njs_opts_t *opts) { int erroff; pcre *re1, *re2; @@ -14020,8 +14025,7 @@ njs_regexp_optional_test(nxt_bool_t disa &errstr, &erroff, NULL); if (re1 == NULL && re2 != NULL) { - ret = njs_unit_test(njs_regexp_test, nxt_nitems(njs_regexp_test), 0, - disassemble, verbose); + ret = njs_unit_test(njs_regexp_test, nxt_nitems(njs_regexp_test), opts); if (ret != NXT_OK) { return ret; } @@ -14045,7 +14049,7 @@ njs_regexp_optional_test(nxt_bool_t disa static nxt_int_t -njs_vm_json_test(nxt_bool_t disassemble, nxt_bool_t verbose) +njs_vm_json_test(njs_opts_t *opts) { njs_vm_t *vm; nxt_int_t ret, rc; @@ -14168,8 +14172,7 @@ done: static nxt_int_t -njs_vm_object_alloc_test(njs_vm_t * vm, nxt_bool_t disassemble, - nxt_bool_t verbose) +njs_vm_object_alloc_test(njs_vm_t * vm, njs_opts_t *opts) { njs_ret_t ret; njs_value_t args[2], obj; @@ -14206,8 +14209,7 @@ njs_vm_object_alloc_test(njs_vm_t * vm, static nxt_int_t -nxt_file_basename_test(njs_vm_t * vm, nxt_bool_t disassemble, - nxt_bool_t verbose) +nxt_file_basename_test(njs_vm_t * vm, njs_opts_t *opts) { nxt_str_t name; nxt_bool_t success; @@ -14249,8 +14251,7 @@ nxt_file_basename_test(njs_vm_t * vm, nx static nxt_int_t -nxt_file_dirname_test(njs_vm_t * vm, nxt_bool_t disassemble, - nxt_bool_t verbose) +nxt_file_dirname_test(njs_vm_t * vm, njs_opts_t *opts) { nxt_str_t name; nxt_bool_t success; @@ -14293,7 +14294,7 @@ nxt_file_dirname_test(njs_vm_t * vm, nxt static nxt_int_t -njs_api_test(nxt_bool_t disassemble, nxt_bool_t verbose) +njs_api_test(njs_opts_t *opts) { njs_vm_t *vm; nxt_int_t ret, rc; @@ -14301,7 +14302,7 @@ njs_api_test(nxt_bool_t disassemble, nxt njs_vm_opt_t options; static const struct { - nxt_int_t (*test)(njs_vm_t *, nxt_bool_t, nxt_bool_t); + nxt_int_t (*test)(njs_vm_t *, njs_opts_t *); nxt_str_t name; } tests[] = { { njs_vm_object_alloc_test, @@ -14324,7 +14325,7 @@ njs_api_test(nxt_bool_t disassemble, nxt goto done; } - ret = tests[i].test(vm, disassemble, verbose); + ret = tests[i].test(vm, opts); if (nxt_slow_path(ret != NXT_OK)) { nxt_printf("njs_api_test: \"%V\" test failed\n", &tests[i].name); goto done; @@ -14354,20 +14355,19 @@ int nxt_cdecl main(int argc, char **argv) { nxt_int_t ret; - nxt_bool_t disassemble, verbose; - - disassemble = 0; - verbose = 0; + njs_opts_t opts; + + nxt_memzero(&opts, sizeof(njs_opts_t)); if (argc > 1) { switch (argv[1][0]) { case 'd': - disassemble = 1; + opts.disassemble = 1; break; case 'v': - verbose = 1; + opts.verbose = 1; break; default: @@ -14380,36 +14380,39 @@ main(int argc, char **argv) /* script tests. */ - ret = njs_unit_test(njs_test, nxt_nitems(njs_test), 0, disassemble, - verbose); + ret = njs_unit_test(njs_test, nxt_nitems(njs_test), &opts); + if (ret != NXT_OK) { + return ret; + } + + ret = njs_timezone_optional_test(&opts); + if (ret != NXT_OK) { + return ret; + } + + ret = njs_regexp_optional_test(&opts); + if (ret != NXT_OK) { + return ret; + } + + ret = njs_vm_json_test(&opts); + if (ret != NXT_OK) { + return ret; + } + + ret = njs_api_test(&opts); if (ret != NXT_OK) { return ret; } /* module tests. */ - ret = njs_unit_test(njs_module_test, nxt_nitems(njs_module_test), 1, - disassemble, verbose); - if (ret != NXT_OK) { - return ret; - } - - ret = njs_timezone_optional_test(disassemble, verbose); - if (ret != NXT_OK) { - return ret; - } - - ret = njs_regexp_optional_test(disassemble, verbose); + opts.module = 1; + + ret = njs_unit_test(njs_module_test, nxt_nitems(njs_module_test), &opts); if (ret != NXT_OK) { return ret; } nxt_printf("njs unit tests passed\n"); - - ret = njs_vm_json_test(disassemble, verbose); - if (ret != NXT_OK) { - return ret; - } - - return njs_api_test(disassemble, verbose); } _______________________________________________ nginx-devel mailing list nginx-devel@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-devel