[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <b38450e4a57c49afc57d0a5876857cf219847f42.1544474487.git.sdf@google.com>
Date: Mon, 10 Dec 2018 12:43:09 -0800
From: Stanislav Fomichev <sdf@...gle.com>
To: netdev@...r.kernel.org
Cc: davem@...emloft.net, ast@...nel.org, daniel@...earbox.net,
jakub.kicinski@...ronome.com, Stanislav Fomichev <sdf@...gle.com>
Subject: [PATCH bpf-next v2 1/2] selftests/bpf: skip maps sockmap tests on
kernels without support
Include "autoconf.h" header in the test_maps.c and selectively
disable test_sockmap if CONFIG_BPF_STREAM_PARSER is not specified
in the kernel config.
When building out of tree/without autoconf.h, fall back to 'enabled'.
v2 changes:
* add SKIP indication on the stdout
Signed-off-by: Stanislav Fomichev <sdf@...gle.com>
---
tools/testing/selftests/bpf/test_maps.c | 23 ++++++++++++++++++++++-
1 file changed, 22 insertions(+), 1 deletion(-)
diff --git a/tools/testing/selftests/bpf/test_maps.c b/tools/testing/selftests/bpf/test_maps.c
index 9c79ee017df3..4b2cd6300153 100644
--- a/tools/testing/selftests/bpf/test_maps.c
+++ b/tools/testing/selftests/bpf/test_maps.c
@@ -21,6 +21,7 @@
#include <sys/socket.h>
#include <netinet/in.h>
#include <linux/bpf.h>
+#include <tools/config.h>
#include <bpf/bpf.h>
#include <bpf/libbpf.h>
@@ -32,7 +33,15 @@
#define ENOTSUPP 524
#endif
+#ifdef HAVE_GENHDR
+# include "autoconf.h"
+#else
+/* fallback to all features enabled */
+# define CONFIG_BPF_STREAM_PARSER 1
+#endif
+
static int map_flags;
+static int skips = 0;
#define CHECK(condition, tag, format...) ({ \
int __ret = !!(condition); \
@@ -43,6 +52,16 @@ static int map_flags;
} \
})
+#define CHECK_CONFIG(opt) ({ \
+ if (!IS_BUILTIN(opt)) { \
+ printf("%s SKIP " \
+ "(missing required config)\n", \
+ __func__); \
+ skips++; \
+ return; \
+ } \
+})
+
static void test_hashmap(int task, void *data)
{
long long key, next_key, first_key, value;
@@ -657,6 +676,8 @@ static void test_sockmap(int tasks, void *data)
pid_t pid[tasks];
fd_set w;
+ CHECK_CONFIG(CONFIG_BPF_STREAM_PARSER);
+
/* Create some sockets to use with sockmap */
for (i = 0; i < 2; i++) {
sfd[i] = socket(AF_INET, SOCK_STREAM, 0);
@@ -1702,6 +1723,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;
}
--
2.20.0.rc2.403.gdbc3b29805-goog
Powered by blists - more mailing lists