On Fri, 25 Aug 2023 at 14:50, Maciej Fijalkowski <maciej.fijalkowski@xxxxxxxxx> wrote: > > On Thu, Aug 24, 2023 at 02:28:52PM +0200, Magnus Karlsson wrote: > > From: Magnus Karlsson <magnus.karlsson@xxxxxxxxx> > > > > Add the -h option to display all available command line options > > available for test_xsk.sh and xskxceiver. > > > > Signed-off-by: Magnus Karlsson <magnus.karlsson@xxxxxxxxx> > > --- > > tools/testing/selftests/bpf/test_xsk.sh | 11 ++++++++++- > > tools/testing/selftests/bpf/xskxceiver.c | 5 ++++- > > 2 files changed, 14 insertions(+), 2 deletions(-) > > > > diff --git a/tools/testing/selftests/bpf/test_xsk.sh b/tools/testing/selftests/bpf/test_xsk.sh > > index b7186ae48497..9ec718043c1a 100755 > > --- a/tools/testing/selftests/bpf/test_xsk.sh > > +++ b/tools/testing/selftests/bpf/test_xsk.sh > > @@ -82,12 +82,15 @@ > > # > > # Run a specific test from the test suite > > # sudo ./test_xsk.sh -t TEST_NAME > > +# > > +# Display the available command line options > > +# ./test_xsk.sh -h > > > > . xsk_prereqs.sh > > > > ETH="" > > > > -while getopts "vi:dm:lt:" flag > > +while getopts "vi:dm:lt:h" flag > > do > > case "${flag}" in > > v) verbose=1;; > > @@ -96,6 +99,7 @@ do > > m) XSKTEST_MODE=${OPTARG};; > > l) list=1;; > > t) XSKTEST_TEST=${OPTARG};; > > + h) help=1;; > > esac > > done > > > > @@ -148,6 +152,11 @@ if [[ $list -eq 1 ]]; then > > exit > > fi > > > > +if [[ $help -eq 1 ]]; then > > + ./${XSKOBJ} > > + exit > > +fi > > + > > if [ ! -z $ETH ]; then > > VETH0=${ETH} > > VETH1=${ETH} > > diff --git a/tools/testing/selftests/bpf/xskxceiver.c b/tools/testing/selftests/bpf/xskxceiver.c > > index 19db9a827c30..9feb476d647f 100644 > > --- a/tools/testing/selftests/bpf/xskxceiver.c > > +++ b/tools/testing/selftests/bpf/xskxceiver.c > > @@ -318,6 +318,7 @@ static struct option long_options[] = { > > {"mode", required_argument, 0, 'm'}, > > {"list", no_argument, 0, 'l'}, > > {"test", required_argument, 0, 't'}, > > + {"help", no_argument, 0, 'h'}, > > {0, 0, 0, 0} > > }; > > > > @@ -331,7 +332,8 @@ static void print_usage(char **argv) > > " -b, --busy-poll Enable busy poll\n" > > " -m, --mode Run only mode skb, drv, or zc\n" > > " -l, --list List all available tests\n" > > - " -t, --test Run a specific test. Enter number from -l option.\n"; > > + " -t, --test Run a specific test. Enter number from -l option.\n" > > + " -h, --help Display this help and exit\n"; > > > > ksft_print_msg(str, basename(argv[0])); > > ksft_exit_xfail(); > > @@ -406,6 +408,7 @@ static void parse_command_line(struct ifobject *ifobj_tx, struct ifobject *ifobj > > if (errno) > > print_usage(argv); > > break; > > + case 'h': > > do you need 'fallthrough' here? Did not get any complaints from checkpatch, so do not know since it is a case without any content on its own. I would say it is obvious that it is "falling through" in this case :-). But I do not know what the rule is. > > default: > > print_usage(argv); > > } > > -- > > 2.34.1 > >