Lines Matching refs:env

46 	return env.verbosity > VERBOSE_NONE;  in verbose()
52 if (verbose() && env.worker_id == -1) { in stdio_hijack_init()
62 stdout = env.stdout_saved; in stdio_hijack_init()
67 if (env.subtest_state) in stdio_hijack_init()
68 env.subtest_state->stdout_saved = stdout; in stdio_hijack_init()
70 env.test_state->stdout_saved = stdout; in stdio_hijack_init()
79 if (verbose() && env.worker_id == -1) { in stdio_hijack()
84 env.stdout_saved = stdout; in stdio_hijack()
85 env.stderr_saved = stderr; in stdio_hijack()
96 if (verbose() && env.worker_id == -1) { in stdio_restore()
105 if (env.subtest_state) { in stdio_restore()
106 if (env.subtest_state->stdout_saved) in stdio_restore()
107 fclose(env.subtest_state->stdout_saved); in stdio_restore()
108 env.subtest_state->stdout_saved = NULL; in stdio_restore()
109 stdout = env.test_state->stdout_saved; in stdio_restore()
110 stderr = env.test_state->stdout_saved; in stdio_restore()
112 if (env.test_state->stdout_saved) in stdio_restore()
113 fclose(env.test_state->stdout_saved); in stdio_restore()
114 env.test_state->stdout_saved = NULL; in stdio_restore()
115 stdout = env.stdout_saved; in stdio_restore()
116 stderr = env.stderr_saved; in stdio_restore()
158 struct test_env env = {}; variable
196 if (env.subtest_state) in watchdog_timer_func()
198 env.test->test_name, env.subtest_state->name); in watchdog_timer_func()
201 env.test->test_name); in watchdog_timer_func()
203 switch (env.watchdog_state) { in watchdog_timer_func()
205 fprintf(env.stderr_saved, "WATCHDOG: test case %s executes for %d seconds...\n", in watchdog_timer_func()
206 test_name, env.secs_till_notify); in watchdog_timer_func()
207 timeout.it_value.tv_sec = env.secs_till_kill - env.secs_till_notify; in watchdog_timer_func()
208 env.watchdog_state = WD_KILL; in watchdog_timer_func()
209 err = timer_settime(env.watchdog, 0, &timeout, NULL); in watchdog_timer_func()
211 fprintf(env.stderr_saved, "Failed to arm watchdog timer\n"); in watchdog_timer_func()
214 fprintf(env.stderr_saved, in watchdog_timer_func()
216 test_name, env.secs_till_kill); in watchdog_timer_func()
217 pthread_kill(env.main_thread, SIGSEGV); in watchdog_timer_func()
227 if (env.secs_till_kill == 0) in watchdog_start()
229 if (env.secs_till_notify > 0) { in watchdog_start()
230 env.watchdog_state = WD_NOTIFY; in watchdog_start()
231 timeout.it_value.tv_sec = env.secs_till_notify; in watchdog_start()
233 env.watchdog_state = WD_KILL; in watchdog_start()
234 timeout.it_value.tv_sec = env.secs_till_kill; in watchdog_start()
236 err = timer_settime(env.watchdog, 0, &timeout, NULL); in watchdog_start()
238 fprintf(env.stderr_saved, "Failed to start watchdog timer\n"); in watchdog_start()
246 env.watchdog_state = WD_NOTIFY; in watchdog_stop()
247 err = timer_settime(env.watchdog, 0, &timeout, NULL); in watchdog_stop()
249 fprintf(env.stderr_saved, "Failed to stop watchdog timer\n"); in watchdog_stop()
260 env.main_thread = pthread_self(); in watchdog_init()
261 err = timer_create(CLOCK_MONOTONIC, &watchdog_sev, &env.watchdog); in watchdog_init()
352 fprintf(env.stdout_saved, "#%-*d %s:", TEST_NUM_WIDTH, test->test_num, test->test_name); in print_test_result()
354 fprintf(env.stdout_saved, "FAIL"); in print_test_result()
356 fprintf(env.stdout_saved, "OK"); in print_test_result()
358 fprintf(env.stdout_saved, "SKIP"); in print_test_result()
360 fprintf(env.stdout_saved, "OK (SKIP: %d/%d)", skipped_cnt, subtests_cnt); in print_test_result()
362 fprintf(env.stdout_saved, "\n"); in print_test_result()
368 fprintf(env.stdout_saved, "%s", log_buf); in print_test_log()
370 fprintf(env.stdout_saved, "\n"); in print_test_log()
381 fprintf(env.stdout_saved, "#%-*s %s/%s", in print_subtest_name()
386 fprintf(env.stdout_saved, ":%s", result); in print_subtest_name()
388 fprintf(env.stdout_saved, "\n"); in print_subtest_name()
419 if (env.worker_id != -1) in dump_test_log()
487 for (i = 0; i < env.nr_cpus; i++) in reset_affinity()
504 env.saved_netns_fd = open("/proc/self/ns/net", O_RDONLY); in save_netns()
505 if (env.saved_netns_fd == -1) { in save_netns()
513 if (setns(env.saved_netns_fd, CLONE_NEWNET) == -1) { in restore_netns()
521 struct prog_test_def *test = env.test; in test__end_subtest()
522 struct test_state *test_state = env.test_state; in test__end_subtest()
523 struct subtest_state *subtest_state = env.subtest_state; in test__end_subtest()
534 if (verbose() && !env.workers) in test__end_subtest()
542 env.subtest_state = NULL; in test__end_subtest()
547 struct prog_test_def *test = env.test; in test__start_subtest()
548 struct test_state *state = env.test_state; in test__start_subtest()
552 if (env.subtest_state) in test__start_subtest()
569 fprintf(env.stderr_saved, in test__start_subtest()
577 fprintf(env.stderr_saved, in test__start_subtest()
583 if (!should_run_subtest(&env.test_selector, in test__start_subtest()
584 &env.subtest_selector, in test__start_subtest()
592 subtest_state->should_tmon = match_subtest(&env.tmon_selector.whitelist, in test__start_subtest()
596 env.subtest_state = subtest_state; in test__start_subtest()
605 env.test_state->force_log = true; in test__force_log()
610 if (env.subtest_state) in test__skip()
611 env.subtest_state->skipped = true; in test__skip()
613 env.test_state->skip_cnt++; in test__skip()
618 if (env.subtest_state) in test__fail()
619 env.subtest_state->error_cnt++; in test__fail()
621 env.test_state->error_cnt++; in test__fail()
628 if (!env.test->need_cgroup_cleanup) { in test__join_cgroup()
632 env.test->test_num, env.test->test_name); in test__join_cgroup()
636 env.test->need_cgroup_cleanup = true; in test__join_cgroup()
643 env.test->test_num, env.test->test_name, path, errno); in test__join_cgroup()
650 env.test->test_num, env.test->test_name, path, errno); in test__join_cgroup()
775 if (env.test->should_tmon || in netns_new()
776 (env.subtest_state && env.subtest_state->should_tmon)) { in netns_new()
777 test_name = env.test->test_name; in netns_new()
778 subtest_name = env.subtest_state ? env.subtest_state->name : NULL; in netns_new()
961 if (env.verbosity < VERBOSE_VERY && level == LIBBPF_DEBUG) in libbpf_print_fn()
997 struct test_env *env = state->input; in parse_arg() local
1007 &env->subtest_selector.num_set, in parse_arg()
1008 &env->subtest_selector.num_set_len)) { in parse_arg()
1014 if (parse_num_list(arg, &env->test_selector.num_set, in parse_arg()
1015 &env->test_selector.num_set_len)) { in parse_arg()
1025 &env->test_selector.whitelist, in parse_arg()
1029 &env->test_selector.whitelist, in parse_arg()
1038 &env->test_selector.blacklist, in parse_arg()
1042 &env->test_selector.blacklist, in parse_arg()
1048 env->verifier_stats = true; in parse_arg()
1051 env->verbosity = VERBOSE_NORMAL; in parse_arg()
1054 env->verbosity = VERBOSE_VERY; in parse_arg()
1057 env->verbosity = VERBOSE_SUPER; in parse_arg()
1066 env_verbosity = env->verbosity; in parse_arg()
1079 env->get_test_cnt = true; in parse_arg()
1082 env->list_test_names = true; in parse_arg()
1086 env->workers = atoi(arg); in parse_arg()
1087 if (!env->workers) { in parse_arg()
1092 env->workers = get_nprocs(); in parse_arg()
1096 env->debug = true; in parse_arg()
1099 env->json = fopen(arg, "w"); in parse_arg()
1100 if (env->json == NULL) { in parse_arg()
1114 &env->tmon_selector.whitelist, in parse_arg()
1118 &env->tmon_selector.whitelist, in parse_arg()
1123 env->secs_till_kill = atoi(arg); in parse_arg()
1124 if (env->secs_till_kill < 0) { in parse_arg()
1128 if (env->secs_till_kill < env->secs_till_notify) { in parse_arg()
1129 env->secs_till_notify = 0; in parse_arg()
1271 stdout = env.stdout_saved; in crash_handler()
1272 stderr = env.stderr_saved; in crash_handler()
1274 if (env.test) { in crash_handler()
1275 env.test_state->error_cnt++; in crash_handler()
1276 dump_test_log(env.test, env.test_state, true, false, NULL); in crash_handler()
1278 if (env.worker_id != -1) in crash_handler()
1279 fprintf(stderr, "[%d]: ", env.worker_id); in crash_handler()
1303 for (i = 0; i < env.workers; i++) in sigint_handler()
1304 if (env.worker_socks[i] > 0) in sigint_handler()
1305 close(env.worker_socks[i]); in sigint_handler()
1348 if (env.debug) in send_message()
1361 if (env.debug) in recv_message()
1381 env.test = test; in run_one_test()
1382 env.test_state = state; in run_one_test()
1397 if (env.subtest_state) in run_one_test()
1404 if (verbose() && env.worker_id == -1) in run_one_test()
1537 env.worker_current_test[data->worker_id] = test_to_run; in dispatch_thread()
1577 if (env.debug) in dispatch_thread()
1586 if (env.debug) in dispatch_thread()
1594 static void calculate_summary_and_print_errors(struct test_env *env) in calculate_summary_and_print_errors() argument
1615 if (env->json) { in calculate_summary_and_print_errors()
1616 w = jsonw_new(env->json); in calculate_summary_and_print_errors()
1618 fprintf(env->stderr_saved, "Failed to create new JSON stream."); in calculate_summary_and_print_errors()
1657 if (env->json) in calculate_summary_and_print_errors()
1658 fclose(env->json); in calculate_summary_and_print_errors()
1663 env->succ_cnt = succ_cnt; in calculate_summary_and_print_errors()
1664 env->sub_succ_cnt = sub_succ_cnt; in calculate_summary_and_print_errors()
1665 env->fail_cnt = fail_cnt; in calculate_summary_and_print_errors()
1666 env->skip_cnt = skip_cnt; in calculate_summary_and_print_errors()
1681 dispatcher_threads = calloc(sizeof(pthread_t), env.workers); in server_main()
1682 data = calloc(sizeof(struct dispatch_data), env.workers); in server_main()
1684 env.worker_current_test = calloc(sizeof(int), env.workers); in server_main()
1685 for (i = 0; i < env.workers; i++) { in server_main()
1689 data[i].sock_fd = env.worker_socks[i]; in server_main()
1698 for (i = 0; i < env.workers; i++) { in server_main()
1705 if (env.debug) in server_main()
1707 i, env.worker_current_test[i] + 1); in server_main()
1717 free(env.worker_current_test); in server_main()
1736 calculate_summary_and_print_errors(&env); in server_main()
1739 for (i = 0; i < env.workers; i++) { in server_main()
1742 pid = waitpid(env.worker_pids[i], &wstatus, 0); in server_main()
1743 if (pid != env.worker_pids[i]) in server_main()
1847 if (env.debug) in worker_main()
1849 env.worker_id); in worker_main()
1857 if (env.debug) in worker_main()
1859 env.worker_id, in worker_main()
1897 if (env.debug) in worker_main()
1899 env.worker_id, in worker_main()
1905 if (env.debug) in worker_main()
1906 fprintf(stderr, "[%d]: unknown message.\n", env.worker_id); in worker_main()
1946 env.stdout_saved = stdout; in main()
1947 env.stderr_saved = stderr; in main()
1949 env.secs_till_notify = 10; in main()
1950 env.secs_till_kill = 120; in main()
1951 err = argp_parse(&argp, argc, argv, 0, NULL, &env); in main()
1969 env.jit_enabled = is_jit_enabled(); in main()
1970 env.nr_cpus = libbpf_num_possible_cpus(); in main()
1971 if (env.nr_cpus < 0) { in main()
1973 env.nr_cpus); in main()
1977 env.has_testmod = true; in main()
1978 if (!env.list_test_names) { in main()
1983 fprintf(env.stderr_saved, "WARNING! Selftests relying on bpf_testmod.ko will be skipped.\n"); in main()
1984 env.has_testmod = false; in main()
1993 test->should_run = should_run(&env.test_selector, in main()
2003 test->should_tmon = should_tmon(&env.tmon_selector, test->test_name); in main()
2007 if (env.get_test_cnt || env.list_test_names) in main()
2008 env.workers = 0; in main()
2011 env.worker_id = -1; /* main process */ in main()
2012 if (env.workers) { in main()
2013 env.worker_pids = calloc(sizeof(pid_t), env.workers); in main()
2014 env.worker_socks = calloc(sizeof(int), env.workers); in main()
2015 if (env.debug) in main()
2016 fprintf(stdout, "Launching %d workers.\n", env.workers); in main()
2017 for (i = 0; i < env.workers; i++) { in main()
2031 env.worker_pids[i] = pid; in main()
2032 env.worker_socks[i] = sv[0]; in main()
2035 env.worker_id = i; in main()
2040 if (env.worker_id == -1) { in main()
2057 if (env.get_test_cnt) { in main()
2058 env.succ_cnt++; in main()
2062 if (env.list_test_names) { in main()
2063 fprintf(env.stdout_saved, "%s\n", test->test_name); in main()
2064 env.succ_cnt++; in main()
2071 if (env.get_test_cnt) { in main()
2072 printf("%d\n", env.succ_cnt); in main()
2076 if (env.list_test_names) in main()
2079 calculate_summary_and_print_errors(&env); in main()
2081 close(env.saved_netns_fd); in main()
2083 if (!env.list_test_names && env.has_testmod) in main()
2086 free_test_selector(&env.test_selector); in main()
2087 free_test_selector(&env.subtest_selector); in main()
2088 free_test_selector(&env.tmon_selector); in main()
2091 if (env.succ_cnt + env.fail_cnt + env.skip_cnt == 0) in main()
2094 return env.fail_cnt ? EXIT_FAILURE : EXIT_SUCCESS; in main()