[Accel-config] [PATCH v1 2/2] accel-config/test: Decide whether to do the operation or not

Rex Zhang <[email protected]> Wed, 23 Aug 2023 11:22:47 +0800
Newsgroups dev.linux.lists.accel-config
Message-ID <[email protected]>
Several operations were removed in IAA2.0 specification. In idxd-config,
keep the related code about removed operations, define op mask for
comparing against the /sys/bus/dsa/devices/iax1/op_cap to check if an
operation is available or not. Whether to do the operation or not
depends on the checking result.

This commit is for deciding whether to do the operation or not depends
on the check result.

Signed-off-by: Rex Zhang <[email protected]>
---
 test/iaa_user_test_runner.sh | 408 ++++++++++++++++++++---------------
 1 file changed, 238 insertions(+), 170 deletions(-)

diff --git a/test/iaa_user_test_runner.sh b/test/iaa_user_test_runner.sh
index 2887fad..e3a6663 100755
--- a/test/iaa_user_test_runner.sh
+++ b/test/iaa_user_test_runner.sh
@@ -75,8 +75,6 @@ if [ "$pasid_en" -ne 1 ]; then
 	exit "$EXIT_SKIP"
 fi
 
-IDXD_VERSION=$(cat /sys/bus/dsa/devices/$IAA/version)
-
 start_iaa()
 {
 	configurable=$(cat /sys/bus/dsa/devices/$IAA/configurable)
@@ -169,122 +167,136 @@ test_op_filter()
 	for wq_mode_code in 0 1; do
 		wq_mode_name=$(wq_mode2name "$wq_mode_code")
 
-		./iaa_test -w "$wq_mode_code" -f "$flag" -l 512 -2 0x7c -3 128 \
-			-o 0x50 -t 5000 -v
-		./iaa_test -w "$wq_mode_code" -f "$flag" -l 1024 -2 0x7c -3 256 \
-			-o 0x50 -t 5000 -v
-		./iaa_test -w "$wq_mode_code" -f "$flag" -l 4096 -2 0x7c -3 1024 \
-			-o 0x50 -t 5000 -v
-		./iaa_test -w "$wq_mode_code" -f "$flag" -l 65536 -2 0x7c -3 16384 \
-			-o 0x50 -t 5000 -v
-		./iaa_test -w "$wq_mode_code" -f "$flag" -l 1048576 -2 0x7c -3 262144 \
-			-o 0x50 -t 5000 -v
-		./iaa_test -w "$wq_mode_code" -f "$flag" -l 2097152 -2 0x7c -3 524288 \
-			-o 0x50 -t 5000 -v
-
-		./iaa_test -w "$wq_mode_code" -f "$flag" -l 512 -2 0x38 -3 256 \
-			-o 0x51 -t 5000 -v
-		./iaa_test -w "$wq_mode_code" -f "$flag" -l 1024 -2 0x38 -3 512 \
-			-o 0x51 -t 5000 -v
-		./iaa_test -w "$wq_mode_code" -f "$flag" -l 4096 -2 0x38 -3 2048 \
-			-o 0x51 -t 5000 -v
-		./iaa_test -w "$wq_mode_code" -f "$flag" -l 65536 -2 0x38 -3 32768 \
-			-o 0x51 -t 5000 -v
-		./iaa_test -w "$wq_mode_code" -f "$flag" -l 1048576 -2 0x38 -3 524288 \
-			-o 0x51 -t 5000 -v
-		./iaa_test -w "$wq_mode_code" -f "$flag" -l 2097152 -2 0x38 -3 1048576 \
-			-o 0x51 -t 5000 -v
-
-		./iaa_test -w "$wq_mode_code" -f "$flag" -l 512 -2 0x7c -3 128 \
-			-o 0x52 -t 5000 -v
-		./iaa_test -w "$wq_mode_code" -f "$flag" -l 1024 -2 0x7c -3 256 \
-			-o 0x52 -t 5000 -v
-		./iaa_test -w "$wq_mode_code" -f "$flag" -l 4096 -2 0x7c -3 1024 \
-			-o 0x52 -t 5000 -v
-		./iaa_test -w "$wq_mode_code" -f "$flag" -l 65536 -2 0x7c -3 16384 \
-			-o 0x52 -t 5000 -v
-		./iaa_test -w "$wq_mode_code" -f "$flag" -l 1048576 -2 0x7c -3 262144 \
-			-o 0x52 -t 5000 -v
-		./iaa_test -w "$wq_mode_code" -f "$flag" -l 2097152 -2 0x7c -3 524288 \
-			-o 0x52 -t 5000 -v
-
-		./iaa_test -w "$wq_mode_code" -f "$flag" -l 512 -2 0x7c -3 128 \
-			-o 0x53 -t 5000 -v
-		./iaa_test -w "$wq_mode_code" -f "$flag" -l 1024 -2 0x7c -3 256 \
-			-o 0x53 -t 5000 -v
-		./iaa_test -w "$wq_mode_code" -f "$flag" -l 4096 -2 0x7c -3 1024 \
-			-o 0x53 -t 5000 -v
-		./iaa_test -w "$wq_mode_code" -f "$flag" -l 65536 -2 0x7c -3 16384 \
-			-o 0x53 -t 5000 -v
-		./iaa_test -w "$wq_mode_code" -f "$flag" -l 1048576 -2 0x7c -3 262144 \
-			-o 0x53 -t 5000 -v
-		./iaa_test -w "$wq_mode_code" -f "$flag" -l 2097152 -2 0x7c -3 524288 \
-			-o 0x53 -t 5000 -v
-
-		./iaa_test -w "$wq_mode_code" -f "$flag" -l 512 -2 0x1c -3 512 \
-			-o 0x54 -t 5000 -v
-		./iaa_test -w "$wq_mode_code" -f "$flag" -l 1024 -2 0x1c -3 1024 \
-			-o 0x54 -t 5000 -v
-		./iaa_test -w "$wq_mode_code" -f "$flag" -l 4096 -2 0x1c -3 4096 \
-			-o 0x54 -t 5000 -v
-		./iaa_test -w "$wq_mode_code" -f "$flag" -l 32768 -2 0x1c -3 32768 \
-			-o 0x54 -t 5000 -v
-		./iaa_test -w "$wq_mode_code" -f "$flag" -l 65536 -2 0x1c -3 65536 \
-			-o 0x54 -t 5000 -v
-		./iaa_test -w "$wq_mode_code" -f "$flag" -l 131072 -2 0x1c -3 131072 \
-			-o 0x54 -t 5000 -v
-
-		./iaa_test -w "$wq_mode_code" -f "$flag" -l 32 -2 0x3c -3 16 \
-			-o 0x54 -t 5000 -v
-		./iaa_test -w "$wq_mode_code" -f "$flag" -l 64 -2 0x3c -3 32 \
-			-o 0x54 -t 5000 -v
-		./iaa_test -w "$wq_mode_code" -f "$flag" -l 128 -2 0x3c -3 64 \
-			-o 0x54 -t 5000 -v
-		./iaa_test -w "$wq_mode_code" -f "$flag" -l 256 -2 0x3c -3 128 \
-			-o 0x54 -t 5000 -v
-		./iaa_test -w "$wq_mode_code" -f "$flag" -l 512 -2 0x3c -3 256 \
-			-o 0x54 -t 5000 -v
-		./iaa_test -w "$wq_mode_code" -f "$flag" -l 1024 -2 0x3c -3 512 \
-			-o 0x54 -t 5000 -v
-
-		./iaa_test -w "$wq_mode_code" -f "$flag" -l 64 -2 0x7c -3 16 \
-			-o 0x54 -t 5000 -v
-		./iaa_test -w "$wq_mode_code" -f "$flag" -l 128 -2 0x7c -3 32 \
-			-o 0x54 -t 5000 -v
-		./iaa_test -w "$wq_mode_code" -f "$flag" -l 256 -2 0x7c -3 64 \
-			-o 0x54 -t 5000 -v
-		./iaa_test -w "$wq_mode_code" -f "$flag" -l 512 -2 0x7c -3 128 \
-			-o 0x54 -t 5000 -v
-		./iaa_test -w "$wq_mode_code" -f "$flag" -l 1024 -2 0x7c -3 256 \
-			-o 0x54 -t 5000 -v
-		./iaa_test -w "$wq_mode_code" -f "$flag" -l 2048 -2 0x7c -3 512 \
-			-o 0x54 -t 5000 -v
-
-		./iaa_test -w "$wq_mode_code" -f "$flag" -l 512 -2 0x38 -3 256 \
-			-o 0x55 -t 5000 -v
-		./iaa_test -w "$wq_mode_code" -f "$flag" -l 1024 -2 0x38 -3 512 \
-			-o 0x55 -t 5000 -v
-		./iaa_test -w "$wq_mode_code" -f "$flag" -l 4096 -2 0x38 -3 2048 \
-			-o 0x55 -t 5000 -v
-		./iaa_test -w "$wq_mode_code" -f "$flag" -l 65536 -2 0x38 -3 32768 \
-			-o 0x55 -t 5000 -v
-		./iaa_test -w "$wq_mode_code" -f "$flag" -l 1048576 -2 0x38 -3 524288 \
-			-o 0x55 -t 5000 -v
-		./iaa_test -w "$wq_mode_code" -f "$flag" -l 2097152 -2 0x38 -3 1048576 \
-			-o 0x55 -t 5000 -v
-
-		./iaa_test -w "$wq_mode_code" -f "$flag" -l 512 -2 0x7c -3 128 \
-			-o 0x56 -t 5000 -v
-		./iaa_test -w "$wq_mode_code" -f "$flag" -l 1024 -2 0x7c -3 256 \
-			-o 0x56 -t 5000 -v
-		./iaa_test -w "$wq_mode_code" -f "$flag" -l 4096 -2 0x7c -3 1024 \
-			-o 0x56 -t 5000 -v
-		./iaa_test -w "$wq_mode_code" -f "$flag" -l 65536 -2 0x7c -3 16384 \
-			-o 0x56 -t 5000 -v
-		./iaa_test -w "$wq_mode_code" -f "$flag" -l 1048576 -2 0x7c -3 262144 \
-			-o 0x56 -t 5000 -v
-		./iaa_test -w "$wq_mode_code" -f "$flag" -l 2097152 -2 0x7c -3 524288 \
-			-o 0x56 -t 5000 -v
+		if [ $((IAA_OPCODE_MASK_SCAN & OP_CAP2)) -ne 0 ]; then
+			"$IAATEST" -w "$wq_mode_code" -f "$flag" -l 512 -2 0x7c \
+				-3 128 -o $IAA_OPCODE_SCAN -t 5000 -v
+			"$IAATEST" -w "$wq_mode_code" -f "$flag" -l 1024 -2 0x7c \
+				-3 256 -o $IAA_OPCODE_SCAN -t 5000 -v
+			"$IAATEST" -w "$wq_mode_code" -f "$flag" -l 4096 -2 0x7c \
+				-3 1024 -o $IAA_OPCODE_SCAN -t 5000 -v
+			"$IAATEST" -w "$wq_mode_code" -f "$flag" -l 65536 -2 0x7c \
+				-3 16384 -o $IAA_OPCODE_SCAN -t 5000 -v
+			"$IAATEST" -w "$wq_mode_code" -f "$flag" -l 1048576 -2 0x7c \
+				-3 262144 -o $IAA_OPCODE_SCAN -t 5000 -v
+			"$IAATEST" -w "$wq_mode_code" -f "$flag" -l 2097152 -2 0x7c \
+				-3 524288 -o $IAA_OPCODE_SCAN -t 5000 -v
+		fi
+
+		if [ $((IAA_OPCODE_MASK_SET_MEMBERSHIP & OP_CAP2)) -ne 0 ]; then
+			"$IAATEST" -w "$wq_mode_code" -f "$flag" -l 512 -2 0x38 \
+				-3 256 -o $IAA_OPCODE_SET_MEMBERSHIP -t 5000 -v
+			"$IAATEST" -w "$wq_mode_code" -f "$flag" -l 1024 -2 0x38 \
+				-3 512 -o $IAA_OPCODE_SET_MEMBERSHIP -t 5000 -v
+			"$IAATEST" -w "$wq_mode_code" -f "$flag" -l 4096 -2 0x38 \
+				-3 2048 -o $IAA_OPCODE_SET_MEMBERSHIP -t 5000 -v
+			"$IAATEST" -w "$wq_mode_code" -f "$flag" -l 65536 -2 0x38 \
+				-3 32768 -o $IAA_OPCODE_SET_MEMBERSHIP -t 5000 -v
+			"$IAATEST" -w "$wq_mode_code" -f "$flag" -l 1048576 -2 0x38 \
+				-3 524288 -o $IAA_OPCODE_SET_MEMBERSHIP -t 5000 -v
+			"$IAATEST" -w "$wq_mode_code" -f "$flag" -l 2097152 -2 0x38 \
+				-3 1048576 -o $IAA_OPCODE_SET_MEMBERSHIP -t 5000 -v
+		fi
+
+		if [ $((IAA_OPCODE_MASK_EXTRACT & OP_CAP2)) -ne 0 ]; then
+			"$IAATEST" -w "$wq_mode_code" -f "$flag" -l 512 -2 0x7c \
+				-3 128 -o $IAA_OPCODE_EXTRACT -t 5000 -v
+			"$IAATEST" -w "$wq_mode_code" -f "$flag" -l 1024 -2 0x7c \
+				-3 256 -o $IAA_OPCODE_EXTRACT -t 5000 -v
+			"$IAATEST" -w "$wq_mode_code" -f "$flag" -l 4096 -2 0x7c \
+				-3 1024 -o $IAA_OPCODE_EXTRACT -t 5000 -v
+			"$IAATEST" -w "$wq_mode_code" -f "$flag" -l 65536 -2 0x7c \
+				-3 16384 -o $IAA_OPCODE_EXTRACT -t 5000 -v
+			"$IAATEST" -w "$wq_mode_code" -f "$flag" -l 1048576 -2 0x7c \
+				-3 262144 -o $IAA_OPCODE_EXTRACT -t 5000 -v
+			"$IAATEST" -w "$wq_mode_code" -f "$flag" -l 2097152 -2 0x7c \
+				-3 524288 -o $IAA_OPCODE_EXTRACT -t 5000 -v
+		fi
+
+		if [ $((IAA_OPCODE_MASK_SELECT & OP_CAP2)) -ne 0 ]; then
+			"$IAATEST" -w "$wq_mode_code" -f "$flag" -l 512 -2 0x7c \
+				-3 128 -o $IAA_OPCODE_SELECT -t 5000 -v
+			"$IAATEST" -w "$wq_mode_code" -f "$flag" -l 1024 -2 0x7c \
+				-3 256 -o $IAA_OPCODE_SELECT -t 5000 -v
+			"$IAATEST" -w "$wq_mode_code" -f "$flag" -l 4096 -2 0x7c \
+				-3 1024 -o $IAA_OPCODE_SELECT -t 5000 -v
+			"$IAATEST" -w "$wq_mode_code" -f "$flag" -l 65536 -2 0x7c \
+				-3 16384 -o $IAA_OPCODE_SELECT -t 5000 -v
+			"$IAATEST" -w "$wq_mode_code" -f "$flag" -l 1048576 -2 0x7c \
+				-3 262144 -o $IAA_OPCODE_SELECT -t 5000 -v
+			"$IAATEST" -w "$wq_mode_code" -f "$flag" -l 2097152 -2 0x7c \
+				-3 524288 -o $IAA_OPCODE_SELECT -t 5000 -v
+		fi
+
+		if [ $((IAA_OPCODE_MASK_RLE_BURST & OP_CAP2)) -ne 0 ]; then
+			"$IAATEST" -w "$wq_mode_code" -f "$flag" -l 512 -2 0x1c \
+				-3 512 -o $IAA_OPCODE_RLE_BURST -t 5000 -v
+			"$IAATEST" -w "$wq_mode_code" -f "$flag" -l 1024 -2 0x1c \
+				-3 1024 -o $IAA_OPCODE_RLE_BURST -t 5000 -v
+			"$IAATEST" -w "$wq_mode_code" -f "$flag" -l 4096 -2 0x1c \
+				-3 4096 -o $IAA_OPCODE_RLE_BURST -t 5000 -v
+			"$IAATEST" -w "$wq_mode_code" -f "$flag" -l 32768 -2 0x1c \
+				-3 32768 -o $IAA_OPCODE_RLE_BURST -t 5000 -v
+			"$IAATEST" -w "$wq_mode_code" -f "$flag" -l 65536 -2 0x1c \
+				-3 65536 -o $IAA_OPCODE_RLE_BURST -t 5000 -v
+			"$IAATEST" -w "$wq_mode_code" -f "$flag" -l 131072 -2 0x1c \
+				-3 131072 -o $IAA_OPCODE_RLE_BURST -t 5000 -v
+
+			"$IAATEST" -w "$wq_mode_code" -f "$flag" -l 32 -2 0x3c \
+				-3 16 -o $IAA_OPCODE_RLE_BURST -t 5000 -v
+			"$IAATEST" -w "$wq_mode_code" -f "$flag" -l 64 -2 0x3c \
+				-3 32 -o $IAA_OPCODE_RLE_BURST -t 5000 -v
+			"$IAATEST" -w "$wq_mode_code" -f "$flag" -l 128 -2 0x3c \
+				-3 64 -o $IAA_OPCODE_RLE_BURST -t 5000 -v
+			"$IAATEST" -w "$wq_mode_code" -f "$flag" -l 256 -2 0x3c \
+				-3 128 -o $IAA_OPCODE_RLE_BURST -t 5000 -v
+			"$IAATEST" -w "$wq_mode_code" -f "$flag" -l 512 -2 0x3c \
+				-3 256 -o $IAA_OPCODE_RLE_BURST -t 5000 -v
+			"$IAATEST" -w "$wq_mode_code" -f "$flag" -l 1024 -2 0x3c \
+				-3 512 -o $IAA_OPCODE_RLE_BURST -t 5000 -v
+
+			"$IAATEST" -w "$wq_mode_code" -f "$flag" -l 64 -2 0x7c \
+				-3 16 -o $IAA_OPCODE_RLE_BURST -t 5000 -v
+			"$IAATEST" -w "$wq_mode_code" -f "$flag" -l 128 -2 0x7c \
+				-3 32 -o $IAA_OPCODE_RLE_BURST -t 5000 -v
+			"$IAATEST" -w "$wq_mode_code" -f "$flag" -l 256 -2 0x7c \
+				-3 64 -o $IAA_OPCODE_RLE_BURST -t 5000 -v
+			"$IAATEST" -w "$wq_mode_code" -f "$flag" -l 512 -2 0x7c \
+				-3 128 -o $IAA_OPCODE_RLE_BURST -t 5000 -v
+			"$IAATEST" -w "$wq_mode_code" -f "$flag" -l 1024 -2 0x7c \
+				-3 256 -o $IAA_OPCODE_RLE_BURST -t 5000 -v
+			"$IAATEST" -w "$wq_mode_code" -f "$flag" -l 2048 -2 0x7c \
+				-3 512 -o $IAA_OPCODE_RLE_BURST -t 5000 -v
+		fi
+
+		if [ $((IAA_OPCODE_MASK_FIND_UNIQUE & OP_CAP2)) -ne 0 ]; then
+			"$IAATEST" -w "$wq_mode_code" -f "$flag" -l 512 -2 0x38 \
+				-3 256 -o $IAA_OPCODE_FIND_UNIQUE -t 5000 -v
+			"$IAATEST" -w "$wq_mode_code" -f "$flag" -l 1024 -2 0x38 \
+				-3 512 -o $IAA_OPCODE_FIND_UNIQUE -t 5000 -v
+			"$IAATEST" -w "$wq_mode_code" -f "$flag" -l 4096 -2 0x38 \
+				-3 2048 -o $IAA_OPCODE_FIND_UNIQUE -t 5000 -v
+			"$IAATEST" -w "$wq_mode_code" -f "$flag" -l 65536 -2 0x38 \
+				-3 32768 -o $IAA_OPCODE_FIND_UNIQUE -t 5000 -v
+			"$IAATEST" -w "$wq_mode_code" -f "$flag" -l 1048576 -2 0x38 \
+				-3 524288 -o $IAA_OPCODE_FIND_UNIQUE -t 5000 -v
+			"$IAATEST" -w "$wq_mode_code" -f "$flag" -l 2097152 -2 0x38 \
+				-3 1048576 -o $IAA_OPCODE_FIND_UNIQUE -t 5000 -v
+		fi
+
+		if [ $((IAA_OPCODE_MASK_EXPAND & OP_CAP2)) -ne 0 ]; then
+			"$IAATEST" -w "$wq_mode_code" -f "$flag" -l 512 -2 0x7c \
+				-3 128 -o $IAA_OPCODE_EXPAND -t 5000 -v
+			"$IAATEST" -w "$wq_mode_code" -f "$flag" -l 1024 -2 0x7c \
+				-3 256 -o $IAA_OPCODE_EXPAND -t 5000 -v
+			"$IAATEST" -w "$wq_mode_code" -f "$flag" -l 4096 -2 0x7c \
+				-3 1024 -o $IAA_OPCODE_EXPAND -t 5000 -v
+			"$IAATEST" -w "$wq_mode_code" -f "$flag" -l 65536 -2 0x7c \
+				-3 16384 -o $IAA_OPCODE_EXPAND -t 5000 -v
+			"$IAATEST" -w "$wq_mode_code" -f "$flag" -l 1048576 -2 0x7c \
+				-3 262144 -o $IAA_OPCODE_EXPAND -t 5000 -v
+			"$IAATEST" -w "$wq_mode_code" -f "$flag" -l 2097152 -2 0x7c \
+				-3 524288 -o $IAA_OPCODE_EXPAND -t 5000 -v
+		fi
 	done
 }
 
@@ -339,58 +351,108 @@ enable_wqs
 # shellcheck disable=SC2034
 rc="$EXIT_FAILURE"
 
-flag="0x1"
-echo "Testing with 'block on fault' flag ON"
-for opcode in "0x0"; do
-	test_op $opcode $flag
-done
+if [ $((IAA_OPCODE_MASK_NOOP & OP_CAP0)) -ne 0 ]; then
+	flag="0x1"
+	echo "Testing with 'block on fault' flag ON"
+	test_op $IAA_OPCODE_NOOP $flag
 
-flag="0x0"
-echo "Testing with 'block on fault' flag OFF"
-for opcode in "0x0"; do
-	test_op $opcode $flag
-done
+	flag="0x0"
+	echo "Testing with 'block on fault' flag OFF"
+	test_op $IAA_OPCODE_NOOP $flag
+fi
 
-flag="0x1"
-extra_flag="0x8000"
-echo "Testing with 'block on fault' flag ON"
-for opcode in "0x44"; do
-	test_op $opcode $flag $extra_flag
-done
+if [ $((IAA_OPCODE_MASK_CRC64 & OP_CAP2)) -ne 0 ]; then
+	flag="0x1"
+	extra_flag="0x8000"
+	echo "Testing with 'block on fault' flag ON"
+	test_op $IAA_OPCODE_CRC64 $flag $extra_flag
 
-flag="0x0"
-extra_flag="0x4000"
-echo "Testing with 'block on fault' flag OFF"
-for opcode in "0x44"; do
-	test_op $opcode $flag $extra_flag
-done
+	flag="0x0"
+	extra_flag="0x4000"
+	echo "Testing with 'block on fault' flag OFF"
+	test_op $IAA_OPCODE_CRC64 $flag $extra_flag
+fi
 
 unset SIZE_1
 
-flag="0x1"
-echo "Testing with 'block on fault' flag ON"
-for opcode in "0x4d" "0x49" "0x4c" "0x48" "0x43" "0x42"; do
-	test_op $opcode $flag
-done
+if [ $((IAA_OPCODE_MASK_ZCOMPRESS16 & OP_CAP2)) -ne 0 ]; then
+	flag="0x1"
+	echo "Testing with 'block on fault' flag ON"
+	test_op $IAA_OPCODE_ZCOMPRESS16 $flag
 
-flag="0x0"
-echo "Testing with 'block on fault' flag OFF"
-for opcode in "0x4d" "0x49" "0x4c" "0x48" "0x43" "0x42"; do
-	test_op $opcode $flag
-done
+	flag="0x0"
+	echo "Testing with 'block on fault' flag OFF"
+	test_op $IAA_OPCODE_ZCOMPRESS16 $flag
+fi
 
-if [ "$IDXD_VERSION" != "0x100" ]; then
+if [ $((IAA_OPCODE_MASK_ZDECOMPRESS16 & OP_CAP2)) -ne 0 ]; then
 	flag="0x1"
 	echo "Testing with 'block on fault' flag ON"
-	for opcode in "0x4e" "0x4a"; do
-		test_op $opcode $flag
-	done
+	test_op $IAA_OPCODE_ZDECOMPRESS16 $flag
 
 	flag="0x0"
 	echo "Testing with 'block on fault' flag OFF"
-	for opcode in "0x4e" "0x4a"; do
-		test_op $opcode $flag
-	done
+	test_op $IAA_OPCODE_ZDECOMPRESS16 $flag
+fi
+
+if [ $((IAA_OPCODE_MASK_ZCOMPRESS32 & OP_CAP2)) -ne 0 ]; then
+	flag="0x1"
+	echo "Testing with 'block on fault' flag ON"
+	test_op $IAA_OPCODE_ZCOMPRESS32 $flag
+
+	flag="0x0"
+	echo "Testing with 'block on fault' flag OFF"
+	test_op $IAA_OPCODE_ZCOMPRESS32 $flag
+fi
+
+if [ $((IAA_OPCODE_MASK_ZDECOMPRESS32 & OP_CAP2)) -ne 0 ]; then
+	flag="0x1"
+	echo "Testing with 'block on fault' flag ON"
+	test_op $IAA_OPCODE_ZDECOMPRESS32 $flag
+
+	flag="0x0"
+	echo "Testing with 'block on fault' flag OFF"
+	test_op $IAA_OPCODE_ZDECOMPRESS32 $flag
+fi
+
+if [ $((IAA_OPCODE_MASK_COMPRESS & OP_CAP2)) -ne 0 ]; then
+	flag="0x1"
+	echo "Testing with 'block on fault' flag ON"
+	test_op $IAA_OPCODE_COMPRESS $flag
+
+	flag="0x0"
+	echo "Testing with 'block on fault' flag OFF"
+	test_op $IAA_OPCODE_COMPRESS $flag
+fi
+
+if [ $((IAA_OPCODE_MASK_DECOMPRESS & OP_CAP2)) -ne 0 ]; then
+	flag="0x1"
+	echo "Testing with 'block on fault' flag ON"
+	test_op $IAA_OPCODE_DECOMPRESS $flag
+
+	flag="0x0"
+	echo "Testing with 'block on fault' flag OFF"
+	test_op $IAA_OPCODE_DECOMPRESS $flag
+fi
+
+if [ $((IAA_OPCODE_MASK_ZCOMPRESS8 & OP_CAP2)) -ne 0 ]; then
+	flag="0x1"
+	echo "Testing with 'block on fault' flag ON"
+	test_op $IAA_OPCODE_ZCOMPRESS8 $flag
+
+	flag="0x0"
+	echo "Testing with 'block on fault' flag OFF"
+	test_op $IAA_OPCODE_ZCOMPRESS8 $flag
+fi
+
+if [ $((IAA_OPCODE_MASK_ZDECOMPRESS8 & OP_CAP2)) -ne 0 ]; then
+	flag="0x1"
+	echo "Testing with 'block on fault' flag ON"
+	test_op $IAA_OPCODE_ZDECOMPRESS8 $flag
+
+	flag="0x0"
+	echo "Testing with 'block on fault' flag OFF"
+	test_op $IAA_OPCODE_ZDECOMPRESS8 $flag
 fi
 
 flag="0x1"
@@ -399,34 +461,40 @@ test_op_filter $flag
 flag="0x0"
 test_op_filter $flag
 
-if [ "$IDXD_VERSION" != "0x100" ]; then
+if [ $((IAA_OPCODE_MASK_ENCRYPT & OP_CAP2)) -ne 0 ]; then
 	flag="0x1"
 	aecs_flag="0x0101"
 	echo "Testing with 'block on fault' flag ON"
-	for opcode in "0x41" "0x40"; do
-		test_op_crypto $opcode $flag $aecs_flag
-	done
+	test_op_crypto $IAA_OPCODE_ENCRYPT $flag $aecs_flag
 
 	flag="0x0"
 	aecs_flag="0x0301"
 	echo "Testing with 'block on fault' flag OFF"
-	for opcode in "0x41" "0x40"; do
-		test_op_crypto $opcode $flag $aecs_flag
-	done
+	test_op_crypto $IAA_OPCODE_ENCRYPT $flag $aecs_flag
+fi
+
+if [ $((IAA_OPCODE_MASK_DECRYPT & OP_CAP2)) -ne 0 ]; then
+	flag="0x1"
+	aecs_flag="0x0101"
+	echo "Testing with 'block on fault' flag ON"
+	test_op_crypto $IAA_OPCODE_DECRYPT $flag $aecs_flag
+
+	flag="0x0"
+	aecs_flag="0x0301"
+	echo "Testing with 'block on fault' flag OFF"
+	test_op_crypto $IAA_OPCODE_DECRYPT $flag $aecs_flag
+fi
 
+if [ $((IAA_OPCODE_MASK_TRANSL_FETCH & OP_CAP0)) -ne 0 ]; then
 	bind_vfio
 
 	flag="0x1"
 	echo "Testing with 'block on fault' flag ON"
-	for opcode in "0x0a"; do
-		test_op_transl_fetch $opcode $flag
-	done
+	test_op_transl_fetch $IAA_OPCODE_TRANSL_FETCH $flag
 
 	flag="0x0"
 	echo "Testing with 'block on fault' flag OFF"
-	for opcode in "0x0a"; do
-		test_op_transl_fetch $opcode $flag
-	done
+	test_op_transl_fetch $IAA_OPCODE_TRANSL_FETCH $flag
 
 	unbind_vfio
 fi
-- 
2.25.1