Lines Matching refs:env

24 	return env.verbosity > VERBOSE_NONE;
30 if (verbose() && env.worker_id == -1) {
40 stdout = env.stdout;
45 if (env.subtest_state)
46 env.subtest_state->stdout = stdout;
48 env.test_state->stdout = stdout;
57 if (verbose() && env.worker_id == -1) {
62 env.stdout = stdout;
63 env.stderr = stderr;
72 if (verbose() && env.worker_id == -1) {
79 if (env.subtest_state) {
80 fclose(env.subtest_state->stdout);
81 env.subtest_state->stdout = NULL;
82 stdout = env.test_state->stdout;
83 stderr = env.test_state->stdout;
85 fclose(env.test_state->stdout);
86 env.test_state->stdout = NULL;
94 if (verbose() && env.worker_id == -1) {
99 if (stdout == env.stdout)
104 stdout = env.stdout;
105 stderr = env.stderr;
135 struct test_env env = {};
233 fprintf(env.stdout, "#%-*d %s:", TEST_NUM_WIDTH, test->test_num, test->test_name);
235 fprintf(env.stdout, "FAIL");
237 fprintf(env.stdout, "OK");
239 fprintf(env.stdout, "SKIP");
241 fprintf(env.stdout, "OK (SKIP: %d/%d)", skipped_cnt, subtests_cnt);
243 fprintf(env.stdout, "\n");
249 fprintf(env.stdout, "%s", log_buf);
251 fprintf(env.stdout, "\n");
262 fprintf(env.stdout, "#%-*s %s/%s",
267 fprintf(env.stdout, ":%s", result);
269 fprintf(env.stdout, "\n");
300 if (env.worker_id != -1)
370 for (i = 0; i < env.nr_cpus; i++)
389 env.saved_netns_fd = open("/proc/self/ns/net", O_RDONLY);
390 if (env.saved_netns_fd == -1) {
398 if (setns(env.saved_netns_fd, CLONE_NEWNET) == -1) {
407 struct prog_test_def *test = env.test;
408 struct test_state *test_state = env.test_state;
409 struct subtest_state *subtest_state = env.subtest_state;
420 if (verbose() && !env.workers)
427 env.subtest_state = NULL;
432 struct prog_test_def *test = env.test;
433 struct test_state *state = env.test_state;
437 if (env.subtest_state)
454 fprintf(env.stderr,
462 fprintf(env.stderr,
468 if (!should_run_subtest(&env.test_selector,
469 &env.subtest_selector,
477 env.subtest_state = subtest_state;
485 env.test_state->force_log = true;
490 if (env.subtest_state)
491 env.subtest_state->skipped = true;
493 env.test_state->skip_cnt++;
498 if (env.subtest_state)
499 env.subtest_state->error_cnt++;
501 env.test_state->error_cnt++;
508 if (!env.test->need_cgroup_cleanup) {
512 env.test->test_num, env.test->test_name);
516 env.test->need_cgroup_cleanup = true;
523 env.test->test_num, env.test->test_name, path, errno);
530 env.test->test_num, env.test->test_name, path, errno);
707 if (env.verbosity < VERBOSE_VERY && level == LIBBPF_DEBUG)
742 struct test_env *env = state->input;
752 &env->subtest_selector.num_set,
753 &env->subtest_selector.num_set_len)) {
759 if (parse_num_list(arg, &env->test_selector.num_set,
760 &env->test_selector.num_set_len)) {
770 &env->test_selector.whitelist,
774 &env->test_selector.whitelist,
783 &env->test_selector.blacklist,
787 &env->test_selector.blacklist,
793 env->verifier_stats = true;
796 env->verbosity = VERBOSE_NORMAL;
799 env->verbosity = VERBOSE_VERY;
802 env->verbosity = VERBOSE_SUPER;
823 env->get_test_cnt = true;
826 env->list_test_names = true;
830 env->workers = atoi(arg);
831 if (!env->workers) {
836 env->workers = get_nprocs();
840 env->debug = true;
843 env->json = fopen(arg, "w");
844 if (env->json == NULL) {
992 if (env.stdout)
994 if (env.test) {
995 env.test_state->error_cnt++;
996 dump_test_log(env.test, env.test_state, true, false, NULL);
998 if (env.worker_id != -1)
999 fprintf(stderr, "[%d]: ", env.worker_id);
1008 for (i = 0; i < env.workers; i++)
1009 if (env.worker_socks[i] > 0)
1010 close(env.worker_socks[i]);
1053 if (env.debug)
1066 if (env.debug)
1077 env.test = test;
1078 env.test_state = state;
1088 if (env.subtest_state)
1093 if (verbose() && env.worker_id == -1)
1226 env.worker_current_test[data->worker_id] = test_to_run;
1266 if (env.debug)
1275 if (env.debug)
1283 static void calculate_summary_and_print_errors(struct test_env *env)
1304 if (env->json) {
1305 w = jsonw_new(env->json);
1307 fprintf(env->stderr, "Failed to create new JSON stream.");
1346 if (env->json)
1347 fclose(env->json);
1352 env->succ_cnt = succ_cnt;
1353 env->sub_succ_cnt = sub_succ_cnt;
1354 env->fail_cnt = fail_cnt;
1355 env->skip_cnt = skip_cnt;
1370 dispatcher_threads = calloc(sizeof(pthread_t), env.workers);
1371 data = calloc(sizeof(struct dispatch_data), env.workers);
1373 env.worker_current_test = calloc(sizeof(int), env.workers);
1374 for (i = 0; i < env.workers; i++) {
1378 data[i].sock_fd = env.worker_socks[i];
1387 for (i = 0; i < env.workers; i++) {
1394 if (env.debug)
1396 i, env.worker_current_test[i] + 1);
1406 free(env.worker_current_test);
1425 calculate_summary_and_print_errors(&env);
1428 for (i = 0; i < env.workers; i++) {
1431 pid = waitpid(env.worker_pids[i], &wstatus, 0);
1432 if (pid != env.worker_pids[i])
1535 if (env.debug)
1537 env.worker_id);
1545 if (env.debug)
1547 env.worker_id,
1585 if (env.debug)
1587 env.worker_id,
1593 if (env.debug)
1594 fprintf(stderr, "[%d]: unknown message.\n", env.worker_id);
1634 err = argp_parse(&argp, argc, argv, 0, NULL, &env);
1648 env.jit_enabled = is_jit_enabled();
1649 env.nr_cpus = libbpf_num_possible_cpus();
1650 if (env.nr_cpus < 0) {
1652 env.nr_cpus);
1656 env.stdout = stdout;
1657 env.stderr = stderr;
1659 env.has_testmod = true;
1660 if (!env.list_test_names) {
1665 fprintf(env.stderr, "WARNING! Selftests relying on bpf_testmod.ko will be skipped.\n");
1666 env.has_testmod = false;
1675 test->should_run = should_run(&env.test_selector,
1687 if (env.get_test_cnt || env.list_test_names)
1688 env.workers = 0;
1691 env.worker_id = -1; /* main process */
1692 if (env.workers) {
1693 env.worker_pids = calloc(sizeof(__pid_t), env.workers);
1694 env.worker_socks = calloc(sizeof(int), env.workers);
1695 if (env.debug)
1696 fprintf(stdout, "Launching %d workers.\n", env.workers);
1697 for (i = 0; i < env.workers; i++) {
1711 env.worker_pids[i] = pid;
1712 env.worker_socks[i] = sv[0];
1715 env.worker_id = i;
1720 if (env.worker_id == -1) {
1737 if (env.get_test_cnt) {
1738 env.succ_cnt++;
1742 if (env.list_test_names) {
1743 fprintf(env.stdout, "%s\n", test->test_name);
1744 env.succ_cnt++;
1751 if (env.get_test_cnt) {
1752 printf("%d\n", env.succ_cnt);
1756 if (env.list_test_names)
1759 calculate_summary_and_print_errors(&env);
1761 close(env.saved_netns_fd);
1763 if (!env.list_test_names && env.has_testmod)
1766 free_test_selector(&env.test_selector);
1767 free_test_selector(&env.subtest_selector);
1770 if (env.succ_cnt + env.fail_cnt + env.skip_cnt == 0)
1773 return env.fail_cnt ? EXIT_FAILURE : EXIT_SUCCESS;