Skip to contentSkip to conversation

tests: files: Remove test files.

PATCH Superseded Varsha Rao 2 participants 18 messages Oct 29, 2017 – Nov 6, 2017

Subsystems (2)

v1 of 2 Superseded Latest is v2 →

lore
Share & tools
lore

Varsha Rao

author
#0 lore raw

cover tests: files: Remove test files.

This patch removes tests from tests/files and add tests to tests/shell which are not present in it.

Varsha Rao (16):
tests: files: Remove tests for ipv4
tests: files: Remove tests for ipv6
tests: shell: Add test for log statement.
tests: files: Remove log statement tests.
tests: shell: Add test for log flags.
tests: shell: Add tests for payload expression.
tests: files: Remove payload expression tests.
tests: files: Remove test for syntactical errors.
tests: shell: Add test for ct expression.
tests: files: Remove test for ct expression.
tests: files: Remove prefix file.
tests: files: Test for meta expressions.
tests: files: Remove test for meta expression.
tests: shell: Add tests for concat expression.
tests: files: Remove tests for concat expression.
tests: shell: Add test case for map expression.

 tests/files/error.1                              |  9 -----
 tests/files/error.2                              | 18 ----------
 tests/files/expr-concat                          | 19 ----------
 tests/files/expr-ct                              | 26 --------------
 tests/files/expr-meta                            | 40 ---------------------
 tests/files/family-ipv4                          | 14 --------
 tests/files/family-ipv6                          | 13 -------
 tests/files/feat-adjancent-load-merging          | 13 -------
 tests/files/prefix                               |  5 ---
 tests/files/stmt-log                             |  6 ----
 tests/shell/testcases/maps/different_map_types_1 | 10 ++++++
 tests/shell/testcases/optionals/log_0            | 22 ++++++++++++
 tests/shell/testcases/optionals/log_flags_0      | 29 ++++++++++++++++
 tests/shell/testcases/transactions/0024rule_0    | 44 ++++++++++++++++++++++++
 tests/shell/testcases/transactions/0025rule_0    | 36 +++++++++++++++++++
 tests/shell/testcases/transactions/0026rule_0    | 44 ++++++++++++++++++++++++
 tests/shell/testcases/transactions/0050concat_1  | 26 ++++++++++++++
 17 files changed, 211 insertions(+), 163 deletions(-)
 delete mode 100644 tests/files/error.1
 delete mode 100644 tests/files/error.2
 delete mode 100644 tests/files/expr-concat
 delete mode 100644 tests/files/expr-ct
 delete mode 100644 tests/files/expr-meta
 delete mode 100644 tests/files/family-ipv4
 delete mode 100644 tests/files/family-ipv6
 delete mode 100644 tests/files/feat-adjancent-load-merging
 delete mode 100644 tests/files/prefix
 delete mode 100644 tests/files/stmt-log
 create mode 100755 tests/shell/testcases/maps/different_map_types_1
 create mode 100755 tests/shell/testcases/optionals/log_0
 create mode 100755 tests/shell/testcases/optionals/log_flags_0
 create mode 100755 tests/shell/testcases/transactions/0024rule_0
 create mode 100755 tests/shell/testcases/transactions/0025rule_0
 create mode 100755 tests/shell/testcases/transactions/0026rule_0
 create mode 100755 tests/shell/testcases/transactions/0050concat_1
Signature · 1 line
2.13.6
author
#1 lore raw

PATCH 1/16 tests: files: Remove tests for ipv4

This patch removes test cases for ipv4 family. As they are already present in tests/shell file.

---
 tests/files/family-ipv4 | 14 --------------
 1 file changed, 14 deletions(-)
 delete mode 100644 tests/files/family-ipv4
tests/files/family-ipv4 deleted +0 -14
deleted file mode 100644
index 0700e16..0000000
@@ -1,14 +0,0 @@
-#! nft -f
-
-flush chain ip filter output
-delete chain ip filter output
-delete table filter
-
-add table ip filter
-add chain ip filter output { type filter hook input priority 0; }
-
-# IP address
-add rule ip filter output ip daddr 192.168.0.1 counter
-
-# TCP ports
-add rule ip filter output tcp dport 22 counter
Signature · 1 line
2.13.6
author
#2 lore raw

PATCH 2/16 tests: files: Remove tests for ipv6

This patch removes test cases for ipv6 family. As they are already present in tests/shell file.

---
 tests/files/family-ipv6 | 13 -------------
 1 file changed, 13 deletions(-)
 delete mode 100644 tests/files/family-ipv6
tests/files/family-ipv6 deleted +0 -13
deleted file mode 100644
index cfc740c..0000000
@@ -1,13 +0,0 @@
-#! nft -f
-
-add table ip6 filter
-add chain ip6 filter output { type filter hook output priority 0 ; }
-
-# IP address
-add rule ip6 filter output ip6 daddr 2001:6f8:974::1 counter
-
-# Next protocol
-add rule ip6 filter output ip6 nexthdr tcp
-
-# TCP ports
-add rule ip6 filter output tcp dport 22 counter
Signature · 1 line
2.13.6
author
#3 lore raw

PATCH 3/16 tests: shell: Add test for log statement.

In reply to Varsha Rao

Add test case for log statement.

---
 tests/shell/testcases/optionals/log_0 | 22 ++++++++++++++++++++++
 1 file changed, 22 insertions(+)
 create mode 100755 tests/shell/testcases/optionals/log_0
tests/shell/testcases/optionals/log_0 new file +22 -0
new file mode 100755
index 0000000..672cff7
@@ -0,0 +1,22 @@
+#!/bin/bash
+
+set -e
+
+EXPECTED="table ip x {
+	chain y {
+		type filter hook output priority 0; policy accept;
+		tcp dport ssh log group 0 counter packets 0 bytes 0
+	}
+}"
+
+$NFT add table ip x
+$NFT add chain ip x y { type filter hook output priority 0\; }
+$NFT add rule ip x y tcp dport 22 log group 0 counter
+
+GET="$($NFT list ruleset)"
+
+if [ "$EXPECTED" != "$GET" ] ; then
+        DIFF="$(which diff)"
+        [ -x $DIFF ] && $DIFF -u <(echo "$EXPECTED") <(echo "$GET")
+        exit 1
+fi
Signature · 1 line
2.13.6
author
#4 lore raw

PATCH 4/16 tests: files: Remove log statement tests.

In reply to Varsha Rao

New test case for log statement has been added to tests/shell file, so remove it.

---
 tests/files/stmt-log | 6 ------
 1 file changed, 6 deletions(-)
 delete mode 100644 tests/files/stmt-log
tests/files/stmt-log deleted +0 -6
deleted file mode 100644
index 2ae7aae..0000000
@@ -1,6 +0,0 @@
-#! nft -f
-
-add table ip filter
-add chain ip filter output { type filter hook output priority 0; }
-
-add rule ip filter output log saddr "prefix" group 0 counter
Signature · 1 line
2.13.6
author
#5 lore raw

PATCH 5/16 tests: shell: Add test for log flags.

In reply to Varsha Rao

This patch adds test cases for log flags.

---
 tests/shell/testcases/optionals/log_flags_0 | 29 +++++++++++++++++++++++++++++
 1 file changed, 29 insertions(+)
 create mode 100755 tests/shell/testcases/optionals/log_flags_0
tests/shell/testcases/optionals/log_flags_0 new file +29 -0
new file mode 100755
index 0000000..7b8550f
@@ -0,0 +1,29 @@
+#!/bin/bash
+
+set -e
+
+EXPECTED="table ip x {
+	chain y {
+		log flags tcp sequence,options
+		log flags ip options
+		log flags skuid
+		log flags ether
+		log flags all
+	}
+}"
+
+$NFT add table ip x
+$NFT add chain ip x y
+$NFT add rule x y log flags tcp sequence,options
+$NFT add rule x y log flags ip options
+$NFT add rule x y log flags skuid
+$NFT add rule x y log flags ether
+$NFT add rule x y log flags all
+
+GET="$($NFT list ruleset)"
+
+if [ "$EXPECTED" != "$GET" ] ; then
+        DIFF="$(which diff)"
+        [ -x $DIFF ] && $DIFF -u <(echo "$EXPECTED") <(echo "$GET")
+        exit 1
+fi
Signature · 1 line
2.13.6
author
#6 lore raw

PATCH 6/16 tests: shell: Add tests for payload expression.

In reply to Varsha Rao

This patch adds test case for adjacent payload expression.

---
 tests/shell/testcases/transactions/0024rule_0 | 44 +++++++++++++++++++++++++++
 1 file changed, 44 insertions(+)
 create mode 100755 tests/shell/testcases/transactions/0024rule_0
tests/shell/testcases/transactions/0024rule_0 new file +44 -0
new file mode 100755
index 0000000..7644ce8
@@ -0,0 +1,44 @@
+#!/bin/bash
+
+# Tests for adjacent payload expressions.
+
+set -e
+
+tmpfile=$(mktemp)
+if [ ! -w $tmpfile ] ; then
+        echo "Failed to create tmp file" >&2
+        exit 0
+fi
+
+trap "rm -rf $tmpfile" EXIT # cleanup if aborted
+
+RULESET="add table x
+add chain x y
+add rule x y tcp sport 1024 tcp dport 22 counter
+add rule x y ip saddr 192.168.0.1 ip daddr 192.168.0.100 counter
+add rule x y tcp sequence 0 tcp sport 1024 tcp dport 22
+add rule x y tcp sport 1024 tcp dport 22 tcp sequence 0"
+
+echo "$RULESET" > $tmpfile
+$NFT -f $tmpfile
+if [ $? -ne 0 ] ; then
+        echo "E: unable to load good ruleset" >&2
+        exit 1
+fi
+
+EXPECTED="table ip x {
+	chain y {
+		tcp sport 1024 tcp dport ssh counter packets 0 bytes 0
+		ip saddr 192.168.0.1 ip daddr 192.168.0.100 counter packets 0 bytes 0
+		tcp sport 1024 tcp dport ssh tcp sequence 0
+		tcp sport 1024 tcp dport ssh tcp sequence 0
+	}
+}"
+
+GET="$($NFT list ruleset)"
+
+if [ "$EXPECTED" != "$GET" ] ; then
+	DIFF="$(which diff)"
+	[ -x $DIFF ] && $DIFF -u <(echo "$EXPECTED") <(echo "$GET")
+	exit 1
+fi
Signature · 1 line
2.13.6
author
#7 lore raw

PATCH 7/16 tests: files: Remove payload expression tests.

In reply to Varsha Rao

Remove test for payload expression as new test has been added to tests/shell.

---
 tests/files/feat-adjancent-load-merging | 13 -------------
 1 file changed, 13 deletions(-)
 delete mode 100644 tests/files/feat-adjancent-load-merging
tests/files/feat-adjancent-load-merging deleted +0 -13
deleted file mode 100644
index 1177174..0000000
@@ -1,13 +0,0 @@
-#! nft -f
-
-# adjacent payload expressions: 4 bytes in order
-add rule filter output tcp sport 1024 tcp dport 22 counter
-
-# adjacent payload expressions: 8 bytes in order
-add rule filter output ip saddr 192.168.0.1 ip daddr 192.168.0.100 counter
-
-# adjacent payload expressions: 8 bytes in order
-add rule filter output tcp sequence 0 tcp sport 1024 tcp dport 22
-
-# adjacent payload expressions: 8 bytes in reverse order
-add rule filter output tcp sport 1024 tcp dport 22 tcp sequence 0
Signature · 1 line
2.13.6
author
#8 lore raw

PATCH 8/16 tests: files: Remove test for syntactical errors.

In reply to Varsha Rao

This patch removes test for syntax error as they are not required.

---
 tests/files/error.1 |  9 ---------
 tests/files/error.2 | 18 ------------------
 2 files changed, 27 deletions(-)
 delete mode 100644 tests/files/error.1
 delete mode 100644 tests/files/error.2
tests/files/error.1 deleted +0 -9
deleted file mode 100644
index bc3bf16..0000000
@@ -1,9 +0,0 @@
-#! nft -f
-
-# mixed syntactical and non-syntactical errors
-filter {
-filter input
-filter input tcp
-filter input tcp dport
-filter input tcp dport tcp
-filter input tcp dport tcp dport
tests/files/error.2 deleted +0 -18
deleted file mode 100644
index 744a63d..0000000
@@ -1,18 +0,0 @@
-#! nft -f
-
-# mixed syntactical and non-syntactical errors in blocks
-table filter {
-	# missing identifier
-	chain
-
-	# missing chain block
-	chain output
-
-	chain output {
-		tcp
-		tcp dport
-		tcp dport tcp
-		tcp dport tcp dport
-		tcp dport ssh
-	}
-}
Signature · 1 line
2.13.6
author
#9 lore raw

PATCH 9/16 tests: shell: Add test for ct expression.

In reply to Varsha Rao

This patch adds test cases for ct expression.

---
 tests/shell/testcases/transactions/0025rule_0 | 36 +++++++++++++++++++++++++++
 1 file changed, 36 insertions(+)
 create mode 100755 tests/shell/testcases/transactions/0025rule_0
tests/shell/testcases/transactions/0025rule_0 new file +36 -0
new file mode 100755
index 0000000..b8df747
@@ -0,0 +1,36 @@
+#!/bin/bash
+
+# Test for ct statements.
+
+set -e
+
+$NFT add table x
+$NFT add chain x y { type filter hook output priority 0\; }
+$NFT add rule x y ct state new,established
+$NFT add rule x y ct direction original
+$NFT add rule x y ct direction reply
+$NFT add rule x y ct status expected
+$NFT add rule x y ct mark 0
+$NFT add rule x y ct expiration 30
+$NFT add rule x y ct helper "ftp"
+
+EXPECTED="table ip x {
+	chain y {
+		type filter hook output priority 0; policy accept;
+		ct state established,new
+		ct direction original
+		ct direction reply
+		ct status expected
+		ct mark 0x00000000
+		ct expiration 30s
+		ct helper \"ftp\"
+	}
+}"
+
+GET="$($NFT list ruleset)"
+
+if [ "$EXPECTED" != "$GET" ] ; then
+        DIFF="$(which diff)"
+        [ -x $DIFF ] && $DIFF -u <(echo "$EXPECTED") <(echo "$GET")
+        exit 1
+fi
Signature · 1 line
2.13.6
author
#10 lore raw

PATCH 10/16 tests: files: Remove test for ct expression.

In reply to Varsha Rao

This patch removes test cases for ct expression.

---
 tests/files/expr-ct | 26 --------------------------
 1 file changed, 26 deletions(-)
 delete mode 100644 tests/files/expr-ct
tests/files/expr-ct deleted +0 -26
deleted file mode 100644
index 1dfc7ac..0000000
@@ -1,26 +0,0 @@
-#! nft -f
-
-add table ip filter
-add chain ip filter output { type filter hook output priority 0 ; }
-
-# ct: state
-add rule ip filter output ct state new,established counter
-
-# ct: direction original/reply
-add rule ip filter output ct direction original counter
-add rule ip filter output ct direction reply counter
-
-# ct: status
-add rule ip filter output ct status expected counter
-
-# ct: mark
-add rule ip filter output ct mark 0 counter
-
-# ct: secmark
-add rule ip filter output ct secmark 0 counter
-
-# ct: expiration
-add rule ip filter output ct expiration 30 counter
-
-# ct: helper ftp
-add rule ip filter output ct helper "ftp" counter
Signature · 1 line
2.13.6
author
#11 lore raw

PATCH 11/16 tests: files: Remove prefix file.

In reply to Varsha Rao

Test rules in prefix file are not required, so remove it.

---
 tests/files/prefix | 5 -----
 1 file changed, 5 deletions(-)
 delete mode 100644 tests/files/prefix
tests/files/prefix deleted +0 -5
deleted file mode 100644
index bada850..0000000
@@ -1,5 +0,0 @@
-add rule filter OUTPUT meta mark 123/0x000000ff
-add rule filter OUTPUT ip daddr 192.168.0.0/24
-add rule filter OUTPUT ip daddr 192.168.0.0/255.255.255.0
-add rule filter OUTPUT ip saddr . ip daddr 192.168.0.0/24 . 192.168.0.0/24
-add rule filter OUTPUT ip daddr { 192.168.0.0/24, 192.168.1.0/24}
Signature · 1 line
2.13.6
author
#12 lore raw

PATCH 12/16 tests: files: Test for meta expressions.

In reply to Varsha Rao

This patch adds test case for meta expressions.

---
 tests/shell/testcases/transactions/0026rule_0 | 44 +++++++++++++++++++++++++++
 1 file changed, 44 insertions(+)
 create mode 100755 tests/shell/testcases/transactions/0026rule_0
tests/shell/testcases/transactions/0026rule_0 new file +44 -0
new file mode 100755
index 0000000..4111ce9
@@ -0,0 +1,44 @@
+#!/bin/bash
+
+# Test for meta expressions.
+
+set -e
+
+$NFT add table x
+$NFT add chain x y { type filter hook output priority 0\; }
+$NFT add rule x y meta length 1000
+$NFT add rule x y meta protocol 0x0800
+$NFT add rule x y meta mark 0
+$NFT add rule x y meta iif lo
+$NFT add rule x y meta iifname "eth0"
+$NFT add rule x y meta oif lo
+$NFT add rule x y meta oifname "eth0"
+$NFT add rule x y meta skuid 1000
+$NFT add rule x y meta nftrace set 1
+$NFT add rule x y meta rtclassid cosmos
+
+usr=$"$USER"
+
+EXPECTED="table ip x {
+	chain y {
+		type filter hook output priority 0; policy accept;
+		meta length 1000
+		meta protocol ip
+		mark 0x00000000
+		iif \"lo\"
+		iifname \"eth0\"
+		oif \"lo\"
+		oifname \"eth0\"
+		skuid \"$usr\"
+		nftrace set 1
+		rtclassid \"cosmos\"
+	}
+}"
+
+GET="$($NFT list ruleset)"
+
+if [ "$EXPECTED" != "$GET" ] ; then
+	DIFF="$(which diff)"
+	[ -x $DIFF ] && $DIFF -u <(echo "$EXPECTED") <(echo "$GET")
+	exit 1
+fi
Signature · 1 line
2.13.6
author
#13 lore raw

PATCH 13/16 tests: files: Remove test for meta expression.

In reply to Varsha Rao

This patch removes test cases for meta expression. As new test is added to tests/shell.

---
 tests/files/expr-meta | 40 ----------------------------------------
 1 file changed, 40 deletions(-)
 delete mode 100644 tests/files/expr-meta
tests/files/expr-meta deleted +0 -40
deleted file mode 100644
index 360caa7..0000000
@@ -1,40 +0,0 @@
-#! nft -f
-
-add table ip filter
-add chain ip filter output { type filter hook output priority 0 ; }
-
-# meta: skb len
-add rule ip filter output meta length 1000 counter
-
-# meta: skb protocol
-add rule ip filter output meta protocol 0x0800 counter
-
-# meta: skb mark
-add rule ip filter output meta mark 0 counter
-
-# meta: skb iif
-add rule ip filter output meta iif lo counter
-
-# meta: skb iifname
-add rule ip filter output meta iifname "eth0" counter
-
-# meta: skb oif
-add rule ip filter output meta oif lo counter
-
-# meta: skb oifname
-add rule ip filter output meta oifname "eth0" counter
-
-# meta: skb sk uid
-add rule ip filter output meta skuid 1000 counter
-
-# meta: skb sk gid
-add rule ip filter output meta skgid 1000 counter
-
-# meta: nftrace
-add rule ip filter output meta nftrace 1 counter
-
-# meta: rtclassid (see /etc/iproute2/rt_realms)
-add rule ip filter output meta rtclassid cosmos counter
-
-# meta: secmark
-add rule ip filter output meta secmark 0 counter
Signature · 1 line
2.13.6
author
#14 lore raw

PATCH 14/16 tests: shell: Add tests for concat expression.

In reply to Varsha Rao

Add test cases for concat type and element mismatch.

---
 tests/shell/testcases/transactions/0050concat_1 | 26 +++++++++++++++++++++++++
 1 file changed, 26 insertions(+)
 create mode 100755 tests/shell/testcases/transactions/0050concat_1
tests/shell/testcases/transactions/0050concat_1 new file +26 -0
new file mode 100755
index 0000000..0e4f6e1
@@ -0,0 +1,26 @@
+#!/bin/bash
+
+set -e
+
+tmpfile=$(mktemp)
+if [ ! -w $tmpfile ] ; then
+        echo "Failed to create tmp file" >&2
+        exit 0
+fi
+
+trap "rm -rf $tmpfile" EXIT # cleanup if aborted
+
+RULESET="add table ip x
+add chain ip x y
+add rule ip x y ip daddr . tcp sport . tcp dport { \
+        192.168.0.1 . 22,       \
+        192.168.0.1 . 80,       \
+}
+add rule ip x y ip daddr . tcp dport { \
+        192.168.0.1 . 192.168.0.2,      \
+        192.168.0.1 . 192.168.0.3,      \
+}"
+
+echo "$RULESET" > $tmpfile
+$NFT -f $tmpfile
+echo "E: Allowed concat type and element mismatch"
Signature · 1 line
2.13.6
author
#15 lore raw

PATCH 15/16 tests: files: Remove tests for concat expression.

In reply to Varsha Rao

New test cases for concat expression has been added to tests/shell file, so remove it.

---
 tests/files/expr-concat | 19 -------------------
 1 file changed, 19 deletions(-)
 delete mode 100644 tests/files/expr-concat
tests/files/expr-concat deleted +0 -19
deleted file mode 100644
index bb284cc..0000000
@@ -1,19 +0,0 @@
-#! nft -f
-
-# Concat element mismatch
-add rule ip filter output ip daddr . tcp sport . tcp dport { \
-	192.168.0.1 . 22,	\
-	192.168.0.1 . 80,	\
-}
-
-# Concat type mismatch
-add rule ip filter output ip daddr . tcp dport { \
-	192.168.0.1 . 192.168.0.2,	\
-	192.168.0.1 . 192.168.0.3,	\
-}
-
-# Concat expression
-add rule ip filter output ip daddr . tcp dport { \
-	192.168.0.1 . 22,	\
-	192.168.0.1 . 80,	\
-}
Signature · 1 line
2.13.6
author
#16 lore raw

PATCH 16/16 tests: shell: Add test case for map expression.

In reply to Varsha Rao

Add tests for different map expression.

---
 tests/shell/testcases/maps/different_map_types_1 | 10 ++++++++++
 1 file changed, 10 insertions(+)
 create mode 100755 tests/shell/testcases/maps/different_map_types_1
tests/shell/testcases/maps/different_map_types_1 new file +10 -0
new file mode 100755
index 0000000..4d09163
@@ -0,0 +1,10 @@
+#!/bin/bash
+
+# must fail: expr MAP { expr : type1, expr : type2, .. } expr 
+
+set -e
+
+$NFT add table ip filter
+$NFT add chain ip filter output { type filter hook output priority 0 \; }
+$NFT add rule ip filter output meta mark set tcp dport map { 22 : 1, 23 : 192.168.0.1 }
+echo "E: Added two different types of expression to map"
Signature · 1 line
2.13.6
#17 lore raw
In reply to Varsha Rao

Hi Varsha,

Quoted 7 lines · Varsha Rao

This patch removes tests from tests/files and add tests to tests/shell which are not present in it.

Varsha Rao (16):
tests: files: Remove tests for ipv4
tests: files: Remove tests for ipv6
tests: shell: Add test for log statement.

I think we have a test for this under tests/py.

Quoted 3 lines

tests: files: Remove log statement tests.
tests: shell: Add test for log flags.
tests: shell: Add tests for payload expression.

Same thing for these to..

Quoted 3 lines

tests: files: Remove payload expression tests.
tests: files: Remove test for syntactical errors.
tests: shell: Add test for ct expression.

Same thing.

Quoted 3 lines

tests: files: Remove test for ct expression.
tests: files: Remove prefix file.
tests: files: Test for meta expressions.

Same thing.

Quoted 2 lines

tests: files: Remove test for meta expression.
tests: shell: Add tests for concat expression.

Same thing... so it looks like you can send a patch to remove them all in one go.

Thanks a lot for reviewing what we had under tests/files/

Quoted 2 lines

tests: files: Remove tests for concat expression.
tests: shell: Add test case for map expression.

BTW, I have applied 16/16.