selftests: fib_nexthops: Test large scale nexthop flushing
authorIdo Schimmel <idosch@nvidia.com>
Fri, 16 Apr 2021 15:55:35 +0000 (18:55 +0300)
committerDavid S. Miller <davem@davemloft.net>
Mon, 19 Apr 2021 22:20:34 +0000 (15:20 -0700)
Test that all the nexthops are flushed when a multi-part nexthop dump is
required for the flushing.

Without previous patch:

 # ./fib_nexthops.sh
 TEST: Large scale nexthop flushing                                  [FAIL]

With previous patch:

 # ./fib_nexthops.sh
 TEST: Large scale nexthop flushing                                  [ OK ]

Signed-off-by: Ido Schimmel <idosch@nvidia.com>
Reviewed-by: Petr Machata <petrm@nvidia.com>
Reviewed-by: David Ahern <dsahern@kernel.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
tools/testing/selftests/net/fib_nexthops.sh

index 56dd0c6..49774a8 100755 (executable)
@@ -1933,6 +1933,21 @@ basic()
        log_test $? 2 "Nexthop group and blackhole"
 
        $IP nexthop flush >/dev/null 2>&1
+
+       # Test to ensure that flushing with a multi-part nexthop dump works as
+       # expected.
+       local batch_file=$(mktemp)
+
+       for i in $(seq 1 $((64 * 1024))); do
+               echo "nexthop add id $i blackhole" >> $batch_file
+       done
+
+       $IP -b $batch_file
+       $IP nexthop flush >/dev/null 2>&1
+       [[ $($IP nexthop | wc -l) -eq 0 ]]
+       log_test $? 0 "Large scale nexthop flushing"
+
+       rm $batch_file
 }
 
 check_nexthop_buckets_balance()