• Benjamin Poirier's avatar
    selftests: forwarding: Avoid failures to source net/lib.sh · 2114e833
    Benjamin Poirier authored
    The expression "source ../lib.sh" added to net/forwarding/lib.sh in commit
    25ae948b ("selftests/net: add lib.sh") does not work for tests outside
    net/forwarding which source net/forwarding/lib.sh (1). It also does not
    work in some cases where only a subset of tests are exported (2).
    
    Avoid the problems mentioned above by replacing the faulty expression with
    a copy of the content from net/lib.sh which is used by files under
    net/forwarding.
    
    A more thorough solution which avoids duplicating content between
    net/lib.sh and net/forwarding/lib.sh has been posted here:
    https://lore.kernel.org/netdev/20231222135836.992841-1-bpoirier@nvidia.com/
    
    The approach in the current patch is a stopgap solution to avoid submitting
    large changes at the eleventh hour of this development cycle.
    
    Example of problem 1)
    
    tools/testing/selftests/drivers/net/bonding$ ./dev_addr_lists.sh
    ./net_forwarding_lib.sh: line 41: ../lib.sh: No such file or directory
    TEST: bonding cleanup mode active-backup                            [ OK ]
    TEST: bonding cleanup mode 802.3ad                                  [ OK ]
    TEST: bonding LACPDU multicast address to slave (from bond down)    [ OK ]
    TEST: bonding LACPDU multicast address to slave (from bond up)      [ OK ]
    
    An error message is printed but since the test does not use functions from
    net/lib.sh, the test results are not affected.
    
    Example of problem 2)
    
    tools/testing/selftests$ make install TARGETS="net/forwarding"
    tools/testing/selftests$ cd kselftest_install/net/forwarding/
    tools/testing/selftests/kselftest_install/net/forwarding$ ./pedit_ip.sh veth{0..3}
    lib.sh: line 41: ../lib.sh: No such file or directory
    TEST: ping                                                          [ OK ]
    TEST: ping6                                                         [ OK ]
    ./pedit_ip.sh: line 135: busywait: command not found
    TEST: dev veth1 ingress pedit ip src set 198.51.100.1               [FAIL]
            Expected to get 10 packets, but got .
    ./pedit_ip.sh: line 135: busywait: command not found
    TEST: dev veth2 egress pedit ip src set 198.51.100.1                [FAIL]
            Expected to get 10 packets, but got .
    ./pedit_ip.sh: line 135: busywait: command not found
    TEST: dev veth1 ingress pedit ip dst set 198.51.100.1               [FAIL]
            Expected to get 10 packets, but got .
    ./pedit_ip.sh: line 135: busywait: command not found
    TEST: dev veth2 egress pedit ip dst set 198.51.100.1                [FAIL]
            Expected to get 10 packets, but got .
    ./pedit_ip.sh: line 135: busywait: command not found
    TEST: dev veth1 ingress pedit ip6 src set 2001:db8:2::1             [FAIL]
            Expected to get 10 packets, but got .
    ./pedit_ip.sh: line 135: busywait: command not found
    TEST: dev veth2 egress pedit ip6 src set 2001:db8:2::1              [FAIL]
            Expected to get 10 packets, but got .
    ./pedit_ip.sh: line 135: busywait: command not found
    TEST: dev veth1 ingress pedit ip6 dst set 2001:db8:2::1             [FAIL]
            Expected to get 10 packets, but got .
    ./pedit_ip.sh: line 135: busywait: command not found
    TEST: dev veth2 egress pedit ip6 dst set 2001:db8:2::1              [FAIL]
            Expected to get 10 packets, but got .
    
    In this case, the test results are affected.
    
    Fixes: 25ae948b ("selftests/net: add lib.sh")
    Suggested-by: default avatarIdo Schimmel <idosch@nvidia.com>
    Suggested-by: default avatarPetr Machata <petrm@nvidia.com>
    Reviewed-by: default avatarIdo Schimmel <idosch@nvidia.com>
    Tested-by: default avatarPetr Machata <petrm@nvidia.com>
    Signed-off-by: default avatarBenjamin Poirier <bpoirier@nvidia.com>
    Reviewed-by: default avatarHangbin Liu <liuhangbin@gmail.com>
    Link: https://lore.kernel.org/r/20240104141109.100672-1-bpoirier@nvidia.comSigned-off-by: default avatarJakub Kicinski <kuba@kernel.org>
    2114e833
lib.sh 38.7 KB