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(a)redhat.com>
---
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