Lines Matching +full:stdout +full:- +full:path
1 // SPDX-License-Identifier: GPL-2.0-only
79 for (i = 0; i < sel->blacklist.cnt; i++) { in should_run()
80 if (glob_match(name, sel->blacklist.strs[i])) in should_run()
84 for (i = 0; i < sel->whitelist.cnt; i++) { in should_run()
85 if (glob_match(name, sel->whitelist.strs[i])) in should_run()
89 if (!sel->whitelist.cnt && !sel->num_set) in should_run()
92 return num < sel->num_set_len && sel->num_set[num]; in should_run()
97 if (stdout == env.stdout) in dump_test_log()
100 fflush(stdout); /* exports env.log_buf & env.log_cnt */ in dump_test_log()
102 if (env.verbosity > VERBOSE_NONE || test->force_log || failed) { in dump_test_log()
105 fprintf(env.stdout, "%s", env.log_buf); in dump_test_log()
106 if (env.log_buf[env.log_cnt - 1] != '\n') in dump_test_log()
107 fprintf(env.stdout, "\n"); in dump_test_log()
111 fseeko(stdout, 0, SEEK_SET); /* rewind */ in dump_test_log()
116 if (env.test->skip_cnt) { in skip_account()
118 env.test->skip_cnt = 0; in skip_account()
124 /* A bunch of tests set custom affinity per-thread and/or per-process. Reset
125 * it after each test/sub-test.
153 if (env.saved_netns_fd == -1) { in save_netns()
161 if (setns(env.saved_netns_fd, CLONE_NEWNET) == -1) { in restore_netns()
171 int sub_error_cnt = test->error_cnt - test->old_error_cnt; in test__end_subtest()
175 fprintf(env.stdout, "#%d/%d %s/%s:%s\n", in test__end_subtest()
176 test->test_num, test->subtest_num, test->test_name, test->subtest_name, in test__end_subtest()
177 sub_error_cnt ? "FAIL" : (test->skip_cnt ? "SKIP" : "OK")); in test__end_subtest()
181 else if (test->skip_cnt == 0) in test__end_subtest()
185 free(test->subtest_name); in test__end_subtest()
186 test->subtest_name = NULL; in test__end_subtest()
193 if (test->subtest_name) in test__start_subtest()
196 test->subtest_num++; in test__start_subtest()
200 "Subtest #%d didn't provide sub-test name!\n", in test__start_subtest()
201 test->subtest_num); in test__start_subtest()
205 if (!should_run(&env.subtest_selector, test->subtest_num, name)) in test__start_subtest()
208 test->subtest_name = strdup(name); in test__start_subtest()
209 if (!test->subtest_name) { in test__start_subtest()
212 test->subtest_num); in test__start_subtest()
215 env.test->old_error_cnt = env.test->error_cnt; in test__start_subtest()
221 env.test->force_log = true; in test__force_log()
226 env.test->skip_cnt++; in test__skip()
231 env.test->error_cnt++; in test__fail()
234 int test__join_cgroup(const char *path) in test__join_cgroup() argument
238 if (!env.test->need_cgroup_cleanup) { in test__join_cgroup()
242 env.test->test_num, env.test->test_name); in test__join_cgroup()
243 return -1; in test__join_cgroup()
246 env.test->need_cgroup_cleanup = true; in test__join_cgroup()
249 fd = create_and_get_cgroup(path); in test__join_cgroup()
253 env.test->test_num, env.test->test_name, path, errno); in test__join_cgroup()
257 if (join_cgroup(path)) { in test__join_cgroup()
260 env.test->test_num, env.test->test_name, path, errno); in test__join_cgroup()
261 return -1; in test__join_cgroup()
273 fprintf(stdout, "%s:FAIL:map '%s' not found\n", test, name); in bpf_find_map()
275 return -1; in bpf_find_map()
287 if (sysctl_fd != -1) { in is_jit_enabled()
320 return -1; in compare_map_keys()
344 err = -1; in compare_stack_ips()
353 err = -1; in compare_stack_ips()
367 fp = popen("readelf -n ./urandom_read | grep 'Build ID'", "r"); in extract_build_id()
369 return -1; in extract_build_id()
371 if (getline(&line, &len, fp) == -1) in extract_build_id()
383 return -1; in extract_build_id()
407 fprintf(env.stderr, "Failed to trigger kernel-side RCU sync!\n"); in unload_bpf_testmod()
411 fprintf(stdout, "bpf_testmod.ko is already unloaded.\n"); in unload_bpf_testmod()
414 fprintf(env.stderr, "Failed to unload bpf_testmod.ko from kernel: %d\n", -errno); in unload_bpf_testmod()
418 fprintf(stdout, "Successfully unloaded bpf_testmod.ko.\n"); in unload_bpf_testmod()
429 fprintf(stdout, "Loading bpf_testmod.ko...\n"); in load_bpf_testmod()
433 fprintf(env.stderr, "Can't find bpf_testmod.ko kernel module: %d\n", -errno); in load_bpf_testmod()
434 return -ENOENT; in load_bpf_testmod()
437 fprintf(env.stderr, "Failed to load bpf_testmod.ko into the kernel: %d\n", -errno); in load_bpf_testmod()
439 return -EINVAL; in load_bpf_testmod()
444 fprintf(stdout, "Successfully loaded bpf_testmod.ko.\n"); in load_bpf_testmod()
484 { "name-blacklist", ARG_TEST_NAME_BLACKLIST, "NAMES", 0,
486 { "verifier-stats", ARG_VERIFIER_STATS, NULL, 0,
489 "Verbose output (use -vv or -vvv for progressively verbose output)" },
491 "Get number of selected top-level tests " },
506 vfprintf(stdout, format, args); in libbpf_print_fn()
517 for (i = 0; i < set->cnt; i++) in free_str_set()
518 free((void *)set->strs[i]); in free_str_set()
519 free(set->strs); in free_str_set()
529 return -ENOMEM; in parse_str_list()
551 tmp = realloc(set->strs, sizeof(*strs) * (cnt + set->cnt)); in parse_str_list()
554 memcpy(tmp + set->cnt, strs, sizeof(*strs) * cnt); in parse_str_list()
555 set->strs = (const char **)tmp; in parse_str_list()
556 set->cnt += cnt; in parse_str_list()
566 return -ENOMEM; in parse_str_list()
573 struct test_env *env = state->input; in parse_arg()
582 &env->subtest_selector.num_set, in parse_arg()
583 &env->subtest_selector.num_set_len)) { in parse_arg()
586 return -EINVAL; in parse_arg()
589 if (parse_num_list(arg, &env->test_selector.num_set, in parse_arg()
590 &env->test_selector.num_set_len)) { in parse_arg()
592 return -EINVAL; in parse_arg()
603 &env->subtest_selector.whitelist, in parse_arg()
605 return -ENOMEM; in parse_arg()
607 if (parse_str_list(arg, &env->test_selector.whitelist, in parse_arg()
609 return -ENOMEM; in parse_arg()
619 &env->subtest_selector.blacklist, in parse_arg()
621 return -ENOMEM; in parse_arg()
623 if (parse_str_list(arg, &env->test_selector.blacklist, in parse_arg()
625 return -ENOMEM; in parse_arg()
629 env->verifier_stats = true; in parse_arg()
632 env->verbosity = VERBOSE_NORMAL; in parse_arg()
635 env->verbosity = VERBOSE_VERY; in parse_arg()
638 env->verbosity = VERBOSE_SUPER; in parse_arg()
642 "Unrecognized verbosity setting ('%s'), only -v and -vv are supported\n", in parse_arg()
644 return -EINVAL; in parse_arg()
648 if (env->verbosity > VERBOSE_NONE) { in parse_arg()
649 if (setenv("SELFTESTS_VERBOSE", "1", 1) == -1) { in parse_arg()
653 return -1; in parse_arg()
659 env->get_test_cnt = true; in parse_arg()
662 env->list_test_names = true; in parse_arg()
678 env.stdout = stdout; in stdio_hijack()
682 /* nothing to do, output to stdout by default */ in stdio_hijack()
686 /* stdout and stderr -> buffer */ in stdio_hijack()
687 fflush(stdout); in stdio_hijack()
689 stdout = open_memstream(&env.log_buf, &env.log_cnt); in stdio_hijack()
690 if (!stdout) { in stdio_hijack()
691 stdout = env.stdout; in stdio_hijack()
696 stderr = stdout; in stdio_hijack()
703 if (stdout == env.stdout) in stdio_restore()
706 fclose(stdout); in stdio_restore()
712 stdout = env.stdout; in stdio_restore()
719 * into corresponding sub-directory to load correct BPF objects.
721 * This is done by looking at executable name. If it contains "-flavor"
727 * some/path/to/test_progs[-flavor], where -flavor part is optional. in cd_flavor_subdir()
728 * First cut out "test_progs[-flavor]" part, then extract "flavor" in cd_flavor_subdir()
736 flavor = strrchr(flavor, '-'); in cd_flavor_subdir()
741 fprintf(stdout, "Switching to flavor '%s' subdirectory...\n", flavor); in cd_flavor_subdir()
756 if (env.stdout) in crash_handler()
798 return -1; in main()
812 test->test_num = i + 1; in main()
815 test->test_num, test->test_name)) in main()
824 fprintf(env.stdout, "%s\n", test->test_name); in main()
829 test->run_test(); in main()
830 /* ensure last sub-test is finalized properly */ in main()
831 if (test->subtest_name) in main()
834 test->tested = true; in main()
836 dump_test_log(test, test->error_cnt); in main()
838 fprintf(env.stdout, "#%d %s:%s\n", in main()
839 test->test_num, test->test_name, in main()
840 test->error_cnt ? "FAIL" : (test->skip_cnt ? "SKIP" : "OK")); in main()
842 if (test->error_cnt) in main()
850 if (test->need_cgroup_cleanup) in main()
865 fprintf(stdout, "Summary: %d/%d PASSED, %d SKIPPED, %d FAILED\n", in main()