From 8675f943e7eff24f29aaa492cb58267f9291de31 Mon Sep 17 00:00:00 2001 From: Florian Westphal Date: Tue, 14 Mar 2017 16:55:17 +0100 Subject: tests: py: add ct helper tests needs minor tweak to nft-test.py so we don't zap the ';' withhin the {}. Signed-off-by: Florian Westphal Acked-by: Pablo Neira Ayuso --- tests/py/ip/objects.t | 4 ++++ tests/py/ip/objects.t.payload | 14 ++++++++++++++ tests/py/nft-test.py | 11 ++++++++++- 3 files changed, 28 insertions(+), 1 deletion(-) (limited to 'tests/py') diff --git a/tests/py/ip/objects.t b/tests/py/ip/objects.t index 8109402d..ec8e8fd9 100644 --- a/tests/py/ip/objects.t +++ b/tests/py/ip/objects.t @@ -13,3 +13,7 @@ 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 + +%cthelp1 type ct helper { type \"ftp\" protocol tcp\; };ok +ct helper set "cthelp1";ok +ct helper set tcp dport map {21 : "cthelp1", 2121 : "cthelp1" };ok diff --git a/tests/py/ip/objects.t.payload b/tests/py/ip/objects.t.payload index b5cad4d1..6499d363 100644 --- a/tests/py/ip/objects.t.payload +++ b/tests/py/ip/objects.t.payload @@ -29,3 +29,17 @@ ip test-ip4 output [ cmp eq reg 1 0x00000006 ] [ payload load 2b @ transport header + 2 => reg 1 ] [ objref sreg 1 set __objmap%d id 1 ] + +# ct helper set "cthelp1" +ip test-ip4 output + [ objref type 3 name cthelp1 ] + +# ct helper set tcp dport map {21 : "cthelp1", 2121 : "cthelp1" } +__objmap%d test-ip4 43 +__objmap%d test-ip4 0 + element 00001500 : 0 [end] element 00004908 : 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 ] diff --git a/tests/py/nft-test.py b/tests/py/nft-test.py index 25009217..b2240407 100755 --- a/tests/py/nft-test.py +++ b/tests/py/nft-test.py @@ -885,6 +885,10 @@ def obj_process(obj_line, filename, lineno): obj_type = tokens[2] obj_spcf = "" + if obj_type == "ct" and tokens[3] == "helper": + obj_type = "ct helper" + tokens[3] = "" + if len(tokens) > 3: obj_spcf = " ".join(tokens[3:]) @@ -985,7 +989,12 @@ def run_test_file(filename, force_all_family_option, specific_file): continue if line[0] == "%": # Adds this object - obj_line = line.rstrip()[1:].split(";") + brace = line.rfind("}") + if brace < 0: + obj_line = line.rstrip()[1:].split(";") + else: + obj_line = (line[1:brace+1], line[brace+2:].rstrip()) + ret = obj_process(obj_line, filename, lineno) tests += 1 if ret == -1: -- cgit v1.2.3