selftests: forwarding: lib.sh: Validate NETIFS
authorPetr Machata <petrm@nvidia.com>
Fri, 12 Apr 2024 17:03:05 +0000 (19:03 +0200)
committerPaolo Abeni <pabeni@redhat.com>
Tue, 16 Apr 2024 10:14:41 +0000 (12:14 +0200)
The variable should contain at least NUM_NETIFS interfaces, stored
as keys named "p$i", for i in `seq $NUM_NETIFS`.

Signed-off-by: Petr Machata <petrm@nvidia.com>
Reviewed-by: Benjamin Poirier <bpoirier@nvidia.com>
Reviewed-by: Hangbin Liu <liuhangbin@gmail.com>
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
tools/testing/selftests/net/forwarding/lib.sh

index 658e4e7bf4b9d181ff82eb03a52c6994a6232ad0..3cbbc2fd4d7d4ffd67a165a8dfd3cf9c1fdc79b0 100644 (file)
@@ -273,11 +273,6 @@ if [[ "$REQUIRE_MTOOLS" = "yes" ]]; then
        require_command mreceive
 fi
 
-if [[ ! -v NUM_NETIFS ]]; then
-       echo "SKIP: importer does not define \"NUM_NETIFS\""
-       exit $ksft_skip
-fi
-
 ##############################################################################
 # Command line options handling
 
@@ -296,6 +291,23 @@ done
 ##############################################################################
 # Network interfaces configuration
 
+if [[ ! -v NUM_NETIFS ]]; then
+       echo "SKIP: importer does not define \"NUM_NETIFS\""
+       exit $ksft_skip
+fi
+
+if (( NUM_NETIFS > ${#NETIFS[@]} )); then
+       echo "SKIP: Importer requires $NUM_NETIFS NETIFS, but only ${#NETIFS[@]} are defined (${NETIFS[@]})"
+       exit $ksft_skip
+fi
+
+for i in $(seq ${#NETIFS[@]}); do
+       if [[ ! ${NETIFS[p$i]} ]]; then
+               echo "SKIP: NETIFS[p$i] not given"
+               exit $ksft_skip
+       fi
+done
+
 create_netif_veth()
 {
        local i