From: Shyam Saini <mayhs11saini@gmail.com>
To: netfilter-devel@vger.kernel.org
Cc: Shyam Saini <mayhs11saini@gmail.com>
Subject: [PATCHv3] tests: py: Add test for ambiguity while setting the value
Date: Sat, 17 Jun 2017 01:05:42 +0530 [thread overview]
Message-ID: <1497641742-25272-1-git-send-email-mayhs11saini@gmail.com> (raw)
This test checks bug identified and fixed in the commit mentioned below
In a statement if there are multiple src data then it would be
totally ambiguous to decide which value to set.
Before the commit was made it returned 134(BUG), but now it returns 1
i.e, an error message.
Test: 986dea8 ("evaluate: avoid reference to multiple src data in
statements which set values")
Signed-off-by: Shyam Saini <mayhs11saini@gmail.com>
---
tests/py/any/ct.t | 10 ++++++++++
tests/py/any/meta.t | 8 ++++++++
tests/py/bridge/ether.t | 7 +++++++
tests/py/inet/tcp.t | 7 +++++++
tests/py/inet/udp.t | 7 +++++++
tests/py/ip/ip.t | 7 +++++++
6 files changed, 46 insertions(+)
diff --git a/tests/py/any/ct.t b/tests/py/any/ct.t
index 20f047a..f7c2321 100644
--- a/tests/py/any/ct.t
+++ b/tests/py/any/ct.t
@@ -58,6 +58,16 @@ ct mark set 0x11;ok;ct mark set 0x00000011
ct mark set mark;ok;ct mark set mark
ct mark set mark map { 1 : 10, 2 : 20, 3 : 30 };ok;ct mark set mark map { 0x00000003 : 0x0000001e, 0x00000002 : 0x00000014, 0x00000001 : 0x0000000a}
+# Following rules tests ambguity while setting the value
+# sudo nft add rule ip test-ip4 output ct mark set {0x11333, 0x11}
+# <cmdline>:1:41-55: Error: you cannot use a set here, unknown value to use
+# add rule ip test-ip4 output ct mark set {0x11333, 0x11}
+# ~~~~~~~~~~~~^^^^^^^^^^^^^^^
+ct mark set {0x11333, 0x11};fail
+ct zone set {123, 127};fail
+ct label set {123, 127};fail
+ct event set {new, related, destroy, label};fail
+
ct expiration 30;ok;ct expiration 30s
ct expiration 22;ok;ct expiration 22s
ct expiration != 233;ok;ct expiration != 3m53s
diff --git a/tests/py/any/meta.t b/tests/py/any/meta.t
index 2ff942f..e19a8f9 100644
--- a/tests/py/any/meta.t
+++ b/tests/py/any/meta.t
@@ -143,6 +143,14 @@ meta mark set 0xffffffde or 0x16;ok;mark set 0xffffffde
meta mark set 0x32 or 0xfffff;ok;mark set 0x000fffff
meta mark set 0xfffe xor 0x16;ok;mark set 0x0000ffe8
+# Test ambiguity while setting the value
+# sudo nft add rule ip test-ip4 input meta mark set {0xffff, 0xcc}
+# <cmdline>:1:42-55: Error: you cannot use a set here, unknown value to use
+# add rule ip test-ip4 input meta mark set {0xffff, 0xcc}
+# ~~~~~~~~~~~~~~^^^^^^^^^^^^^^
+meta mark set {0xffff, 0xcc};fail
+meta pkttype set {unicast, multicast, broadcast};fail
+
meta iif "lo";ok;iif "lo"
meta oif "lo";ok;oif "lo"
meta oifname "dummy2" accept;ok;oifname "dummy2" accept
diff --git a/tests/py/bridge/ether.t b/tests/py/bridge/ether.t
index 5c6766e..94637a6 100644
--- a/tests/py/bridge/ether.t
+++ b/tests/py/bridge/ether.t
@@ -8,3 +8,10 @@ tcp dport 22 ether saddr 00:0f:54:0c:11:04 ip daddr 1.2.3.4;ok
ether saddr 00:0f:54:0c:11:04 ip daddr 1.2.3.4 accept;ok
ether daddr 00:01:02:03:04:05 ether saddr set ff:fe:dc:ba:98:76 drop;ok
+
+#Test ambiguity while setting the value
+#sudo nft add rule bridge test-bridge input ether daddr set {01:00:5e:00:01:01, 01:00:5e:00:02:02}
+#<cmdline>:1:51-88: Error: you cannot use a set here, unknown value to use
+#add rule bridge test-bridge input ether daddr set {01:00:5e:00:01:01, 01:00:5e:00:02:02}
+# ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+ether daddr set {01:00:5e:00:01:01, 01:00:5e:00:02:02};fail
diff --git a/tests/py/inet/tcp.t b/tests/py/inet/tcp.t
index 5a0aab6..0281387 100644
--- a/tests/py/inet/tcp.t
+++ b/tests/py/inet/tcp.t
@@ -6,6 +6,13 @@
*inet;test-inet;input
*netdev;test-netdev;ingress
+# Test ambiguity while setting the value
+# sudo nft add rule ip test-ip4 input tcp dport set {1, 2, 3}
+# <cmdline>:1:42-50: Error: you cannot use a set here, unknown value to use
+# add rule ip test-ip4 input tcp dport set {1, 2, 3}
+# ~~~~~~~~~~~~~~^^^^^^^^^
+tcp dport set {1, 2, 3};fail
+
tcp dport 22;ok
tcp dport != 233;ok
tcp dport 33-45;ok
diff --git a/tests/py/inet/udp.t b/tests/py/inet/udp.t
index 2f16e6a..bb09973 100644
--- a/tests/py/inet/udp.t
+++ b/tests/py/inet/udp.t
@@ -15,6 +15,13 @@ udp sport != { 50, 60} accept;ok
udp sport { 12-40};ok
udp sport != { 13-24};ok
+# Test ambiguity while the value
+# sudo nft add rule ip test-ip4 input udp dport set {1, 2, 3}
+# <cmdline>:1:42-50: Error: you cannot use a set here, unknown value to use
+# add rule ip test-ip4 input udp dport set {1, 2, 3}
+# ~~~~~~~~~~~~~~^^^^^^^^^
+udp dport set {1, 2, 3};fail
+
udp dport 80 accept;ok
udp dport != 60 accept;ok
udp dport 70-75 accept;ok
diff --git a/tests/py/ip/ip.t b/tests/py/ip/ip.t
index f984646..3fa511a 100644
--- a/tests/py/ip/ip.t
+++ b/tests/py/ip/ip.t
@@ -85,6 +85,13 @@ ip checksum != { 33, 55, 67, 88};ok
ip checksum { 33-55};ok
ip checksum != { 33-55};ok
+# Test ambiguity while setting value
+# sudo nft add rule ip test-ip4 input ip saddr set {192.19.1.2, 191.1.22.1}
+# <cmdline>:1:41-64: Error: you cannot use a set here, unknown value to use
+# add rule ip test-ip4 input ip saddr set {192.19.1.2, 191.1.22.1}
+# ~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^
+ip saddr set {192.19.1.2, 191.1.22.1};fail
+
ip saddr 192.168.2.0/24;ok
ip saddr != 192.168.2.0/24;ok
ip saddr 192.168.3.1 ip daddr 192.168.3.100;ok
--
1.9.1
next reply other threads:[~2017-06-16 19:36 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-06-16 19:35 Shyam Saini [this message]
2017-06-18 9:29 ` [PATCHv3] tests: py: Add test for ambiguity while setting the value Pablo Neira Ayuso
2017-06-18 9:31 ` Pablo Neira Ayuso
2017-06-21 8:46 ` Shyam Saini
2017-06-18 9:48 ` Pablo Neira Ayuso
2017-06-21 8:50 ` Shyam Saini
2017-06-21 8:45 ` Shyam Saini
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=1497641742-25272-1-git-send-email-mayhs11saini@gmail.com \
--to=mayhs11saini@gmail.com \
--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).