Lines Matching +full:stdout +full:- +full:path
1 // SPDX-License-Identifier: GPL-2.0-only
56 for (i = 0; i < sel->blacklist.cnt; i++) { in should_run()
57 if (strstr(name, sel->blacklist.strs[i])) in should_run()
61 for (i = 0; i < sel->whitelist.cnt; i++) { in should_run()
62 if (strstr(name, sel->whitelist.strs[i])) in should_run()
66 if (!sel->whitelist.cnt && !sel->num_set) in should_run()
69 return num < sel->num_set_len && sel->num_set[num]; in should_run()
74 if (stdout == env.stdout) in dump_test_log()
77 fflush(stdout); /* exports env.log_buf & env.log_cnt */ in dump_test_log()
79 if (env.verbosity > VERBOSE_NONE || test->force_log || failed) { in dump_test_log()
82 fprintf(env.stdout, "%s", env.log_buf); in dump_test_log()
83 if (env.log_buf[env.log_cnt - 1] != '\n') in dump_test_log()
84 fprintf(env.stdout, "\n"); in dump_test_log()
88 fseeko(stdout, 0, SEEK_SET); /* rewind */ in dump_test_log()
93 if (env.test->skip_cnt) { in skip_account()
95 env.test->skip_cnt = 0; in skip_account()
101 /* A bunch of tests set custom affinity per-thread and/or per-process. Reset
102 * it after each test/sub-test.
130 if (env.saved_netns_fd == -1) { in save_netns()
138 if (setns(env.saved_netns_fd, CLONE_NEWNET) == -1) { in restore_netns()
148 int sub_error_cnt = test->error_cnt - test->old_error_cnt; in test__end_subtest()
158 fprintf(env.stdout, "#%d/%d %s:%s\n", in test__end_subtest()
159 test->test_num, test->subtest_num, in test__end_subtest()
160 test->subtest_name, sub_error_cnt ? "FAIL" : "OK"); in test__end_subtest()
162 free(test->subtest_name); in test__end_subtest()
163 test->subtest_name = NULL; in test__end_subtest()
170 if (test->subtest_name) in test__start_subtest()
173 test->subtest_num++; in test__start_subtest()
177 "Subtest #%d didn't provide sub-test name!\n", in test__start_subtest()
178 test->subtest_num); in test__start_subtest()
182 if (!should_run(&env.subtest_selector, test->subtest_num, name)) in test__start_subtest()
185 test->subtest_name = strdup(name); in test__start_subtest()
186 if (!test->subtest_name) { in test__start_subtest()
189 test->subtest_num); in test__start_subtest()
192 env.test->old_error_cnt = env.test->error_cnt; in test__start_subtest()
198 env.test->force_log = true; in test__force_log()
203 env.test->skip_cnt++; in test__skip()
208 env.test->error_cnt++; in test__fail()
211 int test__join_cgroup(const char *path) in test__join_cgroup() argument
215 if (!env.test->need_cgroup_cleanup) { in test__join_cgroup()
219 env.test->test_num, env.test->test_name); in test__join_cgroup()
220 return -1; in test__join_cgroup()
223 env.test->need_cgroup_cleanup = true; in test__join_cgroup()
226 fd = create_and_get_cgroup(path); in test__join_cgroup()
230 env.test->test_num, env.test->test_name, path, errno); in test__join_cgroup()
234 if (join_cgroup(path)) { in test__join_cgroup()
237 env.test->test_num, env.test->test_name, path, errno); in test__join_cgroup()
238 return -1; in test__join_cgroup()
250 fprintf(stdout, "%s:FAIL:map '%s' not found\n", test, name); in bpf_find_map()
252 return -1; in bpf_find_map()
264 if (sysctl_fd != -1) { in is_jit_enabled()
297 return -1; in compare_map_keys()
321 err = -1; in compare_stack_ips()
330 err = -1; in compare_stack_ips()
344 fp = popen("readelf -n ./urandom_read | grep 'Build ID'", "r"); in extract_build_id()
346 return -1; in extract_build_id()
348 if (getline(&line, &len, fp) == -1) in extract_build_id()
360 return -1; in extract_build_id()
397 { "name-blacklist", ARG_TEST_NAME_BLACKLIST, "NAMES", 0,
399 { "verifier-stats", ARG_VERIFIER_STATS, NULL, 0,
402 "Verbose output (use -vv or -vvv for progressively verbose output)" },
404 "Get number of selected top-level tests " },
415 vfprintf(stdout, format, args); in libbpf_print_fn()
426 for (i = 0; i < set->cnt; i++) in free_str_set()
427 free((void *)set->strs[i]); in free_str_set()
428 free(set->strs); in free_str_set()
438 return -ENOMEM; in parse_str_list()
440 set->cnt = 0; in parse_str_list()
441 set->strs = NULL; in parse_str_list()
456 set->cnt = cnt; in parse_str_list()
457 set->strs = (const char **)strs; in parse_str_list()
463 return -ENOMEM; in parse_str_list()
470 struct test_env *env = state->input; in parse_arg()
479 &env->subtest_selector.num_set, in parse_arg()
480 &env->subtest_selector.num_set_len)) { in parse_arg()
483 return -EINVAL; in parse_arg()
486 if (parse_num_list(arg, &env->test_selector.num_set, in parse_arg()
487 &env->test_selector.num_set_len)) { in parse_arg()
489 return -EINVAL; in parse_arg()
499 &env->subtest_selector.whitelist)) in parse_arg()
500 return -ENOMEM; in parse_arg()
502 if (parse_str_list(arg, &env->test_selector.whitelist)) in parse_arg()
503 return -ENOMEM; in parse_arg()
512 &env->subtest_selector.blacklist)) in parse_arg()
513 return -ENOMEM; in parse_arg()
515 if (parse_str_list(arg, &env->test_selector.blacklist)) in parse_arg()
516 return -ENOMEM; in parse_arg()
520 env->verifier_stats = true; in parse_arg()
523 env->verbosity = VERBOSE_NORMAL; in parse_arg()
526 env->verbosity = VERBOSE_VERY; in parse_arg()
529 env->verbosity = VERBOSE_SUPER; in parse_arg()
533 "Unrecognized verbosity setting ('%s'), only -v and -vv are supported\n", in parse_arg()
535 return -EINVAL; in parse_arg()
540 env->get_test_cnt = true; in parse_arg()
543 env->list_test_names = true; in parse_arg()
559 env.stdout = stdout; in stdio_hijack()
563 /* nothing to do, output to stdout by default */ in stdio_hijack()
567 /* stdout and stderr -> buffer */ in stdio_hijack()
568 fflush(stdout); in stdio_hijack()
570 stdout = open_memstream(&env.log_buf, &env.log_cnt); in stdio_hijack()
571 if (!stdout) { in stdio_hijack()
572 stdout = env.stdout; in stdio_hijack()
577 stderr = stdout; in stdio_hijack()
584 if (stdout == env.stdout) in stdio_restore()
587 fclose(stdout); in stdio_restore()
593 stdout = env.stdout; in stdio_restore()
600 * into corresponding sub-directory to load correct BPF objects.
602 * This is done by looking at executable name. If it contains "-flavor"
608 * some/path/to/test_progs[-flavor], where -flavor part is optional. in cd_flavor_subdir()
609 * First cut out "test_progs[-flavor]" part, then extract "flavor" in cd_flavor_subdir()
617 flavor = strrchr(flavor, '-'); in cd_flavor_subdir()
622 fprintf(stdout, "Switching to flavor '%s' subdirectory...\n", flavor); in cd_flavor_subdir()
637 if (env.stdout) in crash_handler()
676 return -1; in main()
685 test->test_num = i + 1; in main()
688 test->test_num, test->test_name)) in main()
697 fprintf(env.stdout, "%s\n", test->test_name); in main()
702 test->run_test(); in main()
703 /* ensure last sub-test is finalized properly */ in main()
704 if (test->subtest_name) in main()
707 test->tested = true; in main()
708 if (test->error_cnt) in main()
714 dump_test_log(test, test->error_cnt); in main()
716 fprintf(env.stdout, "#%d %s:%s\n", in main()
717 test->test_num, test->test_name, in main()
718 test->error_cnt ? "FAIL" : "OK"); in main()
722 if (test->need_cgroup_cleanup) in main()
735 fprintf(stdout, "Summary: %d/%d PASSED, %d SKIPPED, %d FAILED\n", in main()