Lines Matching refs:env
47 struct test_env env = {}; variable
105 if (stdout == env.stdout) in dump_test_log()
109 if (env.worker_id != -1) in dump_test_log()
114 if (env.verbosity > VERBOSE_NONE || test->force_log || failed) { in dump_test_log()
115 if (env.log_cnt) { in dump_test_log()
116 env.log_buf[env.log_cnt] = '\0'; in dump_test_log()
117 fprintf(env.stdout, "%s", env.log_buf); in dump_test_log()
118 if (env.log_buf[env.log_cnt - 1] != '\n') in dump_test_log()
119 fprintf(env.stdout, "\n"); in dump_test_log()
126 if (env.test->skip_cnt) { in skip_account()
127 env.skip_cnt++; in skip_account()
128 env.test->skip_cnt = 0; in skip_account()
144 for (i = 0; i < env.nr_cpus; i++) in reset_affinity()
163 env.saved_netns_fd = open("/proc/self/ns/net", O_RDONLY); in save_netns()
164 if (env.saved_netns_fd == -1) { in save_netns()
172 if (setns(env.saved_netns_fd, CLONE_NEWNET) == -1) { in restore_netns()
181 struct prog_test_def *test = env.test; in test__end_subtest()
202 struct prog_test_def *test = env.test; in test__start_subtest()
210 fprintf(env.stderr, in test__start_subtest()
216 if (!should_run(&env.subtest_selector, test->subtest_num, name)) in test__start_subtest()
221 fprintf(env.stderr, in test__start_subtest()
226 env.test->old_error_cnt = env.test->error_cnt; in test__start_subtest()
233 env.test->force_log = true; in test__force_log()
238 env.test->skip_cnt++; in test__skip()
243 env.test->error_cnt++; in test__fail()
250 if (!env.test->need_cgroup_cleanup) { in test__join_cgroup()
254 env.test->test_num, env.test->test_name); in test__join_cgroup()
258 env.test->need_cgroup_cleanup = true; in test__join_cgroup()
265 env.test->test_num, env.test->test_name, path, errno); in test__join_cgroup()
272 env.test->test_num, env.test->test_name, path, errno); in test__join_cgroup()
419 fprintf(env.stderr, "Failed to trigger kernel-side RCU sync!\n"); in unload_bpf_testmod()
422 if (env.verbosity > VERBOSE_NONE) in unload_bpf_testmod()
426 fprintf(env.stderr, "Failed to unload bpf_testmod.ko from kernel: %d\n", -errno); in unload_bpf_testmod()
429 if (env.verbosity > VERBOSE_NONE) in unload_bpf_testmod()
440 if (env.verbosity > VERBOSE_NONE) in load_bpf_testmod()
445 fprintf(env.stderr, "Can't find bpf_testmod.ko kernel module: %d\n", -errno); in load_bpf_testmod()
449 fprintf(env.stderr, "Failed to load bpf_testmod.ko into the kernel: %d\n", -errno); in load_bpf_testmod()
455 if (env.verbosity > VERBOSE_NONE) in load_bpf_testmod()
525 if (env.verbosity < VERBOSE_VERY && level == LIBBPF_DEBUG) in libbpf_print_fn()
594 struct test_env *env = state->input; in parse_arg() local
603 &env->subtest_selector.num_set, in parse_arg()
604 &env->subtest_selector.num_set_len)) { in parse_arg()
610 if (parse_num_list(arg, &env->test_selector.num_set, in parse_arg()
611 &env->test_selector.num_set_len)) { in parse_arg()
624 &env->subtest_selector.whitelist, in parse_arg()
628 if (parse_str_list(arg, &env->test_selector.whitelist, in parse_arg()
640 &env->subtest_selector.blacklist, in parse_arg()
644 if (parse_str_list(arg, &env->test_selector.blacklist, in parse_arg()
650 env->verifier_stats = true; in parse_arg()
653 env->verbosity = VERBOSE_NORMAL; in parse_arg()
656 env->verbosity = VERBOSE_VERY; in parse_arg()
659 env->verbosity = VERBOSE_SUPER; in parse_arg()
669 if (env->verbosity > VERBOSE_NONE) { in parse_arg()
680 env->get_test_cnt = true; in parse_arg()
683 env->list_test_names = true; in parse_arg()
687 env->workers = atoi(arg); in parse_arg()
688 if (!env->workers) { in parse_arg()
693 env->workers = get_nprocs(); in parse_arg()
697 env->debug = true; in parse_arg()
713 env.stdout = stdout; in stdio_hijack()
714 env.stderr = stderr; in stdio_hijack()
716 if (env.verbosity > VERBOSE_NONE && env.worker_id == -1) { in stdio_hijack()
724 stdout = open_memstream(&env.log_buf, &env.log_cnt); in stdio_hijack()
726 stdout = env.stdout; in stdio_hijack()
738 if (stdout == env.stdout) in stdio_restore()
743 stdout = env.stdout; in stdio_restore()
744 stderr = env.stderr; in stdio_restore()
771 if (env.verbosity > VERBOSE_NONE) in cd_flavor_subdir()
824 if (env.test) in crash_handler()
825 dump_test_log(env.test, true); in crash_handler()
826 if (env.stdout) in crash_handler()
828 if (env.worker_id != -1) in crash_handler()
829 fprintf(stderr, "[%d]: ", env.worker_id); in crash_handler()
838 for (i = 0; i < env.workers; i++) in sigint_handler()
839 if (env.worker_socks[i] > 0) in sigint_handler()
840 close(env.worker_socks[i]); in sigint_handler()
889 if (env.debug) in send_message()
902 if (env.debug) in recv_message()
912 env.test = test; in run_one_test()
980 env.worker_current_test[data->worker_id] = test_to_run; in dispatch_thread()
1045 if (env.debug) in dispatch_thread()
1056 if (env.debug) in dispatch_thread()
1068 if (env.fail_cnt) in print_all_error_logs()
1107 dispatcher_threads = calloc(sizeof(pthread_t), env.workers); in server_main()
1108 data = calloc(sizeof(struct dispatch_data), env.workers); in server_main()
1110 env.worker_current_test = calloc(sizeof(int), env.workers); in server_main()
1111 for (i = 0; i < env.workers; i++) { in server_main()
1115 data[i].sock_fd = env.worker_socks[i]; in server_main()
1124 for (i = 0; i < env.workers; i++) { in server_main()
1131 if (env.debug) in server_main()
1133 i, env.worker_current_test[i] + 1); in server_main()
1143 free(env.worker_current_test); in server_main()
1161 if (env.log_buf) { in server_main()
1162 result->log_cnt = env.log_cnt; in server_main()
1163 result->log_buf = strdup(env.log_buf); in server_main()
1165 free(env.log_buf); in server_main()
1166 env.log_buf = NULL; in server_main()
1167 env.log_cnt = 0; in server_main()
1194 env.succ_cnt += result->error_cnt ? 0 : 1; in server_main()
1195 env.skip_cnt += result->skip_cnt; in server_main()
1197 env.fail_cnt++; in server_main()
1198 env.sub_succ_cnt += result->sub_succ_cnt; in server_main()
1202 env.succ_cnt, env.sub_succ_cnt, env.skip_cnt, env.fail_cnt); in server_main()
1207 for (i = 0; i < env.workers; i++) { in server_main()
1210 pid = waitpid(env.worker_pids[i], &wstatus, 0); in server_main()
1211 if (pid != env.worker_pids[i]) in server_main()
1231 if (env.debug) in worker_main()
1233 env.worker_id); in worker_main()
1243 if (env.debug) in worker_main()
1245 env.worker_id, in worker_main()
1263 if (env.verbosity > VERBOSE_NONE || test->force_log || test->error_cnt) { in worker_main()
1264 if (env.log_cnt) in worker_main()
1277 src = env.log_buf; in worker_main()
1278 slen = env.log_cnt; in worker_main()
1298 if (env.log_buf) { in worker_main()
1299 free(env.log_buf); in worker_main()
1300 env.log_buf = NULL; in worker_main()
1301 env.log_cnt = 0; in worker_main()
1303 if (env.debug) in worker_main()
1305 env.worker_id, in worker_main()
1311 if (env.debug) in worker_main()
1312 fprintf(stderr, "[%d]: unknown message.\n", env.worker_id); in worker_main()
1335 err = argp_parse(&argp, argc, argv, 0, NULL, &env); in main()
1350 env.jit_enabled = is_jit_enabled(); in main()
1351 env.nr_cpus = libbpf_num_possible_cpus(); in main()
1352 if (env.nr_cpus < 0) { in main()
1354 env.nr_cpus); in main()
1358 env.stdout = stdout; in main()
1359 env.stderr = stderr; in main()
1361 env.has_testmod = true; in main()
1362 if (!env.list_test_names && load_bpf_testmod()) { in main()
1363 fprintf(env.stderr, "WARNING! Selftests relying on bpf_testmod.ko will be skipped.\n"); in main()
1364 env.has_testmod = false; in main()
1372 if (should_run(&env.test_selector, in main()
1387 if (env.get_test_cnt || env.list_test_names) in main()
1388 env.workers = 0; in main()
1391 env.worker_id = -1; /* main process */ in main()
1392 if (env.workers) { in main()
1393 env.worker_pids = calloc(sizeof(__pid_t), env.workers); in main()
1394 env.worker_socks = calloc(sizeof(int), env.workers); in main()
1395 if (env.debug) in main()
1396 fprintf(stdout, "Launching %d workers.\n", env.workers); in main()
1397 for (i = 0; i < env.workers; i++) { in main()
1411 env.worker_pids[i] = pid; in main()
1412 env.worker_socks[i] = sv[0]; in main()
1415 env.worker_id = i; in main()
1420 if (env.worker_id == -1) { in main()
1438 if (env.get_test_cnt) { in main()
1439 env.succ_cnt++; in main()
1443 if (env.list_test_names) { in main()
1444 fprintf(env.stdout, "%s\n", test->test_name); in main()
1445 env.succ_cnt++; in main()
1455 fprintf(env.stdout, "#%d %s:%s\n", in main()
1461 if (env.log_buf) { in main()
1462 result->log_buf = strdup(env.log_buf); in main()
1463 result->log_cnt = env.log_cnt; in main()
1465 free(env.log_buf); in main()
1466 env.log_buf = NULL; in main()
1467 env.log_cnt = 0; in main()
1471 env.fail_cnt++; in main()
1473 env.succ_cnt++; in main()
1476 env.sub_succ_cnt += test->sub_succ_cnt; in main()
1479 if (env.get_test_cnt) { in main()
1480 printf("%d\n", env.succ_cnt); in main()
1484 if (env.list_test_names) in main()
1488 env.succ_cnt, env.sub_succ_cnt, env.skip_cnt, env.fail_cnt); in main()
1492 close(env.saved_netns_fd); in main()
1494 if (!env.list_test_names && env.has_testmod) in main()
1496 free_str_set(&env.test_selector.blacklist); in main()
1497 free_str_set(&env.test_selector.whitelist); in main()
1498 free(env.test_selector.num_set); in main()
1499 free_str_set(&env.subtest_selector.blacklist); in main()
1500 free_str_set(&env.subtest_selector.whitelist); in main()
1501 free(env.subtest_selector.num_set); in main()
1503 if (env.succ_cnt + env.fail_cnt + env.skip_cnt == 0) in main()
1506 return env.fail_cnt ? EXIT_FAILURE : EXIT_SUCCESS; in main()