Lines Matching refs:env
23 return env.verbosity > VERBOSE_NONE; in verbose()
29 if (verbose() && env.worker_id == -1) { in stdio_hijack_init()
39 stdout = env.stdout; in stdio_hijack_init()
44 if (env.subtest_state) in stdio_hijack_init()
45 env.subtest_state->stdout = stdout; in stdio_hijack_init()
47 env.test_state->stdout = stdout; in stdio_hijack_init()
56 if (verbose() && env.worker_id == -1) { in stdio_hijack()
61 env.stdout = stdout; in stdio_hijack()
62 env.stderr = stderr; in stdio_hijack()
71 if (verbose() && env.worker_id == -1) { in stdio_restore_cleanup()
78 if (env.subtest_state) { in stdio_restore_cleanup()
79 fclose(env.subtest_state->stdout); in stdio_restore_cleanup()
80 env.subtest_state->stdout = NULL; in stdio_restore_cleanup()
81 stdout = env.test_state->stdout; in stdio_restore_cleanup()
82 stderr = env.test_state->stdout; in stdio_restore_cleanup()
84 fclose(env.test_state->stdout); in stdio_restore_cleanup()
85 env.test_state->stdout = NULL; in stdio_restore_cleanup()
93 if (verbose() && env.worker_id == -1) { in stdio_restore()
98 if (stdout == env.stdout) in stdio_restore()
103 stdout = env.stdout; in stdio_restore()
104 stderr = env.stderr; in stdio_restore()
134 struct test_env env = {}; variable
228 fprintf(env.stdout, "%s", log_buf); in print_test_log()
230 fprintf(env.stdout, "\n"); in print_test_log()
237 fprintf(env.stdout, "#%-*d %s", TEST_NUM_WIDTH, test_num, test_name); in print_test_name()
240 fprintf(env.stdout, ":%s", result); in print_test_name()
242 fprintf(env.stdout, "\n"); in print_test_name()
253 fprintf(env.stdout, "#%-*s %s/%s", in print_subtest_name()
258 fprintf(env.stdout, ":%s", result); in print_subtest_name()
260 fprintf(env.stdout, "\n"); in print_subtest_name()
278 if (env.worker_id != -1) in dump_test_log()
325 for (i = 0; i < env.nr_cpus; i++) in reset_affinity()
344 env.saved_netns_fd = open("/proc/self/ns/net", O_RDONLY); in save_netns()
345 if (env.saved_netns_fd == -1) { in save_netns()
353 if (setns(env.saved_netns_fd, CLONE_NEWNET) == -1) { in restore_netns()
362 struct prog_test_def *test = env.test; in test__end_subtest()
363 struct test_state *test_state = env.test_state; in test__end_subtest()
364 struct subtest_state *subtest_state = env.subtest_state; in test__end_subtest()
375 if (verbose() && !env.workers) in test__end_subtest()
382 env.subtest_state = NULL; in test__end_subtest()
387 struct prog_test_def *test = env.test; in test__start_subtest()
388 struct test_state *state = env.test_state; in test__start_subtest()
392 if (env.subtest_state) in test__start_subtest()
409 fprintf(env.stderr, in test__start_subtest()
417 fprintf(env.stderr, in test__start_subtest()
423 if (!should_run_subtest(&env.test_selector, in test__start_subtest()
424 &env.subtest_selector, in test__start_subtest()
432 env.subtest_state = subtest_state; in test__start_subtest()
440 env.test_state->force_log = true; in test__force_log()
445 if (env.subtest_state) in test__skip()
446 env.subtest_state->skipped = true; in test__skip()
448 env.test_state->skip_cnt++; in test__skip()
453 if (env.subtest_state) in test__fail()
454 env.subtest_state->error_cnt++; in test__fail()
456 env.test_state->error_cnt++; in test__fail()
463 if (!env.test->need_cgroup_cleanup) { in test__join_cgroup()
467 env.test->test_num, env.test->test_name); in test__join_cgroup()
471 env.test->need_cgroup_cleanup = true; in test__join_cgroup()
478 env.test->test_num, env.test->test_name, path, errno); in test__join_cgroup()
485 env.test->test_num, env.test->test_name, path, errno); in test__join_cgroup()
632 fprintf(env.stderr, "Failed to trigger kernel-side RCU sync!\n"); in unload_bpf_testmod()
639 fprintf(env.stderr, "Failed to unload bpf_testmod.ko from kernel: %d\n", -errno); in unload_bpf_testmod()
658 fprintf(env.stderr, "Can't find bpf_testmod.ko kernel module: %d\n", -errno); in load_bpf_testmod()
662 fprintf(env.stderr, "Failed to load bpf_testmod.ko into the kernel: %d\n", -errno); in load_bpf_testmod()
741 if (env.verbosity < VERBOSE_VERY && level == LIBBPF_DEBUG) in libbpf_print_fn()
776 struct test_env *env = state->input; in parse_arg() local
785 &env->subtest_selector.num_set, in parse_arg()
786 &env->subtest_selector.num_set_len)) { in parse_arg()
792 if (parse_num_list(arg, &env->test_selector.num_set, in parse_arg()
793 &env->test_selector.num_set_len)) { in parse_arg()
802 &env->test_selector.whitelist, in parse_arg()
810 &env->test_selector.blacklist, in parse_arg()
816 env->verifier_stats = true; in parse_arg()
819 env->verbosity = VERBOSE_NORMAL; in parse_arg()
822 env->verbosity = VERBOSE_VERY; in parse_arg()
825 env->verbosity = VERBOSE_SUPER; in parse_arg()
846 env->get_test_cnt = true; in parse_arg()
849 env->list_test_names = true; in parse_arg()
853 env->workers = atoi(arg); in parse_arg()
854 if (!env->workers) { in parse_arg()
859 env->workers = get_nprocs(); in parse_arg()
863 env->debug = true; in parse_arg()
971 if (env.test) { in crash_handler()
972 env.test_state->error_cnt++; in crash_handler()
973 dump_test_log(env.test, env.test_state, true, false); in crash_handler()
975 if (env.stdout) in crash_handler()
977 if (env.worker_id != -1) in crash_handler()
978 fprintf(stderr, "[%d]: ", env.worker_id); in crash_handler()
987 for (i = 0; i < env.workers; i++) in sigint_handler()
988 if (env.worker_socks[i] > 0) in sigint_handler()
989 close(env.worker_socks[i]); in sigint_handler()
1032 if (env.debug) in send_message()
1045 if (env.debug) in recv_message()
1056 env.test = test; in run_one_test()
1057 env.test_state = state; in run_one_test()
1067 if (env.subtest_state) in run_one_test()
1072 if (verbose() && env.worker_id == -1) in run_one_test()
1206 env.worker_current_test[data->worker_id] = test_to_run; in dispatch_thread()
1246 if (env.debug) in dispatch_thread()
1255 if (env.debug) in dispatch_thread()
1263 static void calculate_summary_and_print_errors(struct test_env *env) in calculate_summary_and_print_errors() argument
1306 env->succ_cnt = succ_cnt; in calculate_summary_and_print_errors()
1307 env->sub_succ_cnt = sub_succ_cnt; in calculate_summary_and_print_errors()
1308 env->fail_cnt = fail_cnt; in calculate_summary_and_print_errors()
1309 env->skip_cnt = skip_cnt; in calculate_summary_and_print_errors()
1324 dispatcher_threads = calloc(sizeof(pthread_t), env.workers); in server_main()
1325 data = calloc(sizeof(struct dispatch_data), env.workers); in server_main()
1327 env.worker_current_test = calloc(sizeof(int), env.workers); in server_main()
1328 for (i = 0; i < env.workers; i++) { in server_main()
1332 data[i].sock_fd = env.worker_socks[i]; in server_main()
1341 for (i = 0; i < env.workers; i++) { in server_main()
1348 if (env.debug) in server_main()
1350 i, env.worker_current_test[i] + 1); in server_main()
1360 free(env.worker_current_test); in server_main()
1379 calculate_summary_and_print_errors(&env); in server_main()
1382 for (i = 0; i < env.workers; i++) { in server_main()
1385 pid = waitpid(env.worker_pids[i], &wstatus, 0); in server_main()
1386 if (pid != env.worker_pids[i]) in server_main()
1489 if (env.debug) in worker_main()
1491 env.worker_id); in worker_main()
1499 if (env.debug) in worker_main()
1501 env.worker_id, in worker_main()
1539 if (env.debug) in worker_main()
1541 env.worker_id, in worker_main()
1547 if (env.debug) in worker_main()
1548 fprintf(stderr, "[%d]: unknown message.\n", env.worker_id); in worker_main()
1588 err = argp_parse(&argp, argc, argv, 0, NULL, &env); in main()
1602 env.jit_enabled = is_jit_enabled(); in main()
1603 env.nr_cpus = libbpf_num_possible_cpus(); in main()
1604 if (env.nr_cpus < 0) { in main()
1606 env.nr_cpus); in main()
1610 env.stdout = stdout; in main()
1611 env.stderr = stderr; in main()
1613 env.has_testmod = true; in main()
1614 if (!env.list_test_names && load_bpf_testmod()) { in main()
1615 fprintf(env.stderr, "WARNING! Selftests relying on bpf_testmod.ko will be skipped.\n"); in main()
1616 env.has_testmod = false; in main()
1624 test->should_run = should_run(&env.test_selector, in main()
1636 if (env.get_test_cnt || env.list_test_names) in main()
1637 env.workers = 0; in main()
1640 env.worker_id = -1; /* main process */ in main()
1641 if (env.workers) { in main()
1642 env.worker_pids = calloc(sizeof(__pid_t), env.workers); in main()
1643 env.worker_socks = calloc(sizeof(int), env.workers); in main()
1644 if (env.debug) in main()
1645 fprintf(stdout, "Launching %d workers.\n", env.workers); in main()
1646 for (i = 0; i < env.workers; i++) { in main()
1660 env.worker_pids[i] = pid; in main()
1661 env.worker_socks[i] = sv[0]; in main()
1664 env.worker_id = i; in main()
1669 if (env.worker_id == -1) { in main()
1686 if (env.get_test_cnt) { in main()
1687 env.succ_cnt++; in main()
1691 if (env.list_test_names) { in main()
1692 fprintf(env.stdout, "%s\n", test->test_name); in main()
1693 env.succ_cnt++; in main()
1700 if (env.get_test_cnt) { in main()
1701 printf("%d\n", env.succ_cnt); in main()
1705 if (env.list_test_names) in main()
1708 calculate_summary_and_print_errors(&env); in main()
1710 close(env.saved_netns_fd); in main()
1712 if (!env.list_test_names && env.has_testmod) in main()
1715 free_test_selector(&env.test_selector); in main()
1716 free_test_selector(&env.subtest_selector); in main()
1719 if (env.succ_cnt + env.fail_cnt + env.skip_cnt == 0) in main()
1722 return env.fail_cnt ? EXIT_FAILURE : EXIT_SUCCESS; in main()