Commit 3128b9f5 authored by Petr Machata's avatar Petr Machata Committed by David S. Miller
Browse files

selftests: mlxsw: resource_scale: Introduce traffic tests



The scale tests are currently testing two things: that some number of
instances of a given resource can actually be created; and that when an
attempt is made to create more than the supported amount, the failures are
noted and handled gracefully.

However the ability to allocate the resource does not mean that the
resource actually works when passing traffic. For that, make it possible
for a given scale to also test traffic.

Traffic test is only run on the positive leg of the scale test (no point
trying to pass traffic when the expected outcome is that the resource will
not be allocated). Traffic tests are opt-in, if a given test does not
expose it, it is not run.

To this end, delay the test cleanup until after the traffic test is run.

Signed-off-by: default avatarPetr Machata <petrm@nvidia.com>
Reviewed-by: default avatarAmit Cohen <amcohen@nvidia.com>
Signed-off-by: default avatarIdo Schimmel <idosch@nvidia.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent d3ffeb2d
Loading
Loading
Loading
Loading
+10 −2
Original line number Diff line number Diff line
@@ -42,13 +42,21 @@ for current_test in ${TESTS:-$ALL_TESTS}; do
		# following the test setup.
		target=$(${current_test}_get_target "$should_fail")
		${current_test}_test "$target" "$should_fail"
		${current_test}_cleanup
		devlink_reload
		if [[ "$should_fail" -eq 0 ]]; then
			log_test "'$current_test' $target"

			if ((!RET)); then
				tt=${current_test}_traffic_test
				if [[ $(type -t $tt) == "function" ]]; then
					$tt "$target"
					log_test "'$current_test' $target traffic test"
				fi
			fi
		else
			log_test "'$current_test' overflow $target"
		fi
		${current_test}_cleanup
		devlink_reload
		RET_FIN=$(( RET_FIN || RET ))
	done
done
+10 −1
Original line number Diff line number Diff line
@@ -47,12 +47,21 @@ for current_test in ${TESTS:-$ALL_TESTS}; do
			# changed following the test setup.
			target=$(${current_test}_get_target "$should_fail")
			${current_test}_test "$target" "$should_fail"
			${current_test}_cleanup
			if [[ "$should_fail" -eq 0 ]]; then
				log_test "'$current_test' [$profile] $target"

				if ((!RET)); then
					tt=${current_test}_traffic_test
					if [[ $(type -t $tt) == "function" ]]
					then
						$tt "$target"
						log_test "'$current_test' [$profile] $target traffic test"
					fi
				fi
			else
				log_test "'$current_test' [$profile] overflow $target"
			fi
			${current_test}_cleanup
			RET_FIN=$(( RET_FIN || RET ))
		done
	done