Uses the nfsconftool cli to test that the configuration library functions are operating as expected Signed-off-by: Justin Mitchell <jumitche@xxxxxxxxxx> --- tests/nfsconf/01-errors.conf | 20 ++++++++++++++++++++ tests/nfsconf/01-errors.exp | 14 ++++++++++++++ tests/nfsconf/02-valid.conf | 25 +++++++++++++++++++++++++ tests/nfsconf/02-valid.exp | 26 ++++++++++++++++++++++++++ tests/nfsconf/02-valid.sub | 7 +++++++ tests/t0002-nfsconf.sh | 38 ++++++++++++++++++++++++++++++++++++++ 6 files changed, 130 insertions(+) create mode 100644 tests/nfsconf/01-errors.conf create mode 100644 tests/nfsconf/01-errors.exp create mode 100644 tests/nfsconf/02-valid.conf create mode 100644 tests/nfsconf/02-valid.exp create mode 100644 tests/nfsconf/02-valid.sub create mode 100755 tests/t0002-nfsconf.sh diff --git a/tests/nfsconf/01-errors.conf b/tests/nfsconf/01-errors.conf new file mode 100644 index 0000000..ca64d2c --- /dev/null +++ b/tests/nfsconf/01-errors.conf @@ -0,0 +1,20 @@ +# file of deliberate errors +[default] + + +[ one + +[ two " foo ] +aa = foo + +[ three +val = none + +[four] +one + = two +three = +four = foo = bar +five = " nothing +six = normal + diff --git a/tests/nfsconf/01-errors.exp b/tests/nfsconf/01-errors.exp new file mode 100644 index 0000000..2bf1b8c --- /dev/null +++ b/tests/nfsconf/01-errors.exp @@ -0,0 +1,14 @@ +nfsconf: config error at 01-errors.conf:5: non-matched ']', ignoring until next section +nfsconf: config error at 01-errors.conf:7: non-matched '"', ignoring until next section +nfsconf: config error at 01-errors.conf:10: non-matched ']', ignoring until next section +nfsconf: config error at 01-errors.conf:11: ignoring line not in a section +nfsconf: config error at 01-errors.conf:14: line not empty and not an assignment +nfsconf: config error at 01-errors.conf:15: missing tag in assignment +nfsconf: config error at 01-errors.conf:16: missing value in assignment +nfsconf: config error at 01-errors.conf:18: unmatched quotes +[four] + four = foo = bar + six = normal + +[two] + aa = foo diff --git a/tests/nfsconf/02-valid.conf b/tests/nfsconf/02-valid.conf new file mode 100644 index 0000000..ca8ccab --- /dev/null +++ b/tests/nfsconf/02-valid.conf @@ -0,0 +1,25 @@ +[environment] +one = 1 +two = 2 +three = 3 + +[section_one] +one = 11 +two = 22 +three = $three + four = "six " + five six = seven eight + +[section_two "two"] +one = Un +two = Dau +include = "02-valid.sub" + +[section_two "one"] +one = Un +two = Deux + +[section_two "two"] +four = Pedwar + five = " Pump " + diff --git a/tests/nfsconf/02-valid.exp b/tests/nfsconf/02-valid.exp new file mode 100644 index 0000000..379d7a4 --- /dev/null +++ b/tests/nfsconf/02-valid.exp @@ -0,0 +1,26 @@ +[environment] + one = 1 + three = 3 + two = 2 + +[extra_section] + bar = baz + foo = bar + +[section_one] + five six = seven eight + four = "six " + one = 11 + three = $three + two = 22 + +[section_two "one"] + one = Un + two = Deux + +[section_two "two"] + five = " Pump " + four = Pedwar + one = Un + three = Tri + two = Dau diff --git a/tests/nfsconf/02-valid.sub b/tests/nfsconf/02-valid.sub new file mode 100644 index 0000000..ab7beda --- /dev/null +++ b/tests/nfsconf/02-valid.sub @@ -0,0 +1,7 @@ +# Included configs don't need a section, it is inherited +three=Tri + +# But if they do, that works also +[extra_section] +foo = bar +bar = baz diff --git a/tests/t0002-nfsconf.sh b/tests/t0002-nfsconf.sh new file mode 100755 index 0000000..511d248 --- /dev/null +++ b/tests/t0002-nfsconf.sh @@ -0,0 +1,38 @@ +#!/bin/bash + +TESTFILES=nfsconf +DUMPER=`realpath ../tools/nfsconf/nfsconftool` + +BASEDIR=`dirname "$0"` +pushd $BASEDIR/$TESTFILES + +rm -f *.out + +TCOUNT=0 +TPASS=0 + +for i in *.conf +do +TNAME=`basename "$i" .conf` + +echo "Running test $TNAME" +TCOUNT=$((TCOUNT + 1)) + +if ! $DUMPER --file "$i" --dump - > "$TNAME.out" 2>&1 +then +echo "Error running test $TNAME" +elif ! diff -u "$TNAME.exp" "$TNAME.out" +then +echo "FAIL differences detected in test $TNAME" +else +echo "PASS $TNAME" +TPASS=$((TPASS + 1)) +fi + +done + +echo "nfsconf tests complete. $TPASS of $TCOUNT tests passed" + +if [ $TPASS -lt $TCOUNT ]; then +exit 1 +fi -- 1.8.3.1 -- To unsubscribe from this list: send the line "unsubscribe linux-nfs" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html