On 11/15/22 2:23 AM, Wang Yufen wrote:
The program file used in the udpgro_frglist testcase is "../bpf/nat6to4.o", but the actual nat6to4.o file is in "bpf/" not "../bpf". The following error occurs: Error opening object ../bpf/nat6to4.o: No such file or directory Cannot initialize ELF context! Unable to load program In addition, all the kernel bpf source files are centred under the subdir "progs" after commit bd4aed0ee73c ("selftests: bpf: centre kernel bpf objects under new subdir "progs""). So mv nat6to4.c to "../bpf/progs" and use "../bpf/nat6to4.bpf.o". And also move the test program to selftests/bpf. Fixes: edae34a3ed92 ("selftests net: add UDP GRO fraglist + bpf self-tests") Signed-off-by: Wang Yufen <wangyufen@xxxxxxxxxx> --- tools/testing/selftests/bpf/Makefile | 7 +- tools/testing/selftests/bpf/in_netns.sh | 23 + .../testing/selftests/bpf/progs/nat6to4_egress4.c | 184 ++++++ .../testing/selftests/bpf/progs/nat6to4_ingress6.c | 149 +++++ tools/testing/selftests/bpf/test_udpgro_frglist.sh | 110 ++++
Love to have more tests in the BPF CI which is run continuously: eg: https://github.com/kernel-patches/bpf/actions/runs/3491826279/jobs/5845219757
However, script like this does not get run in CI. test_progs has a more consistent error output and ensures some environment cleanup before running the next test. Please take some effort to adapt this test to the bpf/test_progs.c framework which had already been suggested in the previous revision.
Try to run ./test_progs under the bpf selftests directory. There are existing examples to setup/switch net ns and test_progs has logic in place to ensure the netns is restored before running the next selftest. eg. take a look at bpf/prog_tests/{test_tunnel,tc_redirect}.c.
tools/testing/selftests/bpf/udpgso_bench_rx.c | 409 ++++++++++++ tools/testing/selftests/bpf/udpgso_bench_tx.c | 712 +++++++++++++++++++++
hmmm, it is a copy? Does it need all the bench marking feature (e.g. all the cmd args)? If not, please simply because I expect the test_udpgro_frglist.sh, udpgso_bench_rx.c, and udpgso_bench_tx.c will become one file 'selftests/bpf/prog_tests/udpgrp_frglish.c' which loads the bpf prog and generates traffic to exercise the bpf prog.
Please tag it with bpf-next in the next spin which Saeed has also mentioned in another thread.
tools/testing/selftests/net/Makefile | 2 - tools/testing/selftests/net/bpf/Makefile | 14 - tools/testing/selftests/net/bpf/nat6to4.c | 285 --------- tools/testing/selftests/net/udpgro_frglist.sh | 103 --- 11 files changed, 1592 insertions(+), 406 deletions(-) create mode 100755 tools/testing/selftests/bpf/in_netns.sh create mode 100644 tools/testing/selftests/bpf/progs/nat6to4_egress4.c create mode 100644 tools/testing/selftests/bpf/progs/nat6to4_ingress6.c create mode 100755 tools/testing/selftests/bpf/test_udpgro_frglist.sh create mode 100644 tools/testing/selftests/bpf/udpgso_bench_rx.c create mode 100644 tools/testing/selftests/bpf/udpgso_bench_tx.c delete mode 100644 tools/testing/selftests/net/bpf/Makefile delete mode 100644 tools/testing/selftests/net/bpf/nat6to4.c delete mode 100755 tools/testing/selftests/net/udpgro_frglist.sh