Lines Matching full:env
38 return env.verbosity > VERBOSE_NONE; in verbose()
44 if (verbose() && env.worker_id == -1) { in stdio_hijack_init()
54 stdout = env.stdout; in stdio_hijack_init()
59 if (env.subtest_state) in stdio_hijack_init()
60 env.subtest_state->stdout = stdout; in stdio_hijack_init()
62 env.test_state->stdout = stdout; in stdio_hijack_init()
71 if (verbose() && env.worker_id == -1) { in stdio_hijack()
76 env.stdout = stdout; in stdio_hijack()
77 env.stderr = stderr; in stdio_hijack()
86 if (verbose() && env.worker_id == -1) { in stdio_restore_cleanup()
93 if (env.subtest_state) { in stdio_restore_cleanup()
94 fclose(env.subtest_state->stdout); in stdio_restore_cleanup()
95 env.subtest_state->stdout = NULL; in stdio_restore_cleanup()
96 stdout = env.test_state->stdout; in stdio_restore_cleanup()
97 stderr = env.test_state->stdout; in stdio_restore_cleanup()
99 fclose(env.test_state->stdout); in stdio_restore_cleanup()
100 env.test_state->stdout = NULL; in stdio_restore_cleanup()
108 if (verbose() && env.worker_id == -1) { in stdio_restore()
113 if (stdout == env.stdout) in stdio_restore()
118 stdout = env.stdout; in stdio_restore()
119 stderr = env.stderr; in stdio_restore()
149 struct test_env env = {}; variable
247 fprintf(env.stdout, "#%-*d %s:", TEST_NUM_WIDTH, test->test_num, test->test_name); in print_test_result()
249 fprintf(env.stdout, "FAIL"); in print_test_result()
251 fprintf(env.stdout, "OK"); in print_test_result()
253 fprintf(env.stdout, "SKIP"); in print_test_result()
255 fprintf(env.stdout, "OK (SKIP: %d/%d)", skipped_cnt, subtests_cnt); in print_test_result()
257 fprintf(env.stdout, "\n"); in print_test_result()
263 fprintf(env.stdout, "%s", log_buf); in print_test_log()
265 fprintf(env.stdout, "\n"); in print_test_log()
276 fprintf(env.stdout, "#%-*s %s/%s", in print_subtest_name()
281 fprintf(env.stdout, ":%s", result); in print_subtest_name()
283 fprintf(env.stdout, "\n"); in print_subtest_name()
314 if (env.worker_id != -1) in dump_test_log()
384 for (i = 0; i < env.nr_cpus; i++) in reset_affinity()
403 env.saved_netns_fd = open("/proc/self/ns/net", O_RDONLY); in save_netns()
404 if (env.saved_netns_fd == -1) { in save_netns()
412 if (setns(env.saved_netns_fd, CLONE_NEWNET) == -1) { in restore_netns()
421 struct prog_test_def *test = env.test; in test__end_subtest()
422 struct test_state *test_state = env.test_state; in test__end_subtest()
423 struct subtest_state *subtest_state = env.subtest_state; in test__end_subtest()
434 if (verbose() && !env.workers) in test__end_subtest()
441 env.subtest_state = NULL; in test__end_subtest()
446 struct prog_test_def *test = env.test; in test__start_subtest()
447 struct test_state *state = env.test_state; in test__start_subtest()
451 if (env.subtest_state) in test__start_subtest()
468 fprintf(env.stderr, in test__start_subtest()
476 fprintf(env.stderr, in test__start_subtest()
482 if (!should_run_subtest(&env.test_selector, in test__start_subtest()
483 &env.subtest_selector, in test__start_subtest()
491 env.subtest_state = subtest_state; in test__start_subtest()
499 env.test_state->force_log = true; in test__force_log()
504 if (env.subtest_state) in test__skip()
505 env.subtest_state->skipped = true; in test__skip()
507 env.test_state->skip_cnt++; in test__skip()
512 if (env.subtest_state) in test__fail()
513 env.subtest_state->error_cnt++; in test__fail()
515 env.test_state->error_cnt++; in test__fail()
522 if (!env.test->need_cgroup_cleanup) { in test__join_cgroup()
526 env.test->test_num, env.test->test_name); in test__join_cgroup()
530 env.test->need_cgroup_cleanup = true; in test__join_cgroup()
537 env.test->test_num, env.test->test_name, path, errno); in test__join_cgroup()
544 env.test->test_num, env.test->test_name, path, errno); in test__join_cgroup()
721 if (env.verbosity < VERBOSE_VERY && level == LIBBPF_DEBUG) in libbpf_print_fn()
756 struct test_env *env = state->input; in parse_arg() local
766 &env->subtest_selector.num_set, in parse_arg()
767 &env->subtest_selector.num_set_len)) { in parse_arg()
773 if (parse_num_list(arg, &env->test_selector.num_set, in parse_arg()
774 &env->test_selector.num_set_len)) { in parse_arg()
784 &env->test_selector.whitelist, in parse_arg()
788 &env->test_selector.whitelist, in parse_arg()
797 &env->test_selector.blacklist, in parse_arg()
801 &env->test_selector.blacklist, in parse_arg()
807 env->verifier_stats = true; in parse_arg()
810 env->verbosity = VERBOSE_NORMAL; in parse_arg()
813 env->verbosity = VERBOSE_VERY; in parse_arg()
816 env->verbosity = VERBOSE_SUPER; in parse_arg()
837 env->get_test_cnt = true; in parse_arg()
840 env->list_test_names = true; in parse_arg()
844 env->workers = atoi(arg); in parse_arg()
845 if (!env->workers) { in parse_arg()
850 env->workers = get_nprocs(); in parse_arg()
854 env->debug = true; in parse_arg()
857 env->json = fopen(arg, "w"); in parse_arg()
858 if (env->json == NULL) { in parse_arg()
1006 if (env.stdout) in crash_handler()
1008 if (env.test) { in crash_handler()
1009 env.test_state->error_cnt++; in crash_handler()
1010 dump_test_log(env.test, env.test_state, true, false, NULL); in crash_handler()
1012 if (env.worker_id != -1) in crash_handler()
1013 fprintf(stderr, "[%d]: ", env.worker_id); in crash_handler()
1022 for (i = 0; i < env.workers; i++) in sigint_handler()
1023 if (env.worker_socks[i] > 0) in sigint_handler()
1024 close(env.worker_socks[i]); in sigint_handler()
1067 if (env.debug) in send_message()
1080 if (env.debug) in recv_message()
1091 env.test = test; in run_one_test()
1092 env.test_state = state; in run_one_test()
1102 if (env.subtest_state) in run_one_test()
1107 if (verbose() && env.worker_id == -1) in run_one_test()
1240 env.worker_current_test[data->worker_id] = test_to_run; in dispatch_thread()
1280 if (env.debug) in dispatch_thread()
1289 if (env.debug) in dispatch_thread()
1297 static void calculate_summary_and_print_errors(struct test_env *env) in calculate_summary_and_print_errors() argument
1318 if (env->json) { in calculate_summary_and_print_errors()
1319 w = jsonw_new(env->json); in calculate_summary_and_print_errors()
1321 fprintf(env->stderr, "Failed to create new JSON stream."); in calculate_summary_and_print_errors()
1360 if (env->json) in calculate_summary_and_print_errors()
1361 fclose(env->json); in calculate_summary_and_print_errors()
1366 env->succ_cnt = succ_cnt; in calculate_summary_and_print_errors()
1367 env->sub_succ_cnt = sub_succ_cnt; in calculate_summary_and_print_errors()
1368 env->fail_cnt = fail_cnt; in calculate_summary_and_print_errors()
1369 env->skip_cnt = skip_cnt; in calculate_summary_and_print_errors()
1384 dispatcher_threads = calloc(sizeof(pthread_t), env.workers); in server_main()
1385 data = calloc(sizeof(struct dispatch_data), env.workers); in server_main()
1387 env.worker_current_test = calloc(sizeof(int), env.workers); in server_main()
1388 for (i = 0; i < env.workers; i++) { in server_main()
1392 data[i].sock_fd = env.worker_socks[i]; in server_main()
1401 for (i = 0; i < env.workers; i++) { in server_main()
1408 if (env.debug) in server_main()
1410 i, env.worker_current_test[i] + 1); in server_main()
1420 free(env.worker_current_test); in server_main()
1439 calculate_summary_and_print_errors(&env); in server_main()
1442 for (i = 0; i < env.workers; i++) { in server_main()
1445 pid = waitpid(env.worker_pids[i], &wstatus, 0); in server_main()
1446 if (pid != env.worker_pids[i]) in server_main()
1549 if (env.debug) in worker_main()
1551 env.worker_id); in worker_main()
1559 if (env.debug) in worker_main()
1561 env.worker_id, in worker_main()
1599 if (env.debug) in worker_main()
1601 env.worker_id, in worker_main()
1607 if (env.debug) in worker_main()
1608 fprintf(stderr, "[%d]: unknown message.\n", env.worker_id); in worker_main()
1648 err = argp_parse(&argp, argc, argv, 0, NULL, &env); in main()
1662 env.jit_enabled = is_jit_enabled(); in main()
1663 env.nr_cpus = libbpf_num_possible_cpus(); in main()
1664 if (env.nr_cpus < 0) { in main()
1666 env.nr_cpus); in main()
1670 env.stdout = stdout; in main()
1671 env.stderr = stderr; in main()
1673 env.has_testmod = true; in main()
1674 if (!env.list_test_names) { in main()
1679 fprintf(env.stderr, "WARNING! Selftests relying on bpf_testmod.ko will be skipped.\n"); in main()
1680 env.has_testmod = false; in main()
1689 test->should_run = should_run(&env.test_selector, in main()
1701 if (env.get_test_cnt || env.list_test_names) in main()
1702 env.workers = 0; in main()
1705 env.worker_id = -1; /* main process */ in main()
1706 if (env.workers) { in main()
1707 env.worker_pids = calloc(sizeof(pid_t), env.workers); in main()
1708 env.worker_socks = calloc(sizeof(int), env.workers); in main()
1709 if (env.debug) in main()
1710 fprintf(stdout, "Launching %d workers.\n", env.workers); in main()
1711 for (i = 0; i < env.workers; i++) { in main()
1725 env.worker_pids[i] = pid; in main()
1726 env.worker_socks[i] = sv[0]; in main()
1729 env.worker_id = i; in main()
1734 if (env.worker_id == -1) { in main()
1751 if (env.get_test_cnt) { in main()
1752 env.succ_cnt++; in main()
1756 if (env.list_test_names) { in main()
1757 fprintf(env.stdout, "%s\n", test->test_name); in main()
1758 env.succ_cnt++; in main()
1765 if (env.get_test_cnt) { in main()
1766 printf("%d\n", env.succ_cnt); in main()
1770 if (env.list_test_names) in main()
1773 calculate_summary_and_print_errors(&env); in main()
1775 close(env.saved_netns_fd); in main()
1777 if (!env.list_test_names && env.has_testmod) in main()
1780 free_test_selector(&env.test_selector); in main()
1781 free_test_selector(&env.subtest_selector); in main()
1784 if (env.succ_cnt + env.fail_cnt + env.skip_cnt == 0) in main()
1787 return env.fail_cnt ? EXIT_FAILURE : EXIT_SUCCESS; in main()