![]() System : Linux absol.cf 5.4.0-198-generic #218-Ubuntu SMP Fri Sep 27 20:18:53 UTC 2024 x86_64 User : www-data ( 33) PHP Version : 7.4.33 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare, Directory : /usr/src/linux-headers-5.4.0-193/tools/testing/selftests/drivers/net/netdevsim/ |
Upload File : |
#!/bin/bash # SPDX-License-Identifier: GPL-2.0 lib_dir=$(dirname $0)/../../../net/forwarding ALL_TESTS="fw_flash_test params_test regions_test" NUM_NETIFS=0 source $lib_dir/lib.sh BUS_ADDR=10 PORT_COUNT=4 DEV_NAME=netdevsim$BUS_ADDR SYSFS_NET_DIR=/sys/bus/netdevsim/devices/$DEV_NAME/net/ DEBUGFS_DIR=/sys/kernel/debug/netdevsim/$DEV_NAME/ DL_HANDLE=netdevsim/$DEV_NAME fw_flash_test() { RET=0 devlink dev flash $DL_HANDLE file dummy check_err $? "Failed to flash with status updates on" echo "n"> $DEBUGFS_DIR/fw_update_status check_err $? "Failed to disable status updates" devlink dev flash $DL_HANDLE file dummy check_err $? "Failed to flash with status updates off" log_test "fw flash test" } param_get() { local name=$1 cmd_jq "devlink dev param show $DL_HANDLE name $name -j" \ '.[][][].values[] | select(.cmode == "driverinit").value' } param_set() { local name=$1 local value=$2 devlink dev param set $DL_HANDLE name $name cmode driverinit value $value } check_value() { local name=$1 local phase_name=$2 local expected_param_value=$3 local expected_debugfs_value=$4 local value value=$(param_get $name) check_err $? "Failed to get $name param value" [ "$value" == "$expected_param_value" ] check_err $? "Unexpected $phase_name $name param value" value=$(<$DEBUGFS_DIR/$name) check_err $? "Failed to get $name debugfs value" [ "$value" == "$expected_debugfs_value" ] check_err $? "Unexpected $phase_name $name debugfs value" } params_test() { RET=0 local max_macs local test1 check_value max_macs initial 32 32 check_value test1 initial true Y param_set max_macs 16 check_err $? "Failed to set max_macs param value" param_set test1 false check_err $? "Failed to set test1 param value" check_value max_macs post-set 16 32 check_value test1 post-set false Y devlink dev reload $DL_HANDLE check_value max_macs post-reload 16 16 check_value test1 post-reload false N 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 echo "$BUS_ADDR $PORT_COUNT" > /sys/bus/netdevsim/new_device while [ ! -d $SYSFS_NET_DIR ] ; do :; done } cleanup() { pre_cleanup echo "$BUS_ADDR" > /sys/bus/netdevsim/del_device modprobe -r netdevsim } trap cleanup EXIT setup_prepare tests_run exit $EXIT_STATUS