@@ -777,7 +777,7 @@ $(OUTPUT)/test_verifier: test_verifier.c verifier/tests.h $(BPFOBJ) | $(OUTPUT)
EXTRA_SRC := $(TOOLSDIR)/lib/find_bit.c
$(OUTPUT)/xskxceiver: $(EXTRA_SRC) test_xsk.c xskxceiver.c xskxceiver.h $(OUTPUT)/network_helpers.o $(OUTPUT)/xsk.o $(OUTPUT)/xsk_xdp_progs.skel.h $(BPFOBJ) | $(OUTPUT)
$(call msg,BINARY,,$@)
- $(Q)$(CC) $(CFLAGS) $(filter %.a %.o %.c,$^) $(LDLIBS) -o $@
+ $(Q)$(CC) $(CFLAGS) -D XSK_KSELFTEST $(filter %.a %.o %.c,$^) $(LDLIBS) -o $@
$(OUTPUT)/xdp_hw_metadata: xdp_hw_metadata.c $(OUTPUT)/network_helpers.o $(OUTPUT)/xsk.o $(OUTPUT)/xdp_hw_metadata.skel.h | $(OUTPUT)
$(call msg,BINARY,,$@)
@@ -5,7 +5,6 @@
#include <linux/ethtool.h>
#include <linux/if_xdp.h>
-#include "../kselftest.h"
#include "xsk.h"
#ifndef SO_PREFER_BUSY_POLL
@@ -31,12 +30,29 @@
#define SOCK_RECONF_CTR 10
#define USLEEP_MAX 10000
+
+#ifdef XSK_KSELFTEST
+#include "../kselftest.h"
+
static bool opt_verbose;
#define print_msg(x...) ksft_print_msg(x)
#define print_verbose(x...) do { if (opt_verbose) ksft_print_msg(x); } while (0)
#define skip_reason(x...) ksft_test_result_skip(x)
#define fail_reason(x...) ksft_test_result_fail(x)
+#else
+
+void xsk_log(const char *msg, ...);
+void xsk_verbose(const char *msg, ...);
+void xsk_skip(const char *msg);
+
+#define print_msg(x...) xsk_verbose(x)
+#define print_verbose(x...) xsk_verbose(x)
+#define skip_reason(x...) xsk_skip(x)
+#define fail_reason(x...) xsk_log(x)
+
+#endif
+
static inline u32 ceil_u32(u32 a, u32 b)
{
return (a + b - 1) / b;
test_xsk.c uses the kselftest framework. This isn't compatible with the test_progs framework. Add a XSK_SELTFEST define that allows to enable/disable the kselftest usage. Signed-off-by: Bastien Curutchet (eBPF Foundation) <bastien.curutchet@bootlin.com> --- tools/testing/selftests/bpf/Makefile | 2 +- tools/testing/selftests/bpf/test_xsk.h | 18 +++++++++++++++++- 2 files changed, 18 insertions(+), 2 deletions(-)