summaryrefslogtreecommitdiffstats
path: root/tests/py
diff options
context:
space:
mode:
authorElise Lennion <elise.lennion@gmail.com>2017-01-26 15:21:45 -0200
committerPablo Neira Ayuso <pablo@netfilter.org>2017-01-27 13:33:20 +0100
commit7e6c6d92d2a1e770e55e8e27314f55df9b198ce9 (patch)
treeed6a59be01dd91ebd5713f2bf043a78e5debf19b /tests/py
parent153ef09be469ae9de41d912c7885f33ce47d843d (diff)
tests: py: Add tests for stateful objects
These test for adding counters and quotas, to tables of different families, and for referencing the objects in rules. Signed-off-by: Elise Lennion <elise.lennion@gmail.com> Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Diffstat (limited to 'tests/py')
-rw-r--r--tests/py/any/objects.t13
-rw-r--r--tests/py/ip/objects.t15
-rw-r--r--tests/py/ip/objects.t.payload31
3 files changed, 59 insertions, 0 deletions
diff --git a/tests/py/any/objects.t b/tests/py/any/objects.t
new file mode 100644
index 00000000..d44696da
--- /dev/null
+++ b/tests/py/any/objects.t
@@ -0,0 +1,13 @@
+:output;type filter hook output priority 0
+:ingress;type filter hook ingress device lo priority 0
+
+*ip;test-ip4;output
+*ip6;test-ip6;output
+*inet;test-inet;output
+*arp;test-arp;output
+*bridge;test-bridge;output
+*netdev;test-netdev;ingress
+
+%cnt1 type counter;ok
+%qt1 type quota 25 mbytes;ok
+%qt2 type quota over 1 kbytes;ok
diff --git a/tests/py/ip/objects.t b/tests/py/ip/objects.t
new file mode 100644
index 00000000..8109402d
--- /dev/null
+++ b/tests/py/ip/objects.t
@@ -0,0 +1,15 @@
+:output;type filter hook output priority 0
+
+*ip;test-ip4;output
+
+%cnt1 type counter;ok
+%cnt2 type counter;ok
+%qt1 type quota 25 mbytes;ok
+%qt2 type quota over 1 kbytes;ok
+
+ip saddr 192.168.1.3 counter name "cnt2";ok
+ip saddr 192.168.1.3 counter name "cnt3";fail
+counter name tcp dport map {443 : "cnt1", 80 : "cnt2", 22 : "cnt1"};ok
+ip saddr 192.168.1.3 quota name "qt1";ok
+ip saddr 192.168.1.3 quota name "qt3";fail
+quota name tcp dport map {443 : "qt1", 80 : "qt2", 22 : "qt1"};ok
diff --git a/tests/py/ip/objects.t.payload b/tests/py/ip/objects.t.payload
new file mode 100644
index 00000000..b5cad4d1
--- /dev/null
+++ b/tests/py/ip/objects.t.payload
@@ -0,0 +1,31 @@
+# ip saddr 192.168.1.3 counter name "cnt2"
+ip test-ip4 output
+ [ payload load 4b @ network header + 12 => reg 1 ]
+ [ cmp eq reg 1 0x0301a8c0 ]
+ [ objref type 1 name cnt2 ]
+
+# counter name tcp dport map {443 : "cnt1", 80 : "cnt2", 22 : "cnt1"}
+__objmap%d test-ip4 43
+__objmap%d test-ip4 0
+ element 0000bb01 : 0 [end] element 00005000 : 0 [end] element 00001600 : 0 [end]
+ip test-ip4 output
+ [ payload load 1b @ network header + 9 => reg 1 ]
+ [ cmp eq reg 1 0x00000006 ]
+ [ payload load 2b @ transport header + 2 => reg 1 ]
+ [ objref sreg 1 set __objmap%d id 1 ]
+
+# ip saddr 192.168.1.3 quota name "qt1"
+ip test-ip4 output
+ [ payload load 4b @ network header + 12 => reg 1 ]
+ [ cmp eq reg 1 0x0301a8c0 ]
+ [ objref type 2 name qt1 ]
+
+# quota name tcp dport map {443 : "qt1", 80 : "qt2", 22 : "qt1"}
+__objmap%d test-ip4 43
+__objmap%d test-ip4 0
+ element 0000bb01 : 0 [end] element 00005000 : 0 [end] element 00001600 : 0 [end]
+ip test-ip4 output
+ [ payload load 1b @ network header + 9 => reg 1 ]
+ [ cmp eq reg 1 0x00000006 ]
+ [ payload load 2b @ transport header + 2 => reg 1 ]
+ [ objref sreg 1 set __objmap%d id 1 ]