diff options
author | Arturo Borrero Gonzalez <arturo.borrero.glez@gmail.com> | 2013-06-27 20:09:34 +0200 |
---|---|---|
committer | Pablo Neira Ayuso <pablo@netfilter.org> | 2013-06-27 21:17:54 +0200 |
commit | dc9733e097959f4e167244549f58cd3bef7af79b (patch) | |
tree | e003e7557b63b7b00eb4864cb4bb0b2d92660ec6 /test/nft-rule-xml-add.sh | |
parent | 443410dd335732dbcb2a6f1524d7481e506d67c1 (diff) |
test: add testbench for XML
This patch add a testbench for XML parsing, which may be extended
to test JSON as well.
To use it:
$ cd test/
$ make nft-parsing-test
$ ./nft-parsing-test xmlfiles/
This testbench supersedes old .sh test scripts, so they are deleted.
[ I have mangled this patch to rename/mangle files, to colorize the
test output and not to compile XML inconditionally --pablo ]
Signed-off-by: Arturo Borrero Gonzalez <arturo.borrero.glez@gmail.com>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Diffstat (limited to 'test/nft-rule-xml-add.sh')
-rwxr-xr-x | test/nft-rule-xml-add.sh | 125 |
1 files changed, 0 insertions, 125 deletions
diff --git a/test/nft-rule-xml-add.sh b/test/nft-rule-xml-add.sh deleted file mode 100755 index 2a052b2..0000000 --- a/test/nft-rule-xml-add.sh +++ /dev/null @@ -1,125 +0,0 @@ -#!/bin/bash - -# -# (C) 2013 by Arturo Borrero Gonzalez <arturo.borrero.glez@gmail.com> -# -# This program is free software; you can redistribute it and/or modify it -# under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. - -# This is a small testbench for adding nftables rules to kernel -# in XML format. - -BINARY="../examples/nft-rule-xml-add" -NFT="$( which nft )" -MKTEMP="$( which mktemp )" -TMPFILE="$( $MKTEMP )" - -if [ ! -x "$BINARY" ] ; then - echo "E: Binary not found $BINARY" - exit 1 -fi - -if [ ! -x "$MKTEMP" ] ; then - echo "E: mktemp not found. Is mandatory." - exit 1 -fi - -if [ ! -w "$TMPFILE" ] ; then - echo "E: Unable to create tempfile with mktemp" - exit 1 -fi - -[ ! -x "$NFT" ] && echo "W: nftables main binary not found but continuing anyway $NFT" - -XML="<rule family=\"ip\" table=\"filter\" chain=\"INPUT\" handle=\"100\" version=\"0\"> - <rule_flags>0</rule_flags> - <compat_flags>0</compat_flags> - <compat_proto>0</compat_proto> - <expr type=\"meta\"> - <dreg>1</dreg> - <key>iif</key> - </expr> - <expr type=\"cmp\"> - <sreg>1</sreg> - <op>eq</op> - <cmpdata> - <data_reg type=\"value\"> - <len>4</len> - <data0>0x04000000</data0> - </data_reg> - </cmpdata> - </expr> - <expr type=\"payload\"> - <dreg>1</dreg> - <base>transport</base> - <offset>12</offset> - <len>4</len> - </expr> - <expr type=\"cmp\"> - <sreg>1</sreg> - <op>eq</op> - <cmpdata> - <data_reg type=\"value\"> - <len>4</len> - <data0>0x96d60496</data0> - </data_reg> - </cmpdata> - </expr> - <expr type=\"payload\"> - <dreg>1</dreg> - <base>link</base> - <offset>16</offset> - <len>4</len> - </expr> - <expr type=\"cmp\"> - <sreg>1</sreg> - <op>eq</op> - <cmpdata> - <data_reg type=\"value\"> - <len>4</len> - <data0>0x96d60329</data0> - </data_reg> - </cmpdata> - </expr> - <expr type=\"payload\"> - <dreg>1</dreg> - <base>network</base> - <offset>9</offset> - <len>1</len> - </expr> - <expr type=\"cmp\"> - <sreg>1</sreg> - <op>eq</op> - <cmpdata> - <data_reg type=\"value\"> - <len>4</len> - <data0>0x06000000</data0> - </data_reg> - </cmpdata> - </expr> - <expr type=\"match\"> - <name>state</name> - </expr> - <expr type=\"counter\"> - <pkts>123123</pkts> - <bytes>321321</bytes> - </expr> - <expr type=\"target\"> - <name>LOG</name> - </expr> -</rule>" - -$NFT add table filter 2>/dev/null >&2 -$NFT add chain filter INPUT 2>/dev/null >&2 - -echo $XML > $TMPFILE -if ! $BINARY "$TMPFILE" ; then - echo "E: Unable to add XML." - rm -rf $TMPFILE 2>/dev/null - exit 1 -fi - -rm -rf $TMPFILE 2>/dev/null -echo "I: Test OK" |