selftests/bpf: skip sockmap in test_maps if kernel doesn't have support
Use recently introduced bpf_probe_map_type() to skip test_sockmap() if map creation fails. The skipped test is indicated in the output. Example: test_sockmap SKIP (unsupported map type BPF_MAP_TYPE_SOCKMAP) Fork 1024 tasks to 'test_update_delete' ... test_sockmap SKIP (unsupported map type BPF_MAP_TYPE_SOCKMAP) Fork 1024 tasks to 'test_update_delete' ... test_maps: OK, 2 SKIPPED Signed-off-by: Stanislav Fomichev <sdf@google.com> Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
This commit is contained in:
parent
630afc7734
commit
e8ddbfb4bc
|
@ -32,6 +32,8 @@
|
|||
#define ENOTSUPP 524
|
||||
#endif
|
||||
|
||||
static int skips;
|
||||
|
||||
static int map_flags;
|
||||
|
||||
#define CHECK(condition, tag, format...) ({ \
|
||||
|
@ -724,6 +726,15 @@ static void test_sockmap(int tasks, void *data)
|
|||
sizeof(key), sizeof(value),
|
||||
6, 0);
|
||||
if (fd < 0) {
|
||||
if (!bpf_probe_map_type(BPF_MAP_TYPE_SOCKMAP, 0)) {
|
||||
printf("%s SKIP (unsupported map type BPF_MAP_TYPE_SOCKMAP)\n",
|
||||
__func__);
|
||||
skips++;
|
||||
for (i = 0; i < 6; i++)
|
||||
close(sfd[i]);
|
||||
return;
|
||||
}
|
||||
|
||||
printf("Failed to create sockmap %i\n", fd);
|
||||
goto out_sockmap;
|
||||
}
|
||||
|
@ -1701,6 +1712,6 @@ int main(void)
|
|||
map_flags = BPF_F_NO_PREALLOC;
|
||||
run_all_tests();
|
||||
|
||||
printf("test_maps: OK\n");
|
||||
printf("test_maps: OK, %d SKIPPED\n", skips);
|
||||
return 0;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue