Blame SOURCES/0006-tests-shell-Search-diff-tool-once-and-for-all.patch

f1d1c0
From 8537751e48dfacee11d48ad3f050bdacc930284c Mon Sep 17 00:00:00 2001
f1d1c0
From: Phil Sutter <psutter@redhat.com>
f1d1c0
Date: Fri, 17 Jan 2020 12:50:23 +0100
f1d1c0
Subject: [PATCH] tests: shell: Search diff tool once and for all
f1d1c0
f1d1c0
Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=1790793
f1d1c0
Upstream Status: nftables commit 68310ba0f9c20
f1d1c0
f1d1c0
commit 68310ba0f9c2066f7463d66a1a1938b66fb8a4c4
f1d1c0
Author: Phil Sutter <phil@nwl.cc>
f1d1c0
Date:   Tue Jan 14 16:50:35 2020 +0100
f1d1c0
f1d1c0
    tests: shell: Search diff tool once and for all
f1d1c0
f1d1c0
    Instead of calling 'which diff' over and over again, just detect the
f1d1c0
    tool's presence in run-tests.sh and pass $DIFF to each testcase just
f1d1c0
    like with nft binary.
f1d1c0
f1d1c0
    Fall back to using 'true' command to avoid the need for any conditional
f1d1c0
    calling in test cases.
f1d1c0
f1d1c0
    While being at it, unify potential diff calls so that a string
f1d1c0
    comparison in shell happens irrespective of diff presence.
f1d1c0
f1d1c0
    Signed-off-by: Phil Sutter <phil@nwl.cc>
f1d1c0
    Acked-by: Pablo Neira Ayuso <pablo@netfilter.org>
f1d1c0
---
f1d1c0
 tests/shell/run-tests.sh                                     |  7 ++++++-
f1d1c0
 tests/shell/testcases/flowtable/0010delete_handle_0          |  3 +--
f1d1c0
 tests/shell/testcases/listing/0003table_0                    |  6 ++----
f1d1c0
 tests/shell/testcases/listing/0004table_0                    |  3 +--
f1d1c0
 tests/shell/testcases/listing/0005ruleset_ip_0               |  3 +--
f1d1c0
 tests/shell/testcases/listing/0006ruleset_ip6_0              |  3 +--
f1d1c0
 tests/shell/testcases/listing/0007ruleset_inet_0             |  3 +--
f1d1c0
 tests/shell/testcases/listing/0008ruleset_arp_0              |  3 +--
f1d1c0
 tests/shell/testcases/listing/0009ruleset_bridge_0           |  3 +--
f1d1c0
 tests/shell/testcases/listing/0010sets_0                     |  3 +--
f1d1c0
 tests/shell/testcases/listing/0011sets_0                     |  3 +--
f1d1c0
 tests/shell/testcases/listing/0012sets_0                     |  3 +--
f1d1c0
 tests/shell/testcases/listing/0013objects_0                  |  3 +--
f1d1c0
 tests/shell/testcases/listing/0014objects_0                  |  6 ++----
f1d1c0
 tests/shell/testcases/listing/0015dynamic_0                  |  3 +--
f1d1c0
 tests/shell/testcases/listing/0017objects_0                  |  3 +--
f1d1c0
 tests/shell/testcases/listing/0018data_0                     |  3 +--
f1d1c0
 tests/shell/testcases/listing/0019set_0                      |  3 +--
f1d1c0
 tests/shell/testcases/listing/0020flowtable_0                |  3 +--
f1d1c0
 tests/shell/testcases/maps/0003map_add_many_elements_0       |  3 +--
f1d1c0
 tests/shell/testcases/maps/0004interval_map_create_once_0    |  3 +--
f1d1c0
 tests/shell/testcases/maps/0008interval_map_delete_0         |  3 +--
f1d1c0
 tests/shell/testcases/netns/0001nft-f_0                      |  3 +--
f1d1c0
 tests/shell/testcases/netns/0002loosecommands_0              |  3 +--
f1d1c0
 tests/shell/testcases/netns/0003many_0                       |  3 +--
f1d1c0
 tests/shell/testcases/nft-f/0016redefines_1                  |  3 +--
f1d1c0
 tests/shell/testcases/optionals/delete_object_handles_0      |  3 +--
f1d1c0
 tests/shell/testcases/optionals/update_object_handles_0      |  3 +--
f1d1c0
 .../shell/testcases/rule_management/0001addinsertposition_0  | 12 ++++--------
f1d1c0
 tests/shell/testcases/sets/0028delete_handle_0               |  3 +--
f1d1c0
 tests/shell/testcases/sets/0036add_set_element_expiration_0  |  5 ++++-
f1d1c0
 tests/shell/testcases/transactions/0003table_0               |  4 +---
f1d1c0
 tests/shell/testcases/transactions/0040set_0                 |  3 +--
f1d1c0
 33 files changed, 46 insertions(+), 75 deletions(-)
f1d1c0
f1d1c0
diff --git a/tests/shell/run-tests.sh b/tests/shell/run-tests.sh
f1d1c0
index 632ccce..29a2c39 100755
f1d1c0
--- a/tests/shell/run-tests.sh
f1d1c0
+++ b/tests/shell/run-tests.sh
f1d1c0
@@ -43,6 +43,11 @@ if [ ! -x "$MODPROBE" ] ; then
f1d1c0
 	msg_error "no modprobe binary found"
f1d1c0
 fi
f1d1c0
 
f1d1c0
+DIFF="$(which diff)"
f1d1c0
+if [ ! -x "$DIFF" ] ; then
f1d1c0
+	DIFF=true
f1d1c0
+fi
f1d1c0
+
f1d1c0
 if [ "$1" == "-v" ] ; then
f1d1c0
 	VERBOSE=y
f1d1c0
 	shift
f1d1c0
@@ -96,7 +101,7 @@ do
f1d1c0
 	kernel_cleanup
f1d1c0
 
f1d1c0
 	msg_info "[EXECUTING]	$testfile"
f1d1c0
-	test_output=$(NFT=$NFT ${testfile} 2>&1)
f1d1c0
+	test_output=$(NFT=$NFT DIFF=$DIFF ${testfile} 2>&1)
f1d1c0
 	rc_got=$?
f1d1c0
 	echo -en "\033[1A\033[K" # clean the [EXECUTING] foobar line
f1d1c0
 
f1d1c0
diff --git a/tests/shell/testcases/flowtable/0010delete_handle_0 b/tests/shell/testcases/flowtable/0010delete_handle_0
f1d1c0
index 985d4a3..8dd8d9f 100755
f1d1c0
--- a/tests/shell/testcases/flowtable/0010delete_handle_0
f1d1c0
+++ b/tests/shell/testcases/flowtable/0010delete_handle_0
f1d1c0
@@ -16,7 +16,6 @@ EXPECTED="table inet t {
f1d1c0
 
f1d1c0
 GET="$($NFT list ruleset)"
f1d1c0
 if [ "$EXPECTED" != "$GET" ] ; then
f1d1c0
-	DIFF="$(which diff)"
f1d1c0
-	[ -x $DIFF ] && $DIFF -u <(echo "$EXPECTED") <(echo "$GET")
f1d1c0
+	$DIFF -u <(echo "$EXPECTED") <(echo "$GET")
f1d1c0
 	exit 1
f1d1c0
 fi
f1d1c0
diff --git a/tests/shell/testcases/listing/0003table_0 b/tests/shell/testcases/listing/0003table_0
f1d1c0
index 1b288e4..5060be0 100755
f1d1c0
--- a/tests/shell/testcases/listing/0003table_0
f1d1c0
+++ b/tests/shell/testcases/listing/0003table_0
f1d1c0
@@ -11,15 +11,13 @@ $NFT add table test
f1d1c0
 
f1d1c0
 GET="$($NFT list table test)"
f1d1c0
 if [ "$EXPECTED" != "$GET" ] ; then
f1d1c0
-	DIFF="$(which diff)"
f1d1c0
-	[ -x $DIFF ] && $DIFF -u <(echo "$EXPECTED") <(echo "$GET")
f1d1c0
+	$DIFF -u <(echo "$EXPECTED") <(echo "$GET")
f1d1c0
 	exit 1
f1d1c0
 fi
f1d1c0
 
f1d1c0
 # also this way
f1d1c0
 GET="$($NFT list table ip test)"
f1d1c0
 if [ "$EXPECTED" != "$GET" ] ; then
f1d1c0
-	DIFF="$(which diff)"
f1d1c0
-	[ -x $DIFF ] && $DIFF -u <(echo "$EXPECTED") <(echo "$GET")
f1d1c0
+	$DIFF -u <(echo "$EXPECTED") <(echo "$GET")
f1d1c0
 	exit 1
f1d1c0
 fi
f1d1c0
diff --git a/tests/shell/testcases/listing/0004table_0 b/tests/shell/testcases/listing/0004table_0
f1d1c0
index 2c7c995..1d69119 100755
f1d1c0
--- a/tests/shell/testcases/listing/0004table_0
f1d1c0
+++ b/tests/shell/testcases/listing/0004table_0
f1d1c0
@@ -12,8 +12,7 @@ $NFT add table test2
f1d1c0
 
f1d1c0
 GET="$($NFT list table test)"
f1d1c0
 if [ "$EXPECTED" != "$GET" ] ; then
f1d1c0
-	DIFF="$(which diff)"
f1d1c0
-	[ -x $DIFF ] && $DIFF -u <(echo "$EXPECTED") <(echo "$GET")
f1d1c0
+	$DIFF -u <(echo "$EXPECTED") <(echo "$GET")
f1d1c0
 	exit 1
f1d1c0
 fi
f1d1c0
 
f1d1c0
diff --git a/tests/shell/testcases/listing/0005ruleset_ip_0 b/tests/shell/testcases/listing/0005ruleset_ip_0
f1d1c0
index c326680..39c0328 100755
f1d1c0
--- a/tests/shell/testcases/listing/0005ruleset_ip_0
f1d1c0
+++ b/tests/shell/testcases/listing/0005ruleset_ip_0
f1d1c0
@@ -15,7 +15,6 @@ $NFT add table bridge test
f1d1c0
 
f1d1c0
 GET="$($NFT list ruleset ip)"
f1d1c0
 if [ "$EXPECTED" != "$GET" ] ; then
f1d1c0
-	DIFF="$(which diff)"
f1d1c0
-	[ -x $DIFF ] && $DIFF -u <(echo "$EXPECTED") <(echo "$GET")
f1d1c0
+	$DIFF -u <(echo "$EXPECTED") <(echo "$GET")
f1d1c0
 	exit 1
f1d1c0
 fi
f1d1c0
diff --git a/tests/shell/testcases/listing/0006ruleset_ip6_0 b/tests/shell/testcases/listing/0006ruleset_ip6_0
f1d1c0
index 093d5a5..1b67f50 100755
f1d1c0
--- a/tests/shell/testcases/listing/0006ruleset_ip6_0
f1d1c0
+++ b/tests/shell/testcases/listing/0006ruleset_ip6_0
f1d1c0
@@ -15,7 +15,6 @@ $NFT add table bridge test
f1d1c0
 
f1d1c0
 GET="$($NFT list ruleset ip6)"
f1d1c0
 if [ "$EXPECTED" != "$GET" ] ; then
f1d1c0
-	DIFF="$(which diff)"
f1d1c0
-	[ -x $DIFF ] && $DIFF -u <(echo "$EXPECTED") <(echo "$GET")
f1d1c0
+	$DIFF -u <(echo "$EXPECTED") <(echo "$GET")
f1d1c0
 	exit 1
f1d1c0
 fi
f1d1c0
diff --git a/tests/shell/testcases/listing/0007ruleset_inet_0 b/tests/shell/testcases/listing/0007ruleset_inet_0
f1d1c0
index b24cc4c..257c7a9 100755
f1d1c0
--- a/tests/shell/testcases/listing/0007ruleset_inet_0
f1d1c0
+++ b/tests/shell/testcases/listing/0007ruleset_inet_0
f1d1c0
@@ -15,7 +15,6 @@ $NFT add table bridge test
f1d1c0
 
f1d1c0
 GET="$($NFT list ruleset inet)"
f1d1c0
 if [ "$EXPECTED" != "$GET" ] ; then
f1d1c0
-	DIFF="$(which diff)"
f1d1c0
-	[ -x $DIFF ] && $DIFF -u <(echo "$EXPECTED") <(echo "$GET")
f1d1c0
+	$DIFF -u <(echo "$EXPECTED") <(echo "$GET")
f1d1c0
 	exit 1
f1d1c0
 fi
f1d1c0
diff --git a/tests/shell/testcases/listing/0008ruleset_arp_0 b/tests/shell/testcases/listing/0008ruleset_arp_0
f1d1c0
index fff0fee..be42c47 100755
f1d1c0
--- a/tests/shell/testcases/listing/0008ruleset_arp_0
f1d1c0
+++ b/tests/shell/testcases/listing/0008ruleset_arp_0
f1d1c0
@@ -15,7 +15,6 @@ $NFT add table bridge test
f1d1c0
 
f1d1c0
 GET="$($NFT list ruleset arp)"
f1d1c0
 if [ "$EXPECTED" != "$GET" ] ; then
f1d1c0
-	DIFF="$(which diff)"
f1d1c0
-	[ -x $DIFF ] && $DIFF -u <(echo "$EXPECTED") <(echo "$GET")
f1d1c0
+	$DIFF -u <(echo "$EXPECTED") <(echo "$GET")
f1d1c0
 	exit 1
f1d1c0
 fi
f1d1c0
diff --git a/tests/shell/testcases/listing/0009ruleset_bridge_0 b/tests/shell/testcases/listing/0009ruleset_bridge_0
f1d1c0
index 247ed47..c6a99f5 100755
f1d1c0
--- a/tests/shell/testcases/listing/0009ruleset_bridge_0
f1d1c0
+++ b/tests/shell/testcases/listing/0009ruleset_bridge_0
f1d1c0
@@ -15,7 +15,6 @@ $NFT add table bridge test
f1d1c0
 
f1d1c0
 GET="$($NFT list ruleset bridge)"
f1d1c0
 if [ "$EXPECTED" != "$GET" ] ; then
f1d1c0
-	DIFF="$(which diff)"
f1d1c0
-	[ -x $DIFF ] && $DIFF -u <(echo "$EXPECTED") <(echo "$GET")
f1d1c0
+	$DIFF -u <(echo "$EXPECTED") <(echo "$GET")
f1d1c0
 	exit 1
f1d1c0
 fi
f1d1c0
diff --git a/tests/shell/testcases/listing/0010sets_0 b/tests/shell/testcases/listing/0010sets_0
f1d1c0
index 855cceb..0f5f2bd 100755
f1d1c0
--- a/tests/shell/testcases/listing/0010sets_0
f1d1c0
+++ b/tests/shell/testcases/listing/0010sets_0
f1d1c0
@@ -57,7 +57,6 @@ $NFT add set inet filter set2 { type icmpv6_type \; }
f1d1c0
 
f1d1c0
 GET="$($NFT list sets)"
f1d1c0
 if [ "$EXPECTED" != "$GET" ] ; then
f1d1c0
-	DIFF="$(which diff)"
f1d1c0
-	[ -x $DIFF ] && $DIFF -u <(echo "$EXPECTED") <(echo "$GET")
f1d1c0
+	$DIFF -u <(echo "$EXPECTED") <(echo "$GET")
f1d1c0
 	exit 1
f1d1c0
 fi
f1d1c0
diff --git a/tests/shell/testcases/listing/0011sets_0 b/tests/shell/testcases/listing/0011sets_0
f1d1c0
index aac9eac..b6f12b5 100755
f1d1c0
--- a/tests/shell/testcases/listing/0011sets_0
f1d1c0
+++ b/tests/shell/testcases/listing/0011sets_0
f1d1c0
@@ -38,7 +38,6 @@ $NFT add rule inet filter test tcp dport {80, 443}
f1d1c0
 GET="$($NFT list sets)"
f1d1c0
 
f1d1c0
 if [ "$EXPECTED" != "$GET" ] ; then
f1d1c0
-	DIFF="$(which diff)"
f1d1c0
-	[ -x $DIFF ] && $DIFF -u <(echo "$EXPECTED") <(echo "$GET")
f1d1c0
+	$DIFF -u <(echo "$EXPECTED") <(echo "$GET")
f1d1c0
 	exit 1
f1d1c0
 fi
f1d1c0
diff --git a/tests/shell/testcases/listing/0012sets_0 b/tests/shell/testcases/listing/0012sets_0
f1d1c0
index da16d94..6e4c959 100755
f1d1c0
--- a/tests/shell/testcases/listing/0012sets_0
f1d1c0
+++ b/tests/shell/testcases/listing/0012sets_0
f1d1c0
@@ -33,7 +33,6 @@ $NFT add set inet filter set2 { type icmpv6_type \; }
f1d1c0
 
f1d1c0
 GET="$($NFT list sets inet)"
f1d1c0
 if [ "$EXPECTED" != "$GET" ] ; then
f1d1c0
-	DIFF="$(which diff)"
f1d1c0
-	[ -x $DIFF ] && $DIFF -u <(echo "$EXPECTED") <(echo "$GET")
f1d1c0
+	$DIFF -u <(echo "$EXPECTED") <(echo "$GET")
f1d1c0
 	exit 1
f1d1c0
 fi
f1d1c0
diff --git a/tests/shell/testcases/listing/0013objects_0 b/tests/shell/testcases/listing/0013objects_0
f1d1c0
index f691579..4d39143 100755
f1d1c0
--- a/tests/shell/testcases/listing/0013objects_0
f1d1c0
+++ b/tests/shell/testcases/listing/0013objects_0
f1d1c0
@@ -42,7 +42,6 @@ $NFT add table test-ip
f1d1c0
 
f1d1c0
 GET="$($NFT list table test)"
f1d1c0
 if [ "$EXPECTED" != "$GET" ] ; then
f1d1c0
-	DIFF="$(which diff)"
f1d1c0
-	[ -x $DIFF ] && $DIFF -u <(echo "$EXPECTED") <(echo "$GET")
f1d1c0
+	$DIFF -u <(echo "$EXPECTED") <(echo "$GET")
f1d1c0
 	exit 1
f1d1c0
 fi
f1d1c0
diff --git a/tests/shell/testcases/listing/0014objects_0 b/tests/shell/testcases/listing/0014objects_0
f1d1c0
index 20f6840..31d94f8 100755
f1d1c0
--- a/tests/shell/testcases/listing/0014objects_0
f1d1c0
+++ b/tests/shell/testcases/listing/0014objects_0
f1d1c0
@@ -17,15 +17,13 @@ $NFT add table test-ip
f1d1c0
 
f1d1c0
 GET="$($NFT list quotas)"
f1d1c0
 if [ "$EXPECTED" != "$GET" ] ; then
f1d1c0
-	DIFF="$(which diff)"
f1d1c0
-	[ -x $DIFF ] && $DIFF -u <(echo "$EXPECTED") <(echo "$GET")
f1d1c0
+	$DIFF -u <(echo "$EXPECTED") <(echo "$GET")
f1d1c0
 	exit 1
f1d1c0
 fi
f1d1c0
 
f1d1c0
 GET="$($NFT list quota test https-quota)"
f1d1c0
 if [ "$EXPECTED" != "$GET" ] ; then
f1d1c0
-	DIFF="$(which diff)"
f1d1c0
-	[ -x $DIFF ] && $DIFF -u <(echo "$EXPECTED") <(echo "$GET")
f1d1c0
+	$DIFF -u <(echo "$EXPECTED") <(echo "$GET")
f1d1c0
 	exit 1
f1d1c0
 fi
f1d1c0
 
f1d1c0
diff --git a/tests/shell/testcases/listing/0015dynamic_0 b/tests/shell/testcases/listing/0015dynamic_0
f1d1c0
index 4ff74e3..65fbe62 100755
f1d1c0
--- a/tests/shell/testcases/listing/0015dynamic_0
f1d1c0
+++ b/tests/shell/testcases/listing/0015dynamic_0
f1d1c0
@@ -16,8 +16,7 @@ $NFT -f - <<< "$EXPECTED"
f1d1c0
 
f1d1c0
 GET="$($NFT list set ip filter test_set)"
f1d1c0
 if [ "$EXPECTED" != "$GET" ] ; then
f1d1c0
-	DIFF="$(which diff)"
f1d1c0
-	[ -x $DIFF ] && $DIFF -u <(echo "$EXPECTED") <(echo "$GET")
f1d1c0
+	$DIFF -u <(echo "$EXPECTED") <(echo "$GET")
f1d1c0
 	exit 1
f1d1c0
 fi
f1d1c0
 
f1d1c0
diff --git a/tests/shell/testcases/listing/0017objects_0 b/tests/shell/testcases/listing/0017objects_0
f1d1c0
index 8a586e8..c4e72db 100755
f1d1c0
--- a/tests/shell/testcases/listing/0017objects_0
f1d1c0
+++ b/tests/shell/testcases/listing/0017objects_0
f1d1c0
@@ -13,7 +13,6 @@ $NFT flush map inet filter countermap
f1d1c0
 
f1d1c0
 GET="$($NFT list map inet filter countermap)"
f1d1c0
 if [ "$EXPECTED" != "$GET" ] ; then
f1d1c0
-	DIFF="$(which diff)"
f1d1c0
-	[ -x $DIFF ] && $DIFF -u <(echo "$EXPECTED") <(echo "$GET")
f1d1c0
+	$DIFF -u <(echo "$EXPECTED") <(echo "$GET")
f1d1c0
 	exit 1
f1d1c0
 fi
f1d1c0
diff --git a/tests/shell/testcases/listing/0018data_0 b/tests/shell/testcases/listing/0018data_0
f1d1c0
index 544b6bf..4af253d 100755
f1d1c0
--- a/tests/shell/testcases/listing/0018data_0
f1d1c0
+++ b/tests/shell/testcases/listing/0018data_0
f1d1c0
@@ -13,7 +13,6 @@ $NFT flush map inet filter ipmap
f1d1c0
 
f1d1c0
 GET="$($NFT list map inet filter ipmap)"
f1d1c0
 if [ "$EXPECTED" != "$GET" ] ; then
f1d1c0
-	DIFF="$(which diff)"
f1d1c0
-	[ -x $DIFF ] && $DIFF -u <(echo "$EXPECTED") <(echo "$GET")
f1d1c0
+	$DIFF -u <(echo "$EXPECTED") <(echo "$GET")
f1d1c0
 	exit 1
f1d1c0
 fi
f1d1c0
diff --git a/tests/shell/testcases/listing/0019set_0 b/tests/shell/testcases/listing/0019set_0
f1d1c0
index 54a8a06..6e8cb4d 100755
f1d1c0
--- a/tests/shell/testcases/listing/0019set_0
f1d1c0
+++ b/tests/shell/testcases/listing/0019set_0
f1d1c0
@@ -13,7 +13,6 @@ $NFT flush set inet filter ipset
f1d1c0
 
f1d1c0
 GET="$($NFT list set inet filter ipset)"
f1d1c0
 if [ "$EXPECTED" != "$GET" ] ; then
f1d1c0
-	DIFF="$(which diff)"
f1d1c0
-	[ -x $DIFF ] && $DIFF -u <(echo "$EXPECTED") <(echo "$GET")
f1d1c0
+	$DIFF -u <(echo "$EXPECTED") <(echo "$GET")
f1d1c0
 	exit 1
f1d1c0
 fi
f1d1c0
diff --git a/tests/shell/testcases/listing/0020flowtable_0 b/tests/shell/testcases/listing/0020flowtable_0
f1d1c0
index 6f630f1..2f0a98d 100755
f1d1c0
--- a/tests/shell/testcases/listing/0020flowtable_0
f1d1c0
+++ b/tests/shell/testcases/listing/0020flowtable_0
f1d1c0
@@ -15,7 +15,6 @@ $NFT -f - <<< "$EXPECTED"
f1d1c0
 
f1d1c0
 GET="$($NFT list flowtable inet filter f)"
f1d1c0
 if [ "$EXPECTED" != "$GET" ] ; then
f1d1c0
-	DIFF="$(which diff)"
f1d1c0
-	[ -x $DIFF ] && $DIFF -u <(echo "$EXPECTED") <(echo "$GET")
f1d1c0
+	$DIFF -u <(echo "$EXPECTED") <(echo "$GET")
f1d1c0
 	exit 1
f1d1c0
 fi
f1d1c0
diff --git a/tests/shell/testcases/maps/0003map_add_many_elements_0 b/tests/shell/testcases/maps/0003map_add_many_elements_0
f1d1c0
index 047f949..2b254c5 100755
f1d1c0
--- a/tests/shell/testcases/maps/0003map_add_many_elements_0
f1d1c0
+++ b/tests/shell/testcases/maps/0003map_add_many_elements_0
f1d1c0
@@ -61,8 +61,7 @@ EXPECTED="table ip x {
f1d1c0
 }"
f1d1c0
 GET=$($NFT list ruleset)
f1d1c0
 if [ "$EXPECTED" != "$GET" ] ; then
f1d1c0
-	DIFF="$(which diff)"
f1d1c0
-	[ -x $DIFF ] && $DIFF -u <(echo "$EXPECTED") <(echo "$GET")
f1d1c0
+	$DIFF -u <(echo "$EXPECTED") <(echo "$GET")
f1d1c0
 	exit 1
f1d1c0
 fi
f1d1c0
 
f1d1c0
diff --git a/tests/shell/testcases/maps/0004interval_map_create_once_0 b/tests/shell/testcases/maps/0004interval_map_create_once_0
f1d1c0
index 58b399c..3de0c9d 100755
f1d1c0
--- a/tests/shell/testcases/maps/0004interval_map_create_once_0
f1d1c0
+++ b/tests/shell/testcases/maps/0004interval_map_create_once_0
f1d1c0
@@ -60,8 +60,7 @@ EXPECTED="table ip x {
f1d1c0
 }"
f1d1c0
 GET=$($NFT list ruleset)
f1d1c0
 if [ "$EXPECTED" != "$GET" ] ; then
f1d1c0
-	DIFF="$(which diff)"
f1d1c0
-	[ -x $DIFF ] && $DIFF -u <(echo "$EXPECTED") <(echo "$GET")
f1d1c0
+	$DIFF -u <(echo "$EXPECTED") <(echo "$GET")
f1d1c0
 	exit 1
f1d1c0
 fi
f1d1c0
 
f1d1c0
diff --git a/tests/shell/testcases/maps/0008interval_map_delete_0 b/tests/shell/testcases/maps/0008interval_map_delete_0
f1d1c0
index 7da6eb3..39ea312 100755
f1d1c0
--- a/tests/shell/testcases/maps/0008interval_map_delete_0
f1d1c0
+++ b/tests/shell/testcases/maps/0008interval_map_delete_0
f1d1c0
@@ -26,7 +26,6 @@ $NFT add element filter m { 127.0.0.2 : 0x2 }
f1d1c0
 
f1d1c0
 GET=$($NFT -s list ruleset)
f1d1c0
 if [ "$EXPECTED" != "$GET" ] ; then
f1d1c0
-	DIFF="$(which diff)"
f1d1c0
-	[ -x $DIFF ] && $DIFF -u <(echo "$EXPECTED") <(echo "$GET")
f1d1c0
+	$DIFF -u <(echo "$EXPECTED") <(echo "$GET")
f1d1c0
 	exit 1
f1d1c0
 fi
f1d1c0
diff --git a/tests/shell/testcases/netns/0001nft-f_0 b/tests/shell/testcases/netns/0001nft-f_0
f1d1c0
index 8194226..a591f2c 100755
f1d1c0
--- a/tests/shell/testcases/netns/0001nft-f_0
f1d1c0
+++ b/tests/shell/testcases/netns/0001nft-f_0
f1d1c0
@@ -93,8 +93,7 @@ fi
f1d1c0
 KERNEL_RULESET="$($IP netns exec $NETNS_NAME $NFT list ruleset)"
f1d1c0
 $IP netns del $NETNS_NAME
f1d1c0
 if [ "$RULESET" != "$KERNEL_RULESET" ] ; then
f1d1c0
-        DIFF="$(which diff)"
f1d1c0
-        [ -x $DIFF ] && $DIFF -u <(echo "$RULESET") <(echo "$KERNEL_RULESET")
f1d1c0
+        $DIFF -u <(echo "$RULESET") <(echo "$KERNEL_RULESET")
f1d1c0
         exit 1
f1d1c0
 fi
f1d1c0
 exit 0
f1d1c0
diff --git a/tests/shell/testcases/netns/0002loosecommands_0 b/tests/shell/testcases/netns/0002loosecommands_0
f1d1c0
index 465c2e8..231f1fb 100755
f1d1c0
--- a/tests/shell/testcases/netns/0002loosecommands_0
f1d1c0
+++ b/tests/shell/testcases/netns/0002loosecommands_0
f1d1c0
@@ -56,7 +56,6 @@ RULESET="table ip t {
f1d1c0
 KERNEL_RULESET="$($IP netns exec $NETNS_NAME $NFT list ruleset)"
f1d1c0
 $IP netns del $NETNS_NAME
f1d1c0
 if [ "$RULESET" != "$KERNEL_RULESET" ] ; then
f1d1c0
-        DIFF="$(which diff)"
f1d1c0
-        [ -x $DIFF ] && $DIFF -u <(echo "$RULESET") <(echo "$KERNEL_RULESET")
f1d1c0
+        $DIFF -u <(echo "$RULESET") <(echo "$KERNEL_RULESET")
f1d1c0
         exit 1
f1d1c0
 fi
f1d1c0
diff --git a/tests/shell/testcases/netns/0003many_0 b/tests/shell/testcases/netns/0003many_0
f1d1c0
index a5fcb5d..afe9117 100755
f1d1c0
--- a/tests/shell/testcases/netns/0003many_0
f1d1c0
+++ b/tests/shell/testcases/netns/0003many_0
f1d1c0
@@ -97,8 +97,7 @@ function test_netns()
f1d1c0
 	KERNEL_RULESET="$($IP netns exec $NETNS_NAME $NFT list ruleset)"
f1d1c0
 	if [ "$RULESET" != "$KERNEL_RULESET" ] ; then
f1d1c0
 		echo "E: ruleset in netns $NETNS_NAME differs from the loaded" >&2
f1d1c0
-	        DIFF="$(which diff)"
f1d1c0
-	        [ -x $DIFF ] && $DIFF -u <(echo "$RULESET") <(echo "$KERNEL_RULESET")
f1d1c0
+	        $DIFF -u <(echo "$RULESET") <(echo "$KERNEL_RULESET")
f1d1c0
 		$IP netns del $NETNS_NAME
f1d1c0
 	        exit 1
f1d1c0
 	fi
f1d1c0
diff --git a/tests/shell/testcases/nft-f/0016redefines_1 b/tests/shell/testcases/nft-f/0016redefines_1
f1d1c0
index 4c26b37..1f59f6b 100755
f1d1c0
--- a/tests/shell/testcases/nft-f/0016redefines_1
f1d1c0
+++ b/tests/shell/testcases/nft-f/0016redefines_1
f1d1c0
@@ -26,8 +26,7 @@ $NFT -f - <<< "$RULESET"
f1d1c0
 GET="$($NFT list ruleset)"
f1d1c0
 
f1d1c0
 if [ "$EXPECTED" != "$GET" ] ; then
f1d1c0
-        DIFF="$(which diff)"
f1d1c0
-        [ -x $DIFF ] && $DIFF -u <(echo "$EXPECTED") <(echo "$GET")
f1d1c0
+        $DIFF -u <(echo "$EXPECTED") <(echo "$GET")
f1d1c0
         exit 1
f1d1c0
 fi
f1d1c0
 
f1d1c0
diff --git a/tests/shell/testcases/optionals/delete_object_handles_0 b/tests/shell/testcases/optionals/delete_object_handles_0
f1d1c0
index a2ae422..9b65e67 100755
f1d1c0
--- a/tests/shell/testcases/optionals/delete_object_handles_0
f1d1c0
+++ b/tests/shell/testcases/optionals/delete_object_handles_0
f1d1c0
@@ -37,7 +37,6 @@ table ip6 test-ip6 {
f1d1c0
 GET="$($NFT list ruleset)"
f1d1c0
 
f1d1c0
 if [ "$EXPECTED" != "$GET" ] ; then
f1d1c0
-	DIFF="$(which diff)"
f1d1c0
-	[ -x $DIFF ] && $DIFF -u <(echo "$EXPECTED") <(echo "$GET")
f1d1c0
+	$DIFF -u <(echo "$EXPECTED") <(echo "$GET")
f1d1c0
 	exit 1
f1d1c0
 fi
f1d1c0
diff --git a/tests/shell/testcases/optionals/update_object_handles_0 b/tests/shell/testcases/optionals/update_object_handles_0
f1d1c0
index 17c0c86..8b12b8c 100755
f1d1c0
--- a/tests/shell/testcases/optionals/update_object_handles_0
f1d1c0
+++ b/tests/shell/testcases/optionals/update_object_handles_0
f1d1c0
@@ -19,7 +19,6 @@ EXPECTED="table ip test-ip {
f1d1c0
 
f1d1c0
 GET="$($NFT list ruleset)"
f1d1c0
 if [ "$EXPECTED" != "$GET" ] ; then
f1d1c0
-	DIFF="$(which diff)"
f1d1c0
-	[ -x $DIFF ] && $DIFF -u <(echo "$EXPECTED") <(echo "$GET")
f1d1c0
+	$DIFF -u <(echo "$EXPECTED") <(echo "$GET")
f1d1c0
 	exit 1
f1d1c0
 fi
f1d1c0
diff --git a/tests/shell/testcases/rule_management/0001addinsertposition_0 b/tests/shell/testcases/rule_management/0001addinsertposition_0
f1d1c0
index bb3fda5..237e9e3 100755
f1d1c0
--- a/tests/shell/testcases/rule_management/0001addinsertposition_0
f1d1c0
+++ b/tests/shell/testcases/rule_management/0001addinsertposition_0
f1d1c0
@@ -30,8 +30,7 @@ for arg in "position 2" "handle 2" "index 0"; do
f1d1c0
 
f1d1c0
 	GET="$($NFT list ruleset)"
f1d1c0
 	if [ "$EXPECTED" != "$GET" ] ; then
f1d1c0
-		DIFF="$(which diff)"
f1d1c0
-		[ -x $DIFF ] && $DIFF -u <(echo "$EXPECTED") <(echo "$GET")
f1d1c0
+		$DIFF -u <(echo "$EXPECTED") <(echo "$GET")
f1d1c0
 		exit 1
f1d1c0
 	fi
f1d1c0
 done
f1d1c0
@@ -42,8 +41,7 @@ for arg in "position 3" "handle 3" "index 1"; do
f1d1c0
 
f1d1c0
 	GET="$($NFT list ruleset)"
f1d1c0
 	if [ "$EXPECTED" != "$GET" ] ; then
f1d1c0
-		DIFF="$(which diff)"
f1d1c0
-		[ -x $DIFF ] && $DIFF -u <(echo "$EXPECTED") <(echo "$GET")
f1d1c0
+		$DIFF -u <(echo "$EXPECTED") <(echo "$GET")
f1d1c0
 		exit 1
f1d1c0
 	fi
f1d1c0
 done
f1d1c0
@@ -62,8 +60,7 @@ for arg in "position 3" "handle 3" "index 1"; do
f1d1c0
 
f1d1c0
 	GET="$($NFT list ruleset)"
f1d1c0
 	if [ "$EXPECTED" != "$GET" ] ; then
f1d1c0
-		DIFF="$(which diff)"
f1d1c0
-		[ -x $DIFF ] && $DIFF -u <(echo "$EXPECTED") <(echo "$GET")
f1d1c0
+		$DIFF -u <(echo "$EXPECTED") <(echo "$GET")
f1d1c0
 		exit 1
f1d1c0
 	fi
f1d1c0
 done
f1d1c0
@@ -82,8 +79,7 @@ for arg in "position 2" "handle 2" "index 0"; do
f1d1c0
 
f1d1c0
 	GET="$($NFT list ruleset)"
f1d1c0
 	if [ "$EXPECTED" != "$GET" ] ; then
f1d1c0
-		DIFF="$(which diff)"
f1d1c0
-		[ -x $DIFF ] && $DIFF -u <(echo "$EXPECTED") <(echo "$GET")
f1d1c0
+		$DIFF -u <(echo "$EXPECTED") <(echo "$GET")
f1d1c0
 		exit 1
f1d1c0
 	fi
f1d1c0
 done
f1d1c0
diff --git a/tests/shell/testcases/sets/0028delete_handle_0 b/tests/shell/testcases/sets/0028delete_handle_0
f1d1c0
index 5ad17c2..c6d1253 100755
f1d1c0
--- a/tests/shell/testcases/sets/0028delete_handle_0
f1d1c0
+++ b/tests/shell/testcases/sets/0028delete_handle_0
f1d1c0
@@ -29,7 +29,6 @@ EXPECTED="table ip test-ip {
f1d1c0
 GET="$($NFT list ruleset)"
f1d1c0
 
f1d1c0
 if [ "$EXPECTED" != "$GET" ] ; then
f1d1c0
-	DIFF="$(which diff)"
f1d1c0
-	[ -x $DIFF ] && $DIFF -u <(echo "$EXPECTED") <(echo "$GET")
f1d1c0
+	$DIFF -u <(echo "$EXPECTED") <(echo "$GET")
f1d1c0
 	exit 1
f1d1c0
 fi
f1d1c0
diff --git a/tests/shell/testcases/sets/0036add_set_element_expiration_0 b/tests/shell/testcases/sets/0036add_set_element_expiration_0
f1d1c0
index 8dfed6c..51ed0f2 100755
f1d1c0
--- a/tests/shell/testcases/sets/0036add_set_element_expiration_0
f1d1c0
+++ b/tests/shell/testcases/sets/0036add_set_element_expiration_0
f1d1c0
@@ -8,6 +8,9 @@ add element ip x y { 1.1.1.1 timeout 30s expires 15s }"
f1d1c0
 
f1d1c0
 test_output=$($NFT -e -f - <<< "$RULESET" 2>&1)
f1d1c0
 
f1d1c0
-diff -u <(echo "$test_output") <(echo "$RULESET")
f1d1c0
+if [ "$test_output" != "$RULESET" ] ; then
f1d1c0
+	$DIFF -u <(echo "$test_output") <(echo "$RULESET")
f1d1c0
+	exit 1
f1d1c0
+fi
f1d1c0
 
f1d1c0
 $NFT "add chain ip x c; add rule ip x c ip saddr @y"
f1d1c0
diff --git a/tests/shell/testcases/transactions/0003table_0 b/tests/shell/testcases/transactions/0003table_0
f1d1c0
index 6861eab..91186de 100755
f1d1c0
--- a/tests/shell/testcases/transactions/0003table_0
f1d1c0
+++ b/tests/shell/testcases/transactions/0003table_0
f1d1c0
@@ -14,7 +14,6 @@ fi
f1d1c0
 
f1d1c0
 KERNEL_RULESET="$($NFT list ruleset)"
f1d1c0
 if [ "" != "$KERNEL_RULESET" ] ; then
f1d1c0
-	DIFF="$(which diff)"
f1d1c0
 	echo "Got a ruleset, but expected empty: "
f1d1c0
 	echo "$KERNEL_RULESET"
f1d1c0
 	exit 1
f1d1c0
@@ -42,7 +41,6 @@ $NFT -f - <<< "$RULESETFAIL" && exit 2
f1d1c0
 
f1d1c0
 KERNEL_RULESET="$($NFT list ruleset)"
f1d1c0
 if [ "$RULESET" != "$KERNEL_RULESET" ] ; then
f1d1c0
-        DIFF="$(which diff)"
f1d1c0
-        [ -x $DIFF ] && $DIFF -u <(echo "$RULESET") <(echo "$KERNEL_RULESET")
f1d1c0
+        $DIFF -u <(echo "$RULESET") <(echo "$KERNEL_RULESET")
f1d1c0
         exit 1
f1d1c0
 fi
f1d1c0
diff --git a/tests/shell/testcases/transactions/0040set_0 b/tests/shell/testcases/transactions/0040set_0
f1d1c0
index a404abc..468816b 100755
f1d1c0
--- a/tests/shell/testcases/transactions/0040set_0
f1d1c0
+++ b/tests/shell/testcases/transactions/0040set_0
f1d1c0
@@ -29,8 +29,7 @@ fi
f1d1c0
 GET="$($NFT list ruleset)"
f1d1c0
 
f1d1c0
 if [ "$RULESET" != "$GET" ] ; then
f1d1c0
-	DIFF="$(which diff)"
f1d1c0
-	[ -x $DIFF ] && $DIFF -u <(echo "$RULESET") <(echo "$GET")
f1d1c0
+	$DIFF -u <(echo "$RULESET") <(echo "$GET")
f1d1c0
 	exit 1
f1d1c0
 fi
f1d1c0
 
f1d1c0
-- 
f1d1c0
1.8.3.1
f1d1c0