selftests/bpf: test_progs: remove global fail/success counts
Now that we have a global per-test/per-environment state, there is no longer need to have global fail/success counters (and there is no need to save/get the diff before/after the test). Introduce CHECK_FAIL macro (suggested by Andrii) and covert existing tests to it. CHECK_FAIL uses new test__fail() to record the failure. Cc: Andrii Nakryiko <andriin@fb.com> Signed-off-by: Stanislav Fomichev <sdf@google.com> Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
This commit is contained in:
committed by
Daniel Borkmann
parent
cd9c21d768
commit
d38835b75f
@ -8,14 +8,12 @@
|
||||
|
||||
/* defined in test_progs.h */
|
||||
struct test_env env;
|
||||
int error_cnt, pass_cnt;
|
||||
|
||||
struct prog_test_def {
|
||||
const char *test_name;
|
||||
int test_num;
|
||||
void (*run_test)(void);
|
||||
bool force_log;
|
||||
int pass_cnt;
|
||||
int error_cnt;
|
||||
int skip_cnt;
|
||||
bool tested;
|
||||
@ -24,7 +22,6 @@ struct prog_test_def {
|
||||
int subtest_num;
|
||||
|
||||
/* store counts before subtest started */
|
||||
int old_pass_cnt;
|
||||
int old_error_cnt;
|
||||
};
|
||||
|
||||
@ -68,7 +65,7 @@ static void skip_account(void)
|
||||
void test__end_subtest()
|
||||
{
|
||||
struct prog_test_def *test = env.test;
|
||||
int sub_error_cnt = error_cnt - test->old_error_cnt;
|
||||
int sub_error_cnt = test->error_cnt - test->old_error_cnt;
|
||||
|
||||
if (sub_error_cnt)
|
||||
env.fail_cnt++;
|
||||
@ -105,8 +102,7 @@ bool test__start_subtest(const char *name)
|
||||
return false;
|
||||
|
||||
test->subtest_name = name;
|
||||
env.test->old_pass_cnt = pass_cnt;
|
||||
env.test->old_error_cnt = error_cnt;
|
||||
env.test->old_error_cnt = env.test->error_cnt;
|
||||
|
||||
return true;
|
||||
}
|
||||
@ -120,6 +116,11 @@ void test__skip(void)
|
||||
env.test->skip_cnt++;
|
||||
}
|
||||
|
||||
void test__fail(void)
|
||||
{
|
||||
env.test->error_cnt++;
|
||||
}
|
||||
|
||||
struct ipv4_packet pkt_v4 = {
|
||||
.eth.h_proto = __bpf_constant_htons(ETH_P_IP),
|
||||
.iph.ihl = 5,
|
||||
@ -144,7 +145,7 @@ int bpf_find_map(const char *test, struct bpf_object *obj, const char *name)
|
||||
map = bpf_object__find_map_by_name(obj, name);
|
||||
if (!map) {
|
||||
printf("%s:FAIL:map '%s' not found\n", test, name);
|
||||
error_cnt++;
|
||||
test__fail();
|
||||
return -1;
|
||||
}
|
||||
return bpf_map__fd(map);
|
||||
@ -503,8 +504,6 @@ int main(int argc, char **argv)
|
||||
stdio_hijack();
|
||||
for (i = 0; i < prog_test_cnt; i++) {
|
||||
struct prog_test_def *test = &prog_test_defs[i];
|
||||
int old_pass_cnt = pass_cnt;
|
||||
int old_error_cnt = error_cnt;
|
||||
|
||||
env.test = test;
|
||||
test->test_num = i + 1;
|
||||
@ -519,8 +518,6 @@ int main(int argc, char **argv)
|
||||
test__end_subtest();
|
||||
|
||||
test->tested = true;
|
||||
test->pass_cnt = pass_cnt - old_pass_cnt;
|
||||
test->error_cnt = error_cnt - old_error_cnt;
|
||||
if (test->error_cnt)
|
||||
env.fail_cnt++;
|
||||
else
|
||||
@ -540,5 +537,5 @@ int main(int argc, char **argv)
|
||||
free(env.test_selector.num_set);
|
||||
free(env.subtest_selector.num_set);
|
||||
|
||||
return error_cnt ? EXIT_FAILURE : EXIT_SUCCESS;
|
||||
return env.fail_cnt ? EXIT_FAILURE : EXIT_SUCCESS;
|
||||
}
|
||||
|
Reference in New Issue
Block a user