On Thu, Sep 14, 2023 at 10:48:47AM +0200, Magnus Karlsson wrote: > This patch set implements several improvements to the xsk selftests > test suite that I thought were useful while debugging the xsk > multi-buffer code and tests. The largest new feature is the ability to > be able to execute a single test instead of the whole test suite. This > required some surgery on the current code, details below. > > Anatomy of the path set: > > 1: Print useful info on a per packet basis with the option -v > > 2: Add a timeout in the transmission loop too. We only used to have > one for the Rx thread, but Tx can lock up too waiting for > completions. > > 3: Add an option (-m) to only run the tests (or a single test with a > later patch) in a single mode: skb, drv, or zc (zero-copy). > > 4-5: Preparatory patches to be able to specify a test to run. Need to > define the test names in a single structure and their entry > points, so we can use this when wanting to run a specific test. > > 6: Adds a command line option (-l) that lists all the tests. > > 7: Adds a command line option (-t) that runs a specific test instead > of the whole test suite. Can be combined with -m to specify a > single mode too. > > 8: Use ksft_print_msg() uniformly throughout the tests. It was a mix > of printf() and ksft_print_msg() before. > > 9: In some places, we failed the whole test suite instead of a single > test in certain circumstances. Fix this so only the test in > question is failed and the rest of the test suite continues. > > 10: Display the available command line options with -h > > v3 -> v4: > * Fixed another spelling error in patch #9 [Maciej] > * Only allow the actual strings for the -m command [Maciej] > * Move some code from patch #7 to #3 [Maciej] > > v2 -> v3: > * Drop the support for environment variables. Probably not useful. [Maciej] > * Fixed spelling mistake in patch #9 [Maciej] > * Fail gracefully if unsupported mode is chosen [Maciej] > * Simplified test run loop [Maciej] > > v1 -> v2: > > * Introduce XSKTEST_MODE env variable to be able to set the mode to > use [Przemyslaw] > * Introduce XSKTEST_ETH env variable to be able to set the ethernet > interface to use by introducing a new patch (#11) [Magnus] > * Fixed spelling error in patch #5 [Przemyslaw, Maciej] > * Fixed confusing documentation in patch #10 [Przemyslaw] > * The -l option can now be used without being root [Magnus, Maciej] > * Fixed documentation error in patch #7 [Maciej] > * Added error handling to the -t option [Maciej] > * -h now displayed as an option [Maciej] > > Thanks: Magnus > for the series: Acked-by: Maciej Fijalkowski <maciej.fijalkowski@xxxxxxxxx> > Magnus Karlsson (10): > selftests/xsk: print per packet info in verbose mode > selftests/xsk: add timeout for Tx thread > selftests/xsk: add option to only run tests in a single mode > selftests/xsk: move all tests to separate functions > selftests/xsk: declare test names in struct > selftests/xsk: add option that lists all tests > selftests/xsk: add option to run single test > selftests/xsk: use ksft_print_msg uniformly > selftests/xsk: fail single test instead of all tests > selftests/xsk: display command line options with -h > > tools/testing/selftests/bpf/test_xsk.sh | 40 +- > tools/testing/selftests/bpf/xsk_prereqs.sh | 10 +- > tools/testing/selftests/bpf/xskxceiver.c | 535 ++++++++++++--------- > tools/testing/selftests/bpf/xskxceiver.h | 44 +- > 4 files changed, 368 insertions(+), 261 deletions(-) > > > base-commit: 558c50cc3b135e00c9ed15df4c9159e84166f94c > -- > 2.42.0