From 03a17f80bab09f8d9585b70464634ca50d3ffc7c Mon Sep 17 00:00:00 2001 From: Ismo Puustinen Date: Tue, 27 Jun 2017 15:14:59 +0300 Subject: tests: update include directory tests to support wildcard syntax. Signed-off-by: Ismo Puustinen Signed-off-by: Pablo Neira Ayuso --- tests/shell/testcases/include/0005dir_empty_0 | 29 ------------ tests/shell/testcases/include/0005glob_empty_0 | 31 +++++++++++++ tests/shell/testcases/include/0006dir_single_0 | 36 --------------- tests/shell/testcases/include/0006glob_single_0 | 36 +++++++++++++++ tests/shell/testcases/include/0007dir_double_0 | 45 ------------------- tests/shell/testcases/include/0007glob_double_0 | 45 +++++++++++++++++++ tests/shell/testcases/include/0008dir_no_slash_1 | 29 ------------ .../testcases/include/0008glob_nofile_wildcard_0 | 33 ++++++++++++++ tests/shell/testcases/include/0009dir_nodir_1 | 31 ------------- tests/shell/testcases/include/0009glob_nofile_1 | 33 ++++++++++++++ .../shell/testcases/include/0010dir_broken_file_1 | 47 ------------------- .../shell/testcases/include/0010glob_broken_file_1 | 49 ++++++++++++++++++++ tests/shell/testcases/include/0011dir_dependency_0 | 48 -------------------- .../shell/testcases/include/0011glob_dependency_0 | 50 +++++++++++++++++++++ tests/shell/testcases/include/0012dir_dependency_1 | 50 --------------------- .../shell/testcases/include/0012glob_dependency_1 | 52 ++++++++++++++++++++++ tests/shell/testcases/include/0013glob_dotfile_0 | 49 ++++++++++++++++++++ tests/shell/testcases/include/0014glob_directory_0 | 43 ++++++++++++++++++ .../testcases/include/0015doubleincludepath_0 | 52 ++++++++++++++++++++++ 19 files changed, 473 insertions(+), 315 deletions(-) delete mode 100755 tests/shell/testcases/include/0005dir_empty_0 create mode 100755 tests/shell/testcases/include/0005glob_empty_0 delete mode 100755 tests/shell/testcases/include/0006dir_single_0 create mode 100755 tests/shell/testcases/include/0006glob_single_0 delete mode 100755 tests/shell/testcases/include/0007dir_double_0 create mode 100755 tests/shell/testcases/include/0007glob_double_0 delete mode 100755 tests/shell/testcases/include/0008dir_no_slash_1 create mode 100755 tests/shell/testcases/include/0008glob_nofile_wildcard_0 delete mode 100755 tests/shell/testcases/include/0009dir_nodir_1 create mode 100755 tests/shell/testcases/include/0009glob_nofile_1 delete mode 100755 tests/shell/testcases/include/0010dir_broken_file_1 create mode 100755 tests/shell/testcases/include/0010glob_broken_file_1 delete mode 100755 tests/shell/testcases/include/0011dir_dependency_0 create mode 100755 tests/shell/testcases/include/0011glob_dependency_0 delete mode 100755 tests/shell/testcases/include/0012dir_dependency_1 create mode 100755 tests/shell/testcases/include/0012glob_dependency_1 create mode 100755 tests/shell/testcases/include/0013glob_dotfile_0 create mode 100755 tests/shell/testcases/include/0014glob_directory_0 create mode 100755 tests/shell/testcases/include/0015doubleincludepath_0 (limited to 'tests/shell/testcases') diff --git a/tests/shell/testcases/include/0005dir_empty_0 b/tests/shell/testcases/include/0005dir_empty_0 deleted file mode 100755 index f16acf82..00000000 --- a/tests/shell/testcases/include/0005dir_empty_0 +++ /dev/null @@ -1,29 +0,0 @@ -#!/bin/bash - -set -e - -tmpdir=$(mktemp -d) -if [ ! -d $tmpdir ] ; then - echo "Failed to create tmp directory" >&2 - exit 0 -fi - -tmpfile1=$(mktemp) -if [ ! -w $tmpfile1 ] ; then - echo "Failed to create tmp file" >&2 - exit 0 -fi - -# cleanup if aborted -trap "rm -rf $tmpfile1 && rmdir $tmpdir" EXIT - -RULESET1="include \"$tmpdir/\"" - -echo "$RULESET1" > $tmpfile1 - -$NFT -f $tmpfile1 - -if [ $? -ne 0 ] ; then - echo "E: unable to load good ruleset" >&2 - exit 1 -fi diff --git a/tests/shell/testcases/include/0005glob_empty_0 b/tests/shell/testcases/include/0005glob_empty_0 new file mode 100755 index 00000000..0743d0d7 --- /dev/null +++ b/tests/shell/testcases/include/0005glob_empty_0 @@ -0,0 +1,31 @@ +#!/bin/bash + +# Including files in an empty directory must not fail. + +set -e + +tmpdir=$(mktemp -d) +if [ ! -d $tmpdir ] ; then + echo "Failed to create tmp directory" >&2 + exit 0 +fi + +tmpfile1=$(mktemp) +if [ ! -w $tmpfile1 ] ; then + echo "Failed to create tmp file" >&2 + exit 0 +fi + +# cleanup if aborted +trap "rm -rf $tmpfile1 && rmdir $tmpdir" EXIT + +RULESET1="include \"$tmpdir/*\"" + +echo "$RULESET1" > $tmpfile1 + +$NFT -f $tmpfile1 + +if [ $? -ne 0 ] ; then + echo "E: unable to load good ruleset" >&2 + exit 1 +fi diff --git a/tests/shell/testcases/include/0006dir_single_0 b/tests/shell/testcases/include/0006dir_single_0 deleted file mode 100755 index ae4fd5f1..00000000 --- a/tests/shell/testcases/include/0006dir_single_0 +++ /dev/null @@ -1,36 +0,0 @@ -#!/bin/bash - -set -e - -tmpdir=$(mktemp -d) -if [ ! -d $tmpdir ] ; then - echo "Failed to create tmp directory" >&2 - exit 0 -fi - -tmpfile1=$(mktemp -p $tmpdir) -if [ ! -w $tmpfile1 ] ; then - echo "Failed to create tmp file" >&2 - exit 0 -fi - -tmpfile2=$(mktemp) -if [ ! -w $tmpfile2 ] ; then - echo "Failed to create tmp file" >&2 - exit 0 -fi - -# cleanup if aborted -trap "rm -rf $tmpfile1 $tmpfile2 && rmdir $tmpdir" EXIT - -RULESET1="add table x" -RULESET2="include \"$tmpdir/\"" - -echo "$RULESET1" > $tmpfile1 -echo "$RULESET2" > $tmpfile2 - -$NFT -f $tmpfile2 -if [ $? -ne 0 ] ; then - echo "E: unable to load good ruleset" >&2 - exit 1 -fi diff --git a/tests/shell/testcases/include/0006glob_single_0 b/tests/shell/testcases/include/0006glob_single_0 new file mode 100755 index 00000000..754db6f7 --- /dev/null +++ b/tests/shell/testcases/include/0006glob_single_0 @@ -0,0 +1,36 @@ +#!/bin/bash + +set -e + +tmpdir=$(mktemp -d) +if [ ! -d $tmpdir ] ; then + echo "Failed to create tmp directory" >&2 + exit 0 +fi + +tmpfile1=$(mktemp -p $tmpdir) +if [ ! -w $tmpfile1 ] ; then + echo "Failed to create tmp file" >&2 + exit 0 +fi + +tmpfile2=$(mktemp) +if [ ! -w $tmpfile2 ] ; then + echo "Failed to create tmp file" >&2 + exit 0 +fi + +# cleanup if aborted +trap "rm -rf $tmpfile1 $tmpfile2 && rmdir $tmpdir" EXIT + +RULESET1="add table x" +RULESET2="include \"$tmpdir/*\"" + +echo "$RULESET1" > $tmpfile1 +echo "$RULESET2" > $tmpfile2 + +$NFT -f $tmpfile2 +if [ $? -ne 0 ] ; then + echo "E: unable to load good ruleset" >&2 + exit 1 +fi diff --git a/tests/shell/testcases/include/0007dir_double_0 b/tests/shell/testcases/include/0007dir_double_0 deleted file mode 100755 index 0a14adee..00000000 --- a/tests/shell/testcases/include/0007dir_double_0 +++ /dev/null @@ -1,45 +0,0 @@ -#!/bin/bash - -set -e - -tmpdir=$(mktemp -d) -if [ ! -d $tmpdir ] ; then - echo "Failed to create tmp directory" >&2 - exit 0 -fi - -tmpfile1=$(mktemp -p $tmpdir) -if [ ! -w $tmpfile1 ] ; then - echo "Failed to create tmp file" >&2 - exit 0 -fi - -tmpfile2=$(mktemp -p $tmpdir) -if [ ! -w $tmpfile2 ] ; then - echo "Failed to create tmp file" >&2 - exit 0 -fi - -tmpfile3=$(mktemp) -if [ ! -w $tmpfile3 ] ; then - echo "Failed to create tmp file" >&2 - exit 0 -fi - -# cleanup if aborted -trap "rm -rf $tmpfile1 $tmpfile2 $tmpfile3 && rmdir $tmpdir" EXIT - -RULESET1="add table x" -RULESET2="add table y" -RULESET3="include \"$tmpdir/\"" - -echo "$RULESET1" > $tmpfile1 -echo "$RULESET2" > $tmpfile2 -echo "$RULESET3" > $tmpfile3 - -$NFT -f $tmpfile3 - -if [ $? -ne 0 ] ; then - echo "E: unable to load good ruleset" >&2 - exit 1 -fi diff --git a/tests/shell/testcases/include/0007glob_double_0 b/tests/shell/testcases/include/0007glob_double_0 new file mode 100755 index 00000000..9b45a62d --- /dev/null +++ b/tests/shell/testcases/include/0007glob_double_0 @@ -0,0 +1,45 @@ +#!/bin/bash + +set -e + +tmpdir=$(mktemp -d) +if [ ! -d $tmpdir ] ; then + echo "Failed to create tmp directory" >&2 + exit 0 +fi + +tmpfile1=$(mktemp -p $tmpdir) +if [ ! -w $tmpfile1 ] ; then + echo "Failed to create tmp file" >&2 + exit 0 +fi + +tmpfile2=$(mktemp -p $tmpdir) +if [ ! -w $tmpfile2 ] ; then + echo "Failed to create tmp file" >&2 + exit 0 +fi + +tmpfile3=$(mktemp) +if [ ! -w $tmpfile3 ] ; then + echo "Failed to create tmp file" >&2 + exit 0 +fi + +# cleanup if aborted +trap "rm -rf $tmpfile1 $tmpfile2 $tmpfile3 && rmdir $tmpdir" EXIT + +RULESET1="add table x" +RULESET2="add table y" +RULESET3="include \"$tmpdir/*\"" + +echo "$RULESET1" > $tmpfile1 +echo "$RULESET2" > $tmpfile2 +echo "$RULESET3" > $tmpfile3 + +$NFT -f $tmpfile3 + +if [ $? -ne 0 ] ; then + echo "E: unable to load good ruleset" >&2 + exit 1 +fi diff --git a/tests/shell/testcases/include/0008dir_no_slash_1 b/tests/shell/testcases/include/0008dir_no_slash_1 deleted file mode 100755 index 2820dc9e..00000000 --- a/tests/shell/testcases/include/0008dir_no_slash_1 +++ /dev/null @@ -1,29 +0,0 @@ -#!/bin/bash - -set -e - -tmpdir=$(mktemp -d) -if [ ! -d $tmpdir ] ; then - echo "Failed to create tmp directory" >&2 - exit 0 -fi - -tmpfile1=$(mktemp -p $tmpdir) -if [ ! -w $tmpfile1 ] ; then - echo "Failed to create tmp file" >&2 - exit 0 -fi - -# cleanup if aborted -trap "rm -rf $tmpfile1 && rmdir $tmpdir" EXIT - -RULESET1="include \"$tmpdir\"" - -echo "$RULESET1" > $tmpfile1 - -$NFT -f $tmpfile1 - -if [ $? -eq 0 ] ; then - echo "E: did not catch missing slash in directory name" >&2 - exit 1 -fi diff --git a/tests/shell/testcases/include/0008glob_nofile_wildcard_0 b/tests/shell/testcases/include/0008glob_nofile_wildcard_0 new file mode 100755 index 00000000..f9c0aa19 --- /dev/null +++ b/tests/shell/testcases/include/0008glob_nofile_wildcard_0 @@ -0,0 +1,33 @@ +#!/bin/bash + +# When using wildcards, not having any match is not an error. + +set -e + +tmpdir=$(mktemp -d) +if [ ! -d $tmpdir ] ; then + echo "Failed to create tmp directory" >&2 + exit 0 +fi + +# remove the directory +rmdir $tmpdir + +tmpfile1=$(mktemp) +if [ ! -w $tmpfile1 ] ; then + echo "Failed to create tmp file" >&2 + exit 0 +fi + +# cleanup if aborted +trap "rm -rf $tmpfile1" EXIT + +RULESET1="include \"$tmpdir/non_existent_file*.nft\"" + +echo "$RULESET1" > $tmpfile1 + +$NFT -f $tmpfile1 +if [ $? -ne 0 ] ; then + echo "E: unable to load good ruleset" >&2 + exit 1 +fi diff --git a/tests/shell/testcases/include/0009dir_nodir_1 b/tests/shell/testcases/include/0009dir_nodir_1 deleted file mode 100755 index d7407f45..00000000 --- a/tests/shell/testcases/include/0009dir_nodir_1 +++ /dev/null @@ -1,31 +0,0 @@ -#!/bin/bash - -set -e - -tmpdir=$(mktemp -d) -if [ ! -d $tmpdir ] ; then - echo "Failed to create tmp directory" >&2 - exit 0 -fi - -# remove the directory -rmdir $tmpdir - -tmpfile1=$(mktemp) -if [ ! -w $tmpfile1 ] ; then - echo "Failed to create tmp file" >&2 - exit 0 -fi - -# cleanup if aborted -trap "rm -rf $tmpfile1" EXIT - -RULESET1="include \"$tmpdir/\"" - -echo "$RULESET1" > $tmpfile1 - -$NFT -f $tmpfile1 -if [ $? -eq 0 ] ; then - echo "E: Failed to catch a missing include directory/file" >&2 - exit 1 -fi diff --git a/tests/shell/testcases/include/0009glob_nofile_1 b/tests/shell/testcases/include/0009glob_nofile_1 new file mode 100755 index 00000000..bab58305 --- /dev/null +++ b/tests/shell/testcases/include/0009glob_nofile_1 @@ -0,0 +1,33 @@ +#!/bin/bash + +# When not using wildcards, not having any match is an error. + +set -e + +tmpdir=$(mktemp -d) +if [ ! -d $tmpdir ] ; then + echo "Failed to create tmp directory" >&2 + exit 0 +fi + +# remove the directory +rmdir $tmpdir + +tmpfile1=$(mktemp) +if [ ! -w $tmpfile1 ] ; then + echo "Failed to create tmp file" >&2 + exit 0 +fi + +# cleanup if aborted +trap "rm -rf $tmpfile1" EXIT + +RULESET1="include \"$tmpdir/non_existent_file.nft\"" + +echo "$RULESET1" > $tmpfile1 + +$NFT -f $tmpfile1 +if [ $? -eq 0 ] ; then + echo "E: Failed to catch a missing include directory/file" >&2 + exit 1 +fi diff --git a/tests/shell/testcases/include/0010dir_broken_file_1 b/tests/shell/testcases/include/0010dir_broken_file_1 deleted file mode 100755 index c0939746..00000000 --- a/tests/shell/testcases/include/0010dir_broken_file_1 +++ /dev/null @@ -1,47 +0,0 @@ -#!/bin/bash - -set -e - -tmpdir=$(mktemp -d) -if [ ! -d $tmpdir ] ; then - echo "Failed to create tmp directory" >&2 - exit 0 -fi - -tmpfile1=$(mktemp -p $tmpdir) -if [ ! -w $tmpfile1 ] ; then - echo "Failed to create tmp file" >&2 - exit 0 -fi - -tmpfile2=$(mktemp -p $tmpdir) -if [ ! -w $tmpfile2 ] ; then - echo "Failed to create tmp file" >&2 - exit 0 -fi - -tmpfile3=$(mktemp) -if [ ! -w $tmpfile3 ] ; then - echo "Failed to create tmp file" >&2 - exit 0 -fi - -# cleanup if aborted -trap "rm -rf $tmpfile1 $tmpfile2 $tmpfile3 && rmdir $tmpdir" EXIT - -RULESET1="add table x" - -# do an error in a file -RULESET2="intentionally broken file" -RULESET3="include \"$tmpdir/\"" - -echo "$RULESET1" > $tmpfile1 -echo "$RULESET2" > $tmpfile2 -echo "$RULESET3" > $tmpfile3 - -$NFT -f $tmpfile3 - -if [ $? -eq 0 ] ; then - echo "E: didn't catch a broken file in directory" >&2 - exit 1 -fi diff --git a/tests/shell/testcases/include/0010glob_broken_file_1 b/tests/shell/testcases/include/0010glob_broken_file_1 new file mode 100755 index 00000000..9027f189 --- /dev/null +++ b/tests/shell/testcases/include/0010glob_broken_file_1 @@ -0,0 +1,49 @@ +#!/bin/bash + +# Loading broken files must fail. + +set -e + +tmpdir=$(mktemp -d) +if [ ! -d $tmpdir ] ; then + echo "Failed to create tmp directory" >&2 + exit 0 +fi + +tmpfile1=$(mktemp -p $tmpdir) +if [ ! -w $tmpfile1 ] ; then + echo "Failed to create tmp file" >&2 + exit 0 +fi + +tmpfile2=$(mktemp -p $tmpdir) +if [ ! -w $tmpfile2 ] ; then + echo "Failed to create tmp file" >&2 + exit 0 +fi + +tmpfile3=$(mktemp) +if [ ! -w $tmpfile3 ] ; then + echo "Failed to create tmp file" >&2 + exit 0 +fi + +# cleanup if aborted +trap "rm -rf $tmpfile1 $tmpfile2 $tmpfile3 && rmdir $tmpdir" EXIT + +RULESET1="add table x" + +# do an error in a file +RULESET2="intentionally broken file" +RULESET3="include \"$tmpdir/*\"" + +echo "$RULESET1" > $tmpfile1 +echo "$RULESET2" > $tmpfile2 +echo "$RULESET3" > $tmpfile3 + +$NFT -f $tmpfile3 + +if [ $? -eq 0 ] ; then + echo "E: didn't catch a broken file in directory" >&2 + exit 1 +fi diff --git a/tests/shell/testcases/include/0011dir_dependency_0 b/tests/shell/testcases/include/0011dir_dependency_0 deleted file mode 100755 index 8ee193fd..00000000 --- a/tests/shell/testcases/include/0011dir_dependency_0 +++ /dev/null @@ -1,48 +0,0 @@ -#!/bin/bash - -set -e - -tmpdir=$(mktemp -d) -if [ ! -d $tmpdir ] ; then - echo "Failed to create tmp directory" >&2 - exit 0 -fi - -tmpfile1="$tmpdir/01_file.nft" -touch $tmpfile1 -if [ ! -w $tmpfile1 ] ; then - echo "Failed to create tmp file" >&2 - exit 0 -fi - -tmpfile2="$tmpdir/02_file.nft" -touch $tmpfile2 -if [ ! -w $tmpfile2 ] ; then - echo "Failed to create tmp file" >&2 - exit 0 -fi - -tmpfile3=$(mktemp) -if [ ! -w $tmpfile3 ] ; then - echo "Failed to create tmp file" >&2 - exit 0 -fi - -# cleanup if aborted -trap "rm -rf $tmpfile1 $tmpfile2 $tmpfile3 && rmdir $tmpdir" EXIT - -# add interdependent rulesets -RULESET1="add table x" -RULESET2="add chain x y" -RULESET3="include \"$tmpdir/\"" - -echo "$RULESET1" > $tmpfile1 -echo "$RULESET2" > $tmpfile2 -echo "$RULESET3" > $tmpfile3 - -$NFT -f $tmpfile3 - -if [ $? -ne 0 ] ; then - echo "E: unable to load good ruleset" >&2 - exit 1 -fi diff --git a/tests/shell/testcases/include/0011glob_dependency_0 b/tests/shell/testcases/include/0011glob_dependency_0 new file mode 100755 index 00000000..8786850e --- /dev/null +++ b/tests/shell/testcases/include/0011glob_dependency_0 @@ -0,0 +1,50 @@ +#!/bin/bash + +# Files are included in alphabetical order. + +set -e + +tmpdir=$(mktemp -d) +if [ ! -d $tmpdir ] ; then + echo "Failed to create tmp directory" >&2 + exit 0 +fi + +tmpfile1="$tmpdir/01_file.nft" +touch $tmpfile1 +if [ ! -w $tmpfile1 ] ; then + echo "Failed to create tmp file" >&2 + exit 0 +fi + +tmpfile2="$tmpdir/02_file.nft" +touch $tmpfile2 +if [ ! -w $tmpfile2 ] ; then + echo "Failed to create tmp file" >&2 + exit 0 +fi + +tmpfile3=$(mktemp) +if [ ! -w $tmpfile3 ] ; then + echo "Failed to create tmp file" >&2 + exit 0 +fi + +# cleanup if aborted +trap "rm -rf $tmpfile1 $tmpfile2 $tmpfile3 && rmdir $tmpdir" EXIT + +# add interdependent rulesets +RULESET1="add table x" +RULESET2="add chain x y" +RULESET3="include \"$tmpdir/*\"" + +echo "$RULESET1" > $tmpfile1 +echo "$RULESET2" > $tmpfile2 +echo "$RULESET3" > $tmpfile3 + +$NFT -f $tmpfile3 + +if [ $? -ne 0 ] ; then + echo "E: unable to load good ruleset" >&2 + exit 1 +fi diff --git a/tests/shell/testcases/include/0012dir_dependency_1 b/tests/shell/testcases/include/0012dir_dependency_1 deleted file mode 100755 index c81ca327..00000000 --- a/tests/shell/testcases/include/0012dir_dependency_1 +++ /dev/null @@ -1,50 +0,0 @@ -#!/bin/bash - -set -e - -tmpdir=$(mktemp -d) -if [ ! -d $tmpdir ] ; then - echo "Failed to create tmp directory" >&2 - exit 0 -fi - -tmpfile1="$tmpdir/01_file.nft" -touch $tmpfile1 -if [ ! -w $tmpfile1 ] ; then - echo "Failed to create tmp file" >&2 - exit 0 -fi - -tmpfile2="$tmpdir/02_file.nft" -touch $tmpfile2 -if [ ! -w $tmpfile2 ] ; then - echo "Failed to create tmp file" >&2 - exit 0 -fi - -tmpfile3=$(mktemp) -if [ ! -w $tmpfile3 ] ; then - echo "Failed to create tmp file" >&2 - exit 0 -fi - -# cleanup if aborted -trap "rm -rf $tmpfile1 $tmpfile2 $tmpfile3 && rmdir $tmpdir" EXIT - -# add interdependent rulesets -RULESET1="add table x" -RULESET2="add chain x y" -RULESET3="include \"$tmpdir/\"" - -# Note different order when compared with 0011dir_depencency_0. The idea -# here is to introduce wrong order to get the loading fail. -echo "$RULESET1" > $tmpfile2 -echo "$RULESET2" > $tmpfile1 -echo "$RULESET3" > $tmpfile3 - -$NFT -f $tmpfile3 - -if [ $? -eq 0 ] ; then - echo "E: did not catch wrong file order in include directory" >&2 - exit 1 -fi diff --git a/tests/shell/testcases/include/0012glob_dependency_1 b/tests/shell/testcases/include/0012glob_dependency_1 new file mode 100755 index 00000000..740f5ea1 --- /dev/null +++ b/tests/shell/testcases/include/0012glob_dependency_1 @@ -0,0 +1,52 @@ +#!/bin/bash + +# Files are included in alphabetical order. + +set -e + +tmpdir=$(mktemp -d) +if [ ! -d $tmpdir ] ; then + echo "Failed to create tmp directory" >&2 + exit 0 +fi + +tmpfile1="$tmpdir/01_file.nft" +touch $tmpfile1 +if [ ! -w $tmpfile1 ] ; then + echo "Failed to create tmp file" >&2 + exit 0 +fi + +tmpfile2="$tmpdir/02_file.nft" +touch $tmpfile2 +if [ ! -w $tmpfile2 ] ; then + echo "Failed to create tmp file" >&2 + exit 0 +fi + +tmpfile3=$(mktemp) +if [ ! -w $tmpfile3 ] ; then + echo "Failed to create tmp file" >&2 + exit 0 +fi + +# cleanup if aborted +trap "rm -rf $tmpfile1 $tmpfile2 $tmpfile3 && rmdir $tmpdir" EXIT + +# add interdependent rulesets +RULESET1="add table x" +RULESET2="add chain x y" +RULESET3="include \"$tmpdir/*\"" + +# Note different order when compared with 0011dir_depencency_0. The idea +# here is to introduce wrong order to get the loading fail. +echo "$RULESET1" > $tmpfile2 +echo "$RULESET2" > $tmpfile1 +echo "$RULESET3" > $tmpfile3 + +$NFT -f $tmpfile3 + +if [ $? -eq 0 ] ; then + echo "E: did not catch wrong file order in include directory" >&2 + exit 1 +fi diff --git a/tests/shell/testcases/include/0013glob_dotfile_0 b/tests/shell/testcases/include/0013glob_dotfile_0 new file mode 100755 index 00000000..36cfe1c0 --- /dev/null +++ b/tests/shell/testcases/include/0013glob_dotfile_0 @@ -0,0 +1,49 @@ +#!/bin/bash + +# Must not load a dot file in globbed directory. + +set -e + +tmpdir=$(mktemp -d) +if [ ! -d $tmpdir ] ; then + echo "Failed to create tmp directory" >&2 + exit 0 +fi + +tmpfile1=$(mktemp -p $tmpdir) +if [ ! -w $tmpfile1 ] ; then + echo "Failed to create tmp file" >&2 + exit 0 +fi + +tmpfile2=$(mktemp -p $tmpdir ".XXXXXXXX") +if [ ! -w $tmpfile2 ] ; then + echo "Failed to create tmp file" >&2 + exit 0 +fi + +tmpfile3=$(mktemp) +if [ ! -w $tmpfile3 ] ; then + echo "Failed to create tmp file" >&2 + exit 0 +fi + +# cleanup if aborted +trap "rm -rf $tmpfile1 $tmpfile2 $tmpfile3 && rmdir $tmpdir" EXIT + +RULESET1="add table x" + +# an error in a dot file +RULESET2="intentionally broken file" +RULESET3="include \"$tmpdir/*\"" + +echo "$RULESET1" > $tmpfile1 +echo "$RULESET2" > $tmpfile2 +echo "$RULESET3" > $tmpfile3 + +$NFT -f $tmpfile3 + +if [ $? -ne 0 ] ; then + echo "E: tried to load a .dot file" >&2 + exit 1 +fi diff --git a/tests/shell/testcases/include/0014glob_directory_0 b/tests/shell/testcases/include/0014glob_directory_0 new file mode 100755 index 00000000..9a2443a5 --- /dev/null +++ b/tests/shell/testcases/include/0014glob_directory_0 @@ -0,0 +1,43 @@ +#!/bin/bash + +# Must not be confused in matched subdirectories. + +set -e + +tmpdir1=$(mktemp -d) +if [ ! -d $tmpdir1 ] ; then + echo "Failed to create tmp directory" >&2 + exit 0 +fi + +tmpfile1=$(mktemp -p $tmpdir1) +if [ ! -w $tmpfile1 ] ; then + echo "Failed to create tmp file" >&2 + exit 0 +fi + +tmpdir2=$(mktemp -p $tmpdir1 -d) +if [ ! -w $tmpdir2 ] ; then + echo "Failed to create the second tmp directory" >&2 + exit 0 +fi + +tmpdir3=$(mktemp -p $tmpdir2 -d) +if [ ! -w $tmpdir3 ] ; then + echo "Failed to create the third tmp directory" >&2 + exit 0 +fi + +# cleanup if aborted +trap "rm -rf $tmpfile1 && rmdir $tmpdir3 && rmdir $tmpdir2 && rmdir $tmpdir1" EXIT + +RULESET1="include \"$tmpdir2/*\"" + +echo "$RULESET1" > $tmpfile1 + +$NFT -f $tmpfile1 + +if [ $? -ne 0 ] ; then + echo "E: tried to include a matched directory" >&2 + exit 1 +fi diff --git a/tests/shell/testcases/include/0015doubleincludepath_0 b/tests/shell/testcases/include/0015doubleincludepath_0 new file mode 100755 index 00000000..db703468 --- /dev/null +++ b/tests/shell/testcases/include/0015doubleincludepath_0 @@ -0,0 +1,52 @@ +#!/bin/bash + +set -e + +tmpfile=$(mktemp) +if [ ! -w $tmpfile ] ; then + echo "Failed to create tmp file" >&2 + exit 0 +fi + +tmpdir1=$(mktemp -d) +if [ ! -d $tmpdir1 ] ; then + echo "Failed to create tmp directory" >&2 + exit 0 +fi + +tmpdir2=$(mktemp -d) +if [ ! -d $tmpdir2 ] ; then + echo "Failed to create tmp directory" >&2 + exit 0 +fi + +tmpfile1=$(mktemp -p $tmpdir1) +if [ ! -w $tmpfile1 ] ; then + echo "Failed to create tmp file" >&2 + exit 0 +fi + +tmpfile2=$(mktemp -p $tmpdir2) +if [ ! -w $tmpfile2 ] ; then + echo "Failed to create tmp file" >&2 + exit 0 +fi + +trap "rm -rf $tmpdfile $tmpfile1 $tmpfile2 && rmdir $tmpdir1 && rmdir $tmpdir2" EXIT # cleanup if aborted + +RULESET1="add table x" +RULESET2="add chain x y" +RULESET3=" \ +include \"$(basename $tmpfile1)\" +include \"$(basename $tmpfile2)\" +" + +echo "$RULESET1" > $tmpfile1 +echo "$RULESET2" > $tmpfile2 +echo "$RULESET3" > $tmpfile + +$NFT -I $tmpdir1 -I $tmpdir2 -f $tmpfile +if [ $? -ne 0 ] ; then + echo "E: unable to load good ruleset" >&2 + exit 1 +fi -- cgit v1.2.3