selftests: net: fib_nexthops: Wait before checking reported idle time
authorPetr Machata <petrm@nvidia.com>
Fri, 24 Sep 2021 10:04:27 +0000 (12:04 +0200)
committerDavid S. Miller <davem@davemloft.net>
Mon, 27 Sep 2021 11:15:36 +0000 (12:15 +0100)
The purpose of this test is to verify that after a short activity passes,
the reported time is reasonable: not zero (which could be reported by
mistake), and not something outrageous (which would be indicative of an
issue in used units).

However, the idle time is reported in units of clock_t, or hundredths of
second. If the initial sequence of commands is very quick, it is possible
that the idle time is reported as just flat-out zero. When this test was
recently enabled in our nightly regression, we started seeing spurious
failures for exactly this reason.

Therefore buffer the delay leading up to the test with a sleep, to make
sure there is no legitimate way of reporting 0.

Signed-off-by: Petr Machata <petrm@nvidia.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
tools/testing/selftests/net/fib_nexthops.sh

index 0d29339..b5a69ad 100755 (executable)
@@ -2078,6 +2078,7 @@ basic_res()
                "id 101 index 0 nhid 2 id 101 index 1 nhid 2 id 101 index 2 nhid 1 id 101 index 3 nhid 1"
        log_test $? 0 "Dump all nexthop buckets in a group"
 
+       sleep 0.1
        (( $($IP -j nexthop bucket list id 101 |
             jq '[.[] | select(.bucket.idle_time > 0 and
                               .bucket.idle_time < 2)] | length') == 4 ))