The parser and formatter for nwfilter rules is very strange and has weird quirks. Add a test case trying to capture some of the quirks to vizualize how it will change when the code is refactored. Signed-off-by: Peter Krempa <pkrempa@xxxxxxxxxx> --- tests/nwfilterxml2xmlin/quirks-invalid.xml | 13 +++++++++++++ tests/nwfilterxml2xmlout/quirks-invalid.xml | 7 +++++++ tests/nwfilterxml2xmltest.c | 5 +++++ 3 files changed, 25 insertions(+) create mode 100644 tests/nwfilterxml2xmlin/quirks-invalid.xml create mode 100644 tests/nwfilterxml2xmlout/quirks-invalid.xml diff --git a/tests/nwfilterxml2xmlin/quirks-invalid.xml b/tests/nwfilterxml2xmlin/quirks-invalid.xml new file mode 100644 index 0000000000..dab0e5035f --- /dev/null +++ b/tests/nwfilterxml2xmlin/quirks-invalid.xml @@ -0,0 +1,13 @@ +<filter name='testcase'> + <uuid>01a992d2-f8c8-7c27-f69b-ab0a9d377379</uuid> + + <!-- quirky XML for parser validation --> + <rule action='accept' direction='in' priority='100'> + <tcp match='no' srcipaddr='10.1.2.3'/> + <tcp match='no' srcportstart='22'/> + <tcp dstportstart='22' comment='comment'/> + <tcp match='no' srcporttend='24'/> + <tcp srcipmask='32' dstporttend='24'/> + </rule> + +</filter> diff --git a/tests/nwfilterxml2xmlout/quirks-invalid.xml b/tests/nwfilterxml2xmlout/quirks-invalid.xml new file mode 100644 index 0000000000..f244d45e08 --- /dev/null +++ b/tests/nwfilterxml2xmlout/quirks-invalid.xml @@ -0,0 +1,7 @@ +<filter name='testcase' chain='root'> + <uuid>01a992d2-f8c8-7c27-f69b-ab0a9d377379</uuid> + <rule action='accept' direction='in' priority='100'> + <tcp match='no' srcipaddr='10.1.2.3' srcipmask='32' srcportstart='22' dstportstart='22'/> + <tcp comment='comment'/> + </rule> +</filter> diff --git a/tests/nwfilterxml2xmltest.c b/tests/nwfilterxml2xmltest.c index 5c84c2fee9..c2481481ee 100644 --- a/tests/nwfilterxml2xmltest.c +++ b/tests/nwfilterxml2xmltest.c @@ -117,6 +117,11 @@ mymain(void) DO_TEST("example-1", false); DO_TEST("example-2", false); + /* The parser and formatter for nwfilter rules was written in a quirky way. + * Validate that it still works. Note that the files don't conform to the + * schema */ + DO_TEST("quirks-invalid", false); + DO_TEST("chain_prefixtest1-invalid", true); /* derived from arp-test */ DO_TEST("attr-value-test", false); -- 2.40.1