Netdev Archive on lore.kernel.org
help / color / mirror / Atom feed
From: Magnus Karlsson <magnus.karlsson@gmail.com>
To: magnus.karlsson@intel.com, bjorn@kernel.org, ast@kernel.org,
daniel@iogearbox.net, netdev@vger.kernel.org,
maciej.fijalkowski@intel.com
Cc: jonathan.lemon@gmail.com, ciara.loftus@intel.com,
bpf@vger.kernel.org, yhs@fb.com, andrii@kernel.org
Subject: [PATCH bpf-next v2 07/20] selftests: xsx: introduce test name in test spec
Date: Tue, 7 Sep 2021 09:19:15 +0200 [thread overview]
Message-ID: <20210907071928.9750-8-magnus.karlsson@gmail.com> (raw)
In-Reply-To: <20210907071928.9750-1-magnus.karlsson@gmail.com>
From: Magnus Karlsson <magnus.karlsson@intel.com>
Introduce the test name in the test specification. This so we can set
the name locally in the test function and simplify the logic for
printing out test results.
Signed-off-by: Magnus Karlsson <magnus.karlsson@intel.com>
---
tools/testing/selftests/bpf/xdpxceiver.c | 49 ++++++++++++++----------
tools/testing/selftests/bpf/xdpxceiver.h | 2 +
2 files changed, 31 insertions(+), 20 deletions(-)
diff --git a/tools/testing/selftests/bpf/xdpxceiver.c b/tools/testing/selftests/bpf/xdpxceiver.c
index 79cf082a7581..8ef58081d4d2 100644
--- a/tools/testing/selftests/bpf/xdpxceiver.c
+++ b/tools/testing/selftests/bpf/xdpxceiver.c
@@ -112,13 +112,9 @@ static void __exit_with_error(int error, const char *file, const char *func, int
#define exit_with_error(error) __exit_with_error(error, __FILE__, __func__, __LINE__)
-#define print_ksft_result(void)\
- (ksft_test_result_pass("PASS: %s %s %s%s%s%s\n", configured_mode ? "DRV" : "SKB",\
- test_type == TEST_TYPE_POLL ? "POLL" : "NOPOLL",\
- test_type == TEST_TYPE_TEARDOWN ? "Socket Teardown" : "",\
- test_type == TEST_TYPE_BIDI ? "Bi-directional Sockets" : "",\
- test_type == TEST_TYPE_STATS ? "Stats" : "",\
- test_type == TEST_TYPE_BPF_RES ? "BPF RES" : ""))
+#define print_ksft_result(test)\
+ (ksft_test_result_pass("PASS: %s %s\n", configured_mode ? "DRV" : "SKB", \
+ (test)->name))
static void memset32_htonl(void *dest, u32 val, u32 size)
{
@@ -428,6 +424,11 @@ static void test_spec_reset(struct test_spec *test)
__test_spec_init(test, test->ifobj_tx, test->ifobj_rx);
}
+static void test_spec_set_name(struct test_spec *test, const char *name)
+{
+ strncpy(test->name, name, MAX_TEST_NAME_SIZE);
+}
+
static struct pkt *pkt_stream_get_pkt(struct pkt_stream *pkt_stream, u32 pkt_nb)
{
if (pkt_nb >= pkt_stream->nb_pkts)
@@ -880,8 +881,6 @@ static void testapp_validate_traffic(struct test_spec *test)
{
struct ifobject *ifobj_tx = test->ifobj_tx;
struct ifobject *ifobj_rx = test->ifobj_rx;
- bool bidi = test_type == TEST_TYPE_BIDI;
- bool bpf = test_type == TEST_TYPE_BPF_RES;
struct pkt_stream *pkt_stream;
if (pthread_barrier_init(&barr, NULL, 2))
@@ -907,21 +906,17 @@ static void testapp_validate_traffic(struct test_spec *test)
pthread_join(t1, NULL);
pthread_join(t0, NULL);
-
- if (!(test_type == TEST_TYPE_TEARDOWN) && !bidi && !bpf && !(test_type == TEST_TYPE_STATS))
- print_ksft_result();
}
static void testapp_teardown(struct test_spec *test)
{
int i;
+ test_spec_set_name(test, "TEARDOWN");
for (i = 0; i < MAX_TEARDOWN_ITER; i++) {
testapp_validate_traffic(test);
test_spec_reset(test);
}
-
- print_ksft_result();
}
static void swap_directions(struct ifobject **ifobj1, struct ifobject **ifobj2)
@@ -942,6 +937,7 @@ static void swap_directions(struct ifobject **ifobj1, struct ifobject **ifobj2)
static void testapp_bidi(struct test_spec *test)
{
+ test_spec_set_name(test, "BIDIRECTIONAL");
for (int i = 0; i < MAX_BIDI_ITER; i++) {
print_verbose("Creating socket\n");
testapp_validate_traffic(test);
@@ -953,8 +949,6 @@ static void testapp_bidi(struct test_spec *test)
}
swap_directions(&test->ifobj_rx, &test->ifobj_tx);
-
- print_ksft_result();
}
static void swap_xsk_resources(struct ifobject *ifobj_tx, struct ifobject *ifobj_rx)
@@ -973,6 +967,7 @@ static void testapp_bpf_res(struct test_spec *test)
{
int i;
+ test_spec_set_name(test, "BPF_RES");
for (i = 0; i < MAX_BPF_ITER; i++) {
print_verbose("Creating socket\n");
testapp_validate_traffic(test);
@@ -980,8 +975,6 @@ static void testapp_bpf_res(struct test_spec *test)
swap_xsk_resources(test->ifobj_tx, test->ifobj_rx);
second_step = true;
}
-
- print_ksft_result();
}
static void testapp_stats(struct test_spec *test)
@@ -992,21 +985,28 @@ static void testapp_stats(struct test_spec *test)
switch (stat_test_type) {
case STAT_TEST_RX_DROPPED:
+ test_spec_set_name(test, "STAT_RX_DROPPED");
test->ifobj_rx->umem->frame_headroom = test->ifobj_rx->umem->frame_size -
XDP_PACKET_HEADROOM - 1;
break;
case STAT_TEST_RX_FULL:
+ test_spec_set_name(test, "STAT_RX_FULL");
test->ifobj_rx->xsk->rxqsize = RX_FULL_RXQSIZE;
break;
case STAT_TEST_TX_INVALID:
+ test_spec_set_name(test, "STAT_TX_INVALID");
continue;
+ case STAT_TEST_RX_FILL_EMPTY:
+ test_spec_set_name(test, "STAT_RX_FILL_EMPTY");
+ break;
default:
break;
}
testapp_validate_traffic(test);
}
- print_ksft_result();
+ /* To only see the whole stat set being completed unless an individual test fails. */
+ test_spec_set_name(test, "STATS");
}
static void init_iface(struct ifobject *ifobj, const char *dst_mac, const char *src_mac,
@@ -1066,10 +1066,19 @@ static void run_pkt_test(struct test_spec *test, int mode, int type)
case TEST_TYPE_BPF_RES:
testapp_bpf_res(test);
break;
- default:
+ case TEST_TYPE_NOPOLL:
+ test_spec_set_name(test, "RUN_TO_COMPLETION");
+ testapp_validate_traffic(test);
+ break;
+ case TEST_TYPE_POLL:
+ test_spec_set_name(test, "POLL");
testapp_validate_traffic(test);
break;
+ default:
+ break;
}
+
+ print_ksft_result(test);
}
static struct ifobject *ifobject_create(void)
diff --git a/tools/testing/selftests/bpf/xdpxceiver.h b/tools/testing/selftests/bpf/xdpxceiver.h
index bfd14190abfc..15eab31b3b32 100644
--- a/tools/testing/selftests/bpf/xdpxceiver.h
+++ b/tools/testing/selftests/bpf/xdpxceiver.h
@@ -22,6 +22,7 @@
#define MAX_INTERFACES_NAMESPACE_CHARS 10
#define MAX_SOCKS 1
#define MAX_SOCKETS 2
+#define MAX_TEST_NAME_SIZE 32
#define MAX_TEARDOWN_ITER 10
#define MAX_BIDI_ITER 2
#define MAX_BPF_ITER 2
@@ -141,6 +142,7 @@ struct ifobject {
struct test_spec {
struct ifobject *ifobj_tx;
struct ifobject *ifobj_rx;
+ char name[MAX_TEST_NAME_SIZE];
};
/*threads*/
--
2.29.0
next prev parent reply other threads:[~2021-09-07 7:20 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-09-07 7:19 [PATCH bpf-next v2 00/20] selftests: xsk: facilitate adding tests Magnus Karlsson
2021-09-07 7:19 ` [PATCH bpf-next v2 01/20] selftests: xsk: simplify xsk and umem arrays Magnus Karlsson
2021-09-07 7:19 ` [PATCH bpf-next v2 02/20] selftests: xsk: introduce type for thread function Magnus Karlsson
2021-09-07 7:19 ` [PATCH bpf-next v2 03/20] selftests: xsk: introduce test specifications Magnus Karlsson
2021-09-07 7:19 ` [PATCH bpf-next v2 04/20] selftests: xsk: move num_frames and frame_headroom to xsk_umem_info Magnus Karlsson
2021-09-07 7:19 ` [PATCH bpf-next v2 05/20] selftests: xsk: move rxqsize into xsk_socket_info Magnus Karlsson
2021-09-07 7:19 ` [PATCH bpf-next v2 06/20] selftests: xsk: make frame_size configurable Magnus Karlsson
2021-09-07 7:19 ` Magnus Karlsson [this message]
2021-09-07 7:19 ` [PATCH bpf-next v2 08/20] selftests: xsk: add use_poll to ifobject Magnus Karlsson
2021-09-07 7:19 ` [PATCH bpf-next v2 09/20] selftests: xsk: introduce rx_on and tx_on in ifobject Magnus Karlsson
2021-09-07 7:19 ` [PATCH bpf-next v2 10/20] selftests: xsk: replace second_step global variable Magnus Karlsson
2021-09-07 7:19 ` [PATCH bpf-next v2 11/20] selftests: xsk: specify number of sockets to create Magnus Karlsson
2021-09-07 7:19 ` [PATCH bpf-next v2 12/20] selftests: xsk: make xdp_flags and bind_flags local Magnus Karlsson
2021-09-07 7:19 ` [PATCH bpf-next v2 13/20] selftests: xsx: make pthreads local scope Magnus Karlsson
2021-09-07 7:19 ` [PATCH bpf-next v2 14/20] selftests: xsk: eliminate MAX_SOCKS define Magnus Karlsson
2021-09-07 7:19 ` [PATCH bpf-next v2 15/20] selftests: xsk: allow for invalid packets Magnus Karlsson
2021-09-07 7:19 ` [PATCH bpf-next v2 16/20] selftests: xsk: introduce replacing the default packet stream Magnus Karlsson
2021-09-07 7:19 ` [PATCH bpf-next v2 17/20] selftests: xsk: add test for unaligned mode Magnus Karlsson
2021-09-07 7:19 ` [PATCH bpf-next v2 18/20] selftests: xsk: eliminate test specific if-statement in test runner Magnus Karlsson
2021-09-07 7:19 ` [PATCH bpf-next v2 19/20] selftests: xsk: add tests for invalid xsk descriptors Magnus Karlsson
2021-09-07 7:19 ` [PATCH bpf-next v2 20/20] selftests: xsk: add tests for 2K frame size Magnus Karlsson
2021-09-10 12:54 ` [PATCH bpf-next v2 00/20] selftests: xsk: facilitate adding tests Maciej Fijalkowski
2021-09-10 19:20 ` patchwork-bot+netdevbpf
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20210907071928.9750-8-magnus.karlsson@gmail.com \
--to=magnus.karlsson@gmail.com \
--cc=andrii@kernel.org \
--cc=ast@kernel.org \
--cc=bjorn@kernel.org \
--cc=bpf@vger.kernel.org \
--cc=ciara.loftus@intel.com \
--cc=daniel@iogearbox.net \
--cc=jonathan.lemon@gmail.com \
--cc=maciej.fijalkowski@intel.com \
--cc=magnus.karlsson@intel.com \
--cc=netdev@vger.kernel.org \
--cc=yhs@fb.com \
--subject='Re: [PATCH bpf-next v2 07/20] selftests: xsx: introduce test name in test spec' \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).