From 1eccbfaae7d5339a8370d0bbd0a36516dda72356 Mon Sep 17 00:00:00 2001 From: Ismo Puustinen Date: Tue, 6 Jun 2017 14:50:10 +0300 Subject: tests: test include directories Add tests for: * including an empty directory * including directory with one or two files in it * testing for required trailing slash in directory name * testing for detecting non-existent directory * testing for a broken file in included directory Signed-off-by: Ismo Puustinen Signed-off-by: Pablo Neira Ayuso --- tests/shell/testcases/include/0005dir_empty_0 | 29 +++++++++++++ tests/shell/testcases/include/0006dir_single_0 | 36 +++++++++++++++++ tests/shell/testcases/include/0007dir_double_0 | 45 +++++++++++++++++++++ tests/shell/testcases/include/0008dir_no_slash_1 | 29 +++++++++++++ tests/shell/testcases/include/0009dir_nodir_1 | 31 ++++++++++++++ .../shell/testcases/include/0010dir_broken_file_1 | 47 ++++++++++++++++++++++ 6 files changed, 217 insertions(+) create mode 100755 tests/shell/testcases/include/0005dir_empty_0 create mode 100755 tests/shell/testcases/include/0006dir_single_0 create mode 100755 tests/shell/testcases/include/0007dir_double_0 create mode 100755 tests/shell/testcases/include/0008dir_no_slash_1 create mode 100755 tests/shell/testcases/include/0009dir_nodir_1 create mode 100755 tests/shell/testcases/include/0010dir_broken_file_1 (limited to 'tests/shell/testcases/include') diff --git a/tests/shell/testcases/include/0005dir_empty_0 b/tests/shell/testcases/include/0005dir_empty_0 new file mode 100755 index 00000000..f16acf82 --- /dev/null +++ b/tests/shell/testcases/include/0005dir_empty_0 @@ -0,0 +1,29 @@ +#!/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/0006dir_single_0 b/tests/shell/testcases/include/0006dir_single_0 new file mode 100755 index 00000000..ae4fd5f1 --- /dev/null +++ b/tests/shell/testcases/include/0006dir_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 new file mode 100755 index 00000000..0a14adee --- /dev/null +++ b/tests/shell/testcases/include/0007dir_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 new file mode 100755 index 00000000..2820dc9e --- /dev/null +++ b/tests/shell/testcases/include/0008dir_no_slash_1 @@ -0,0 +1,29 @@ +#!/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/0009dir_nodir_1 b/tests/shell/testcases/include/0009dir_nodir_1 new file mode 100755 index 00000000..d7407f45 --- /dev/null +++ b/tests/shell/testcases/include/0009dir_nodir_1 @@ -0,0 +1,31 @@ +#!/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/0010dir_broken_file_1 b/tests/shell/testcases/include/0010dir_broken_file_1 new file mode 100755 index 00000000..c0939746 --- /dev/null +++ b/tests/shell/testcases/include/0010dir_broken_file_1 @@ -0,0 +1,47 @@ +#!/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 -- cgit v1.2.3