Lines Matching refs:env

48 	return env.verbosity > VERBOSE_NONE;  in verbose()
54 if (verbose() && env.worker_id == -1) { in stdio_hijack_init()
64 stdout = env.stdout_saved; in stdio_hijack_init()
69 if (env.subtest_state) in stdio_hijack_init()
70 env.subtest_state->stdout_saved = stdout; in stdio_hijack_init()
72 env.test_state->stdout_saved = stdout; in stdio_hijack_init()
81 if (verbose() && env.worker_id == -1) { in stdio_hijack()
86 env.stdout_saved = stdout; in stdio_hijack()
87 env.stderr_saved = stderr; in stdio_hijack()
98 if (verbose() && env.worker_id == -1) { in stdio_restore()
107 if (env.subtest_state) { in stdio_restore()
108 if (env.subtest_state->stdout_saved) in stdio_restore()
109 fclose(env.subtest_state->stdout_saved); in stdio_restore()
110 env.subtest_state->stdout_saved = NULL; in stdio_restore()
111 stdout = env.test_state->stdout_saved; in stdio_restore()
112 stderr = env.test_state->stdout_saved; in stdio_restore()
114 if (env.test_state->stdout_saved) in stdio_restore()
115 fclose(env.test_state->stdout_saved); in stdio_restore()
116 env.test_state->stdout_saved = NULL; in stdio_restore()
117 stdout = env.stdout_saved; in stdio_restore()
118 stderr = env.stderr_saved; in stdio_restore()
160 struct test_env env = {}; variable
198 if (env.subtest_state) in watchdog_timer_func()
200 env.test->test_name, env.subtest_state->name); in watchdog_timer_func()
203 env.test->test_name); in watchdog_timer_func()
205 switch (env.watchdog_state) { in watchdog_timer_func()
207 fprintf(env.stderr_saved, "WATCHDOG: test case %s executes for %d seconds...\n", in watchdog_timer_func()
208 test_name, env.secs_till_notify); in watchdog_timer_func()
209 timeout.it_value.tv_sec = env.secs_till_kill - env.secs_till_notify; in watchdog_timer_func()
210 env.watchdog_state = WD_KILL; in watchdog_timer_func()
211 err = timer_settime(env.watchdog, 0, &timeout, NULL); in watchdog_timer_func()
213 fprintf(env.stderr_saved, "Failed to arm watchdog timer\n"); in watchdog_timer_func()
216 fprintf(env.stderr_saved, in watchdog_timer_func()
218 test_name, env.secs_till_kill); in watchdog_timer_func()
219 pthread_kill(env.main_thread, SIGSEGV); in watchdog_timer_func()
229 if (env.secs_till_kill == 0) in watchdog_start()
231 if (env.secs_till_notify > 0) { in watchdog_start()
232 env.watchdog_state = WD_NOTIFY; in watchdog_start()
233 timeout.it_value.tv_sec = env.secs_till_notify; in watchdog_start()
235 env.watchdog_state = WD_KILL; in watchdog_start()
236 timeout.it_value.tv_sec = env.secs_till_kill; in watchdog_start()
238 err = timer_settime(env.watchdog, 0, &timeout, NULL); in watchdog_start()
240 fprintf(env.stderr_saved, "Failed to start watchdog timer\n"); in watchdog_start()
248 env.watchdog_state = WD_NOTIFY; in watchdog_stop()
249 err = timer_settime(env.watchdog, 0, &timeout, NULL); in watchdog_stop()
251 fprintf(env.stderr_saved, "Failed to stop watchdog timer\n"); in watchdog_stop()
262 env.main_thread = pthread_self(); in watchdog_init()
263 err = timer_create(CLOCK_MONOTONIC, &watchdog_sev, &env.watchdog); in watchdog_init()
354 fprintf(env.stdout_saved, "#%-*d %s:", TEST_NUM_WIDTH, test->test_num, test->test_name); in print_test_result()
356 fprintf(env.stdout_saved, "FAIL"); in print_test_result()
358 fprintf(env.stdout_saved, "OK"); in print_test_result()
360 fprintf(env.stdout_saved, "SKIP"); in print_test_result()
362 fprintf(env.stdout_saved, "OK (SKIP: %d/%d)", skipped_cnt, subtests_cnt); in print_test_result()
364 fprintf(env.stdout_saved, "\n"); in print_test_result()
370 fprintf(env.stdout_saved, "%s", log_buf); in print_test_log()
372 fprintf(env.stdout_saved, "\n"); in print_test_log()
383 fprintf(env.stdout_saved, "#%-*s %s/%s", in print_subtest_name()
388 fprintf(env.stdout_saved, ":%s", result); in print_subtest_name()
390 fprintf(env.stdout_saved, "\n"); in print_subtest_name()
421 if (env.worker_id != -1) in dump_test_log()
489 for (i = 0; i < env.nr_cpus; i++) in reset_affinity()
506 env.saved_netns_fd = open("/proc/self/ns/net", O_RDONLY); in save_netns()
507 if (env.saved_netns_fd == -1) { in save_netns()
515 if (setns(env.saved_netns_fd, CLONE_NEWNET) == -1) { in restore_netns()
523 struct prog_test_def *test = env.test; in test__end_subtest()
524 struct test_state *test_state = env.test_state; in test__end_subtest()
525 struct subtest_state *subtest_state = env.subtest_state; in test__end_subtest()
536 if (verbose() && !env.workers) in test__end_subtest()
544 env.subtest_state = NULL; in test__end_subtest()
549 struct prog_test_def *test = env.test; in test__start_subtest()
550 struct test_state *state = env.test_state; in test__start_subtest()
554 if (env.subtest_state) in test__start_subtest()
571 fprintf(env.stderr_saved, in test__start_subtest()
579 fprintf(env.stderr_saved, in test__start_subtest()
585 if (!should_run_subtest(&env.test_selector, in test__start_subtest()
586 &env.subtest_selector, in test__start_subtest()
594 subtest_state->should_tmon = match_subtest(&env.tmon_selector.whitelist, in test__start_subtest()
598 env.subtest_state = subtest_state; in test__start_subtest()
607 env.test_state->force_log = true; in test__force_log()
612 if (env.subtest_state) in test__skip()
613 env.subtest_state->skipped = true; in test__skip()
615 env.test_state->skip_cnt++; in test__skip()
620 if (env.subtest_state) in test__fail()
621 env.subtest_state->error_cnt++; in test__fail()
623 env.test_state->error_cnt++; in test__fail()
630 if (!env.test->need_cgroup_cleanup) { in test__join_cgroup()
634 env.test->test_num, env.test->test_name); in test__join_cgroup()
638 env.test->need_cgroup_cleanup = true; in test__join_cgroup()
645 env.test->test_num, env.test->test_name, path, errno); in test__join_cgroup()
652 env.test->test_num, env.test->test_name, path, errno); in test__join_cgroup()
777 if (env.test->should_tmon || in netns_new()
778 (env.subtest_state && env.subtest_state->should_tmon)) { in netns_new()
779 test_name = env.test->test_name; in netns_new()
780 subtest_name = env.subtest_state ? env.subtest_state->name : NULL; in netns_new()
963 if (env.verbosity < VERBOSE_VERY && level == LIBBPF_DEBUG) in libbpf_print_fn()
999 struct test_env *env = state->input; in parse_arg() local
1009 &env->subtest_selector.num_set, in parse_arg()
1010 &env->subtest_selector.num_set_len)) { in parse_arg()
1016 if (parse_num_list(arg, &env->test_selector.num_set, in parse_arg()
1017 &env->test_selector.num_set_len)) { in parse_arg()
1027 &env->test_selector.whitelist, in parse_arg()
1031 &env->test_selector.whitelist, in parse_arg()
1040 &env->test_selector.blacklist, in parse_arg()
1044 &env->test_selector.blacklist, in parse_arg()
1050 env->verifier_stats = true; in parse_arg()
1053 env->verbosity = VERBOSE_NORMAL; in parse_arg()
1056 env->verbosity = VERBOSE_VERY; in parse_arg()
1059 env->verbosity = VERBOSE_SUPER; in parse_arg()
1068 env_verbosity = env->verbosity; in parse_arg()
1081 env->get_test_cnt = true; in parse_arg()
1084 env->list_test_names = true; in parse_arg()
1088 env->workers = atoi(arg); in parse_arg()
1089 if (!env->workers) { in parse_arg()
1094 env->workers = get_nprocs(); in parse_arg()
1098 env->debug = true; in parse_arg()
1101 env->json = fopen(arg, "w"); in parse_arg()
1102 if (env->json == NULL) { in parse_arg()
1116 &env->tmon_selector.whitelist, in parse_arg()
1120 &env->tmon_selector.whitelist, in parse_arg()
1125 env->secs_till_kill = atoi(arg); in parse_arg()
1126 if (env->secs_till_kill < 0) { in parse_arg()
1130 if (env->secs_till_kill < env->secs_till_notify) { in parse_arg()
1131 env->secs_till_notify = 0; in parse_arg()
1273 stdout = env.stdout_saved; in crash_handler()
1274 stderr = env.stderr_saved; in crash_handler()
1276 if (env.test) { in crash_handler()
1277 env.test_state->error_cnt++; in crash_handler()
1278 dump_test_log(env.test, env.test_state, true, false, NULL); in crash_handler()
1280 if (env.worker_id != -1) in crash_handler()
1281 fprintf(stderr, "[%d]: ", env.worker_id); in crash_handler()
1305 for (i = 0; i < env.workers; i++) in sigint_handler()
1306 if (env.worker_socks[i] > 0) in sigint_handler()
1307 close(env.worker_socks[i]); in sigint_handler()
1350 if (env.debug) in send_message()
1363 if (env.debug) in recv_message()
1383 env.test = test; in run_one_test()
1384 env.test_state = state; in run_one_test()
1399 if (env.subtest_state) in run_one_test()
1406 if (verbose() && env.worker_id == -1) in run_one_test()
1539 env.worker_current_test[data->worker_id] = test_to_run; in dispatch_thread()
1579 if (env.debug) in dispatch_thread()
1588 if (env.debug) in dispatch_thread()
1596 static void calculate_summary_and_print_errors(struct test_env *env) in calculate_summary_and_print_errors() argument
1617 if (env->json) { in calculate_summary_and_print_errors()
1618 w = jsonw_new(env->json); in calculate_summary_and_print_errors()
1620 fprintf(env->stderr_saved, "Failed to create new JSON stream."); in calculate_summary_and_print_errors()
1659 if (env->json) in calculate_summary_and_print_errors()
1660 fclose(env->json); in calculate_summary_and_print_errors()
1665 env->succ_cnt = succ_cnt; in calculate_summary_and_print_errors()
1666 env->sub_succ_cnt = sub_succ_cnt; in calculate_summary_and_print_errors()
1667 env->fail_cnt = fail_cnt; in calculate_summary_and_print_errors()
1668 env->skip_cnt = skip_cnt; in calculate_summary_and_print_errors()
1683 dispatcher_threads = calloc(sizeof(pthread_t), env.workers); in server_main()
1684 data = calloc(sizeof(struct dispatch_data), env.workers); in server_main()
1686 env.worker_current_test = calloc(sizeof(int), env.workers); in server_main()
1687 for (i = 0; i < env.workers; i++) { in server_main()
1691 data[i].sock_fd = env.worker_socks[i]; in server_main()
1700 for (i = 0; i < env.workers; i++) { in server_main()
1707 if (env.debug) in server_main()
1709 i, env.worker_current_test[i] + 1); in server_main()
1719 free(env.worker_current_test); in server_main()
1738 calculate_summary_and_print_errors(&env); in server_main()
1741 for (i = 0; i < env.workers; i++) { in server_main()
1744 pid = waitpid(env.worker_pids[i], &wstatus, 0); in server_main()
1745 if (pid != env.worker_pids[i]) in server_main()
1849 if (env.debug) in worker_main()
1851 env.worker_id); in worker_main()
1859 if (env.debug) in worker_main()
1861 env.worker_id, in worker_main()
1899 if (env.debug) in worker_main()
1901 env.worker_id, in worker_main()
1907 if (env.debug) in worker_main()
1908 fprintf(stderr, "[%d]: unknown message.\n", env.worker_id); in worker_main()
1955 env.stdout_saved = stdout; in main()
1956 env.stderr_saved = stderr; in main()
1958 env.secs_till_notify = 10; in main()
1959 env.secs_till_kill = 120; in main()
1960 err = argp_parse(&argp, argc, argv, 0, NULL, &env); in main()
1982 env.jit_enabled = is_jit_enabled(); in main()
1983 env.nr_cpus = libbpf_num_possible_cpus(); in main()
1984 if (env.nr_cpus < 0) { in main()
1986 env.nr_cpus); in main()
1990 env.has_testmod = true; in main()
1991 if (!env.list_test_names) { in main()
1996 fprintf(env.stderr_saved, "WARNING! Selftests relying on bpf_testmod.ko will be skipped.\n"); in main()
1997 env.has_testmod = false; in main()
2006 test->should_run = should_run(&env.test_selector, in main()
2016 test->should_tmon = should_tmon(&env.tmon_selector, test->test_name); in main()
2020 if (env.get_test_cnt || env.list_test_names) in main()
2021 env.workers = 0; in main()
2024 env.worker_id = -1; /* main process */ in main()
2025 if (env.workers) { in main()
2026 env.worker_pids = calloc(sizeof(pid_t), env.workers); in main()
2027 env.worker_socks = calloc(sizeof(int), env.workers); in main()
2028 if (env.debug) in main()
2029 fprintf(stdout, "Launching %d workers.\n", env.workers); in main()
2030 for (i = 0; i < env.workers; i++) { in main()
2044 env.worker_pids[i] = pid; in main()
2045 env.worker_socks[i] = sv[0]; in main()
2048 env.worker_id = i; in main()
2053 if (env.worker_id == -1) { in main()
2070 if (env.get_test_cnt) { in main()
2071 env.succ_cnt++; in main()
2075 if (env.list_test_names) { in main()
2076 fprintf(env.stdout_saved, "%s\n", test->test_name); in main()
2077 env.succ_cnt++; in main()
2084 if (env.get_test_cnt) { in main()
2085 printf("%d\n", env.succ_cnt); in main()
2089 if (env.list_test_names) in main()
2092 calculate_summary_and_print_errors(&env); in main()
2094 close(env.saved_netns_fd); in main()
2096 if (!env.list_test_names && env.has_testmod) in main()
2099 free_test_selector(&env.test_selector); in main()
2100 free_test_selector(&env.subtest_selector); in main()
2101 free_test_selector(&env.tmon_selector); in main()
2104 if (env.succ_cnt + env.fail_cnt + env.skip_cnt == 0) in main()
2107 return env.fail_cnt ? EXIT_FAILURE : EXIT_SUCCESS; in main()