From: Phil Sutter <phil@nwl.cc>
To: netfilter-devel@vger.kernel.org
Cc: "Fernando F . Mancera" <ffmancera@riseup.net>
Subject: [nft PATCH] tests: shell: Review test-cases for destroy command
Date: Tue, 1 Aug 2023 13:42:36 +0200 [thread overview]
Message-ID: <20230801114236.27235-1-phil@nwl.cc> (raw)
Having separate files for successful destroy of existing and
non-existing objects is a bit too much, just combine them into one.
While being at it:
* Check that deleted objects are actually gone
* No bashisms, using /bin/sh is fine
* Append '-e' to shebang itself instead of calling 'set'
* Use 'nft -a -e' instead of assuming the created rule's handle value
* Shellcheck warned about curly braces, quote them
Signed-off-by: Phil Sutter <phil@nwl.cc>
---
tests/shell/testcases/chains/0044chain_destroy_0 | 12 ++++++++----
tests/shell/testcases/chains/0045chain_destroy_0 | 8 --------
tests/shell/testcases/flowtable/0015destroy_0 | 10 +++++++---
tests/shell/testcases/flowtable/0016destroy_0 | 6 ------
tests/shell/testcases/maps/0014destroy_0 | 11 +++++++----
tests/shell/testcases/maps/0015destroy_0 | 7 -------
tests/shell/testcases/rule_management/0012destroy_0 | 10 ++++++++--
tests/shell/testcases/rule_management/0013destroy_0 | 8 --------
tests/shell/testcases/sets/0072destroy_0 | 11 +++++++----
tests/shell/testcases/sets/0073destroy_0 | 7 -------
10 files changed, 37 insertions(+), 53 deletions(-)
delete mode 100755 tests/shell/testcases/chains/0045chain_destroy_0
delete mode 100755 tests/shell/testcases/flowtable/0016destroy_0
delete mode 100755 tests/shell/testcases/maps/0015destroy_0
delete mode 100755 tests/shell/testcases/rule_management/0013destroy_0
delete mode 100755 tests/shell/testcases/sets/0073destroy_0
diff --git a/tests/shell/testcases/chains/0044chain_destroy_0 b/tests/shell/testcases/chains/0044chain_destroy_0
index 070021cf12f24..fbc1044474b12 100755
--- a/tests/shell/testcases/chains/0044chain_destroy_0
+++ b/tests/shell/testcases/chains/0044chain_destroy_0
@@ -1,7 +1,11 @@
-#!/bin/bash
-
-set -e
+#!/bin/sh -e
$NFT add table t
-$NFT destroy chain t nochain
+# pass for non-existent chain
+$NFT destroy chain t c
+
+# successfully delete existing chain
+$NFT add chain t c
+$NFT destroy chain t c
+! $NFT list chain t c 2>/dev/null
diff --git a/tests/shell/testcases/chains/0045chain_destroy_0 b/tests/shell/testcases/chains/0045chain_destroy_0
deleted file mode 100755
index b356f8f885ca4..0000000000000
--- a/tests/shell/testcases/chains/0045chain_destroy_0
+++ /dev/null
@@ -1,8 +0,0 @@
-#!/bin/bash
-
-set -e
-
-$NFT add table t
-$NFT add chain t c
-
-$NFT destroy chain t c
diff --git a/tests/shell/testcases/flowtable/0015destroy_0 b/tests/shell/testcases/flowtable/0015destroy_0
index 4828d8187018c..01af84869a3e0 100755
--- a/tests/shell/testcases/flowtable/0015destroy_0
+++ b/tests/shell/testcases/flowtable/0015destroy_0
@@ -1,7 +1,11 @@
-#!/bin/bash
+#!/bin/sh -e
-set -e
$NFT add table t
-$NFT add flowtable t f { hook ingress priority 10 \; devices = { lo }\; }
+# pass for non-existent flowtable
$NFT destroy flowtable t f
+
+# successfully delete existing flowtable
+$NFT add flowtable t f '{ hook ingress priority 10; devices = { lo }; }'
+$NFT destroy flowtable t f
+! $NFT list flowtable t f 2>/dev/null
diff --git a/tests/shell/testcases/flowtable/0016destroy_0 b/tests/shell/testcases/flowtable/0016destroy_0
deleted file mode 100755
index ce23c753365af..0000000000000
--- a/tests/shell/testcases/flowtable/0016destroy_0
+++ /dev/null
@@ -1,6 +0,0 @@
-#!/bin/bash
-
-set -e
-$NFT add table t
-
-$NFT destroy flowtable t f
diff --git a/tests/shell/testcases/maps/0014destroy_0 b/tests/shell/testcases/maps/0014destroy_0
index b769276d52599..6e639a11e2ac2 100755
--- a/tests/shell/testcases/maps/0014destroy_0
+++ b/tests/shell/testcases/maps/0014destroy_0
@@ -1,8 +1,11 @@
-#!/bin/bash
-
-set -e
+#!/bin/sh -e
$NFT add table x
-$NFT add map x y { type ipv4_addr : ipv4_addr\; }
+# pass for non-existent map
+$NFT destroy map x y
+
+# successfully delete existing map
+$NFT add map x y '{ type ipv4_addr : ipv4_addr; }'
$NFT destroy map x y
+! $NFT list map x y 2>/dev/null
diff --git a/tests/shell/testcases/maps/0015destroy_0 b/tests/shell/testcases/maps/0015destroy_0
deleted file mode 100755
index abad4d57e7221..0000000000000
--- a/tests/shell/testcases/maps/0015destroy_0
+++ /dev/null
@@ -1,7 +0,0 @@
-#!/bin/bash
-
-set -e
-
-$NFT add table x
-
-$NFT destroy map x nonmap
diff --git a/tests/shell/testcases/rule_management/0012destroy_0 b/tests/shell/testcases/rule_management/0012destroy_0
index 1b61155e9b7ef..57c4da99c285c 100755
--- a/tests/shell/testcases/rule_management/0012destroy_0
+++ b/tests/shell/testcases/rule_management/0012destroy_0
@@ -1,7 +1,13 @@
-#!/bin/bash
+#!/bin/sh -e
-set -e
$NFT add table t
$NFT add chain t c
+# pass for non-existent rule
$NFT destroy rule t c handle 3333
+
+# successfully delete existing rule
+handle=$($NFT -a -e insert rule t c accept | \
+ sed -n 's/.*handle \([0-9]*\)$/\1/p')
+$NFT destroy rule t c handle "$handle"
+! $NFT list chain t c | grep -q accept
diff --git a/tests/shell/testcases/rule_management/0013destroy_0 b/tests/shell/testcases/rule_management/0013destroy_0
deleted file mode 100755
index 895c24a4dacba..0000000000000
--- a/tests/shell/testcases/rule_management/0013destroy_0
+++ /dev/null
@@ -1,8 +0,0 @@
-#!/bin/bash
-
-set -e
-$NFT add table t
-$NFT add chain t c
-$NFT insert rule t c accept # should have handle 2
-
-$NFT destroy rule t c handle 2
diff --git a/tests/shell/testcases/sets/0072destroy_0 b/tests/shell/testcases/sets/0072destroy_0
index c9cf9ff716349..80d24b4760099 100755
--- a/tests/shell/testcases/sets/0072destroy_0
+++ b/tests/shell/testcases/sets/0072destroy_0
@@ -1,8 +1,11 @@
-#!/bin/bash
-
-set -e
+#!/bin/sh -e
$NFT add table x
-$NFT add set x s {type ipv4_addr\; size 2\;}
+# pass for non-existent set
+$NFT destroy set x s
+
+# successfully delete existing set
+$NFT add set x s '{type ipv4_addr; size 2;}'
$NFT destroy set x s
+! $NFT list set x s 2>/dev/null
diff --git a/tests/shell/testcases/sets/0073destroy_0 b/tests/shell/testcases/sets/0073destroy_0
deleted file mode 100755
index a9d65a5541c53..0000000000000
--- a/tests/shell/testcases/sets/0073destroy_0
+++ /dev/null
@@ -1,7 +0,0 @@
-#!/bin/bash
-
-set -e
-
-$NFT add table x
-
-$NFT destroy set x s
--
2.40.0
next reply other threads:[~2023-08-01 11:42 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-08-01 11:42 Phil Sutter [this message]
2023-08-02 22:45 ` [nft PATCH] tests: shell: Review test-cases for destroy command Fernando F. Mancera
2023-08-03 10:09 ` Phil Sutter
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20230801114236.27235-1-phil@nwl.cc \
--to=phil@nwl.cc \
--cc=ffmancera@riseup.net \
--cc=netfilter-devel@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).