selftests: netdevsim: add devlink regions tests
authorJiri Pirko <jiri@mellanox.com>
Thu, 15 Aug 2019 13:46:34 +0000 (15:46 +0200)
committerDavid S. Miller <davem@davemloft.net>
Thu, 15 Aug 2019 19:02:44 +0000 (12:02 -0700)
Test netdevsim devlink region implementation.

Signed-off-by: Jiri Pirko <jiri@mellanox.com>
Tested-by: Jakub Kicinski <jakub.kicinski@netronome.com>
Acked-by: Jakub Kicinski <jakub.kicinski@netronome.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
tools/testing/selftests/drivers/net/netdevsim/devlink.sh

index 6828e94044608f127e4761da46fb7f338dbe08cc..115837355eafe96c212072aa47734ff65c416313 100755 (executable)
@@ -3,7 +3,7 @@
 
 lib_dir=$(dirname $0)/../../../net/forwarding
 
-ALL_TESTS="fw_flash_test params_test"
+ALL_TESTS="fw_flash_test params_test regions_test"
 NUM_NETIFS=0
 source $lib_dir/lib.sh
 
@@ -90,6 +90,58 @@ params_test()
        log_test "params test"
 }
 
+check_region_size()
+{
+       local name=$1
+       local size
+
+       size=$(devlink region show $DL_HANDLE/$name -j | jq -e -r '.[][].size')
+       check_err $? "Failed to get $name region size"
+       [ $size -eq 32768 ]
+       check_err $? "Invalid $name region size"
+}
+
+check_region_snapshot_count()
+{
+       local name=$1
+       local phase_name=$2
+       local expected_count=$3
+       local count
+
+       count=$(devlink region show $DL_HANDLE/$name -j | jq -e -r '.[][].snapshot | length')
+       [ $count -eq $expected_count ]
+       check_err $? "Unexpected $phase_name snapshot count"
+}
+
+regions_test()
+{
+       RET=0
+
+       local count
+
+       check_region_size dummy
+       check_region_snapshot_count dummy initial 0
+
+       echo ""> $DEBUGFS_DIR/take_snapshot
+       check_err $? "Failed to take first dummy region snapshot"
+       check_region_snapshot_count dummy post-first-snapshot 1
+
+       echo ""> $DEBUGFS_DIR/take_snapshot
+       check_err $? "Failed to take second dummy region snapshot"
+       check_region_snapshot_count dummy post-second-snapshot 2
+
+       echo ""> $DEBUGFS_DIR/take_snapshot
+       check_err $? "Failed to take third dummy region snapshot"
+       check_region_snapshot_count dummy post-third-snapshot 3
+
+       devlink region del $DL_HANDLE/dummy snapshot 1
+       check_err $? "Failed to delete first dummy region snapshot"
+
+       check_region_snapshot_count dummy post-first-delete 2
+
+       log_test "regions test"
+}
+
 setup_prepare()
 {
        modprobe netdevsim