brintos

brintos / linux-shallow public Read only

0
0
Text · 2.3 KiB · 6f2683c Raw
121 lines · bash
1#!/bin/bash2# SPDX-License-Identifier: GPL-2.03 4lib_dir=$(dirname $0)/../../../../net/forwarding5 6NUM_NETIFS=17source $lib_dir/lib.sh8source devlink_lib_spectrum.sh9 10setup_prepare()11{12	devlink_sp_read_kvd_defaults13}14 15cleanup()16{17	pre_cleanup18	devlink_sp_size_kvd_to_default19}20 21trap cleanup EXIT22 23setup_prepare24 25profiles_test()26{27	local i28 29	log_info "Running profile tests"30 31	for i in $KVD_PROFILES; do32		RET=033		devlink_sp_resource_kvd_profile_set $i34		log_test "'$i' profile"35	done36 37	# Default is explicitly tested at end to ensure it's actually applied38	RET=039	devlink_sp_resource_kvd_profile_set "default"40	log_test "'default' profile"41}42 43resources_min_test()44{45	local size46	local i47	local j48 49	log_info "Running KVD-minimum tests"50 51	for i in $KVD_CHILDREN; do52		RET=053		size=$(devlink_resource_get kvd "$i" | jq '.["size_min"]')54		devlink_resource_size_set "$size" kvd "$i"55 56		# In case of linear, need to minimize sub-resources as well57		if [[ "$i" == "linear" ]]; then58			for j in $KVDL_CHILDREN; do59				devlink_resource_size_set 0 kvd linear "$j"60			done61		fi62 63		devlink_reload64		devlink_sp_size_kvd_to_default65		log_test "'$i' minimize [$size]"66	done67}68 69resources_max_test()70{71	local min_size72	local size73	local i74	local j75 76	log_info "Running KVD-maximum tests"77	for i in $KVD_CHILDREN; do78		RET=079		devlink_sp_resource_minimize80 81		# Calculate the maximum possible size for the given partition82		size=$(devlink_resource_size_get kvd)83		for j in $KVD_CHILDREN; do84			if [ "$i" != "$j" ]; then85				min_size=$(devlink_resource_get kvd "$j" | \86					   jq '.["size_min"]')87				size=$((size - min_size))88			fi89		done90 91		# Test almost maximum size92		devlink_resource_size_set "$((size - 128))" kvd "$i"93		devlink_reload94		log_test "'$i' almost maximize [$((size - 128))]"95 96		# Test above maximum size97		devlink resource set "$DEVLINK_DEV" \98			path "kvd/$i" size $((size + 128)) &> /dev/null99		check_fail $? "Set kvd/$i to size $((size + 128)) should fail"100		log_test "'$i' Overflow rejection [$((size + 128))]"101 102		# Test maximum size103		if [ "$i" == "hash_single" ] || [ "$i" == "hash_double" ]; then104			echo "SKIP: Observed problem with exact max $i"105			continue106		fi107 108		devlink_resource_size_set "$size" kvd "$i"109		devlink_reload110		log_test "'$i' maximize [$size]"111 112		devlink_sp_size_kvd_to_default113	done114}115 116profiles_test117resources_min_test118resources_max_test119 120exit "$RET"121