From 8ce674db7ea92f6b3e551280b462c4f52ac74116 Mon Sep 17 00:00:00 2001 From: davidovski Date: Sun, 13 Feb 2022 17:52:07 +0000 Subject: added test suite for parseconf --- test/external.conf | 4 ++ test/parseconf.sh | 121 +++++++++++++++++++++++++++++++++++++++++++++++++++++ test/simple.conf | 18 ++++++++ test/test.conf | 2 + 4 files changed, 145 insertions(+) create mode 100644 test/external.conf create mode 100755 test/parseconf.sh create mode 100644 test/simple.conf create mode 100644 test/test.conf (limited to 'test') diff --git a/test/external.conf b/test/external.conf new file mode 100644 index 0000000..05f61d8 --- /dev/null +++ b/test/external.conf @@ -0,0 +1,4 @@ +external1 value +external2 value +external3 value +external4 value diff --git a/test/parseconf.sh b/test/parseconf.sh new file mode 100755 index 0000000..3095e18 --- /dev/null +++ b/test/parseconf.sh @@ -0,0 +1,121 @@ +#!/bin/sh + +PARSECONF="./src/parseconf" + +SIMPLECONF="./test/simple.conf" + +test_simple_loading () { + cat ${SIMPLECONF} | ${PARSECONF} > /dev/null +} + +test_simple_parsing () { + config=" +key value + " + retval=$(${PARSECONF} key <<< "$config") + [ "$retval" = "key:value" ] +} + +test_bad_formatting () { + config=" + key value + " + retval=$(${PARSECONF} key <<< "$config") + [ "$retval" = "key:value" ] +} + +test_unecessary_semicolons () { + config=" +key value; + " + retval=$(${PARSECONF} key <<< "$config") + [ "$retval" = "key:value" ] +} + +test_extra_unecessary_semicolons () { + config=" +key value;;;;; + " + retval=$(${PARSECONF} key <<< "$config") + [ "$retval" = "key:value" ] +} + +test_mutlikey_parsing() { + config=" +key1 value1 +key2 value2 +key3 value3 +key4 value4 + " + retval=$(${PARSECONF} key2 <<< "$config") + [ "$retval" = "key2:value2" ] +} + + +test_list_parsing() { + config=" +list [ + a + b + c + d + e +] + " + retval=$(${PARSECONF} list <<< "$config") + [ "$retval" = "list:a b c d e " ] +} + +test_dict_parsing() { + config=" +dict { + a 1 + b 2 + c 3 + d 4 + e 5 +} + " + retval=$(${PARSECONF} dict.a <<< "$config") + [ "$retval" = "dict.a:1" ] +} + +test_file_input () { + retval=$(${PARSECONF} -f ${SIMPLECONF} key2) + [ "$retval" = "key2:value2" ] +} + +test_include () { + config=" +include test/simple.conf + " + retval=$(${PARSECONF} key2 <<< "$config") + [ "$retval" = "key2:value2" ] +} + +test_glob_matching () { + config=" +dict { + a 1 + b 2 + c 3 + d 4 +} + " + retval=$(${PARSECONF} "dict.*" <<< "$config" | wc -l) + [ "$retval" = "4" ] +} + +test_glob_max_count () { + config=" +dict { + a 1 + b 2 + c 3 + d 4 +} + " + retval=$(${PARSECONF} -c 1 "dict.*" <<< "$config") + [ "$retval" = "dict.d:4" ] +} + diff --git a/test/simple.conf b/test/simple.conf new file mode 100644 index 0000000..605f3f5 --- /dev/null +++ b/test/simple.conf @@ -0,0 +1,18 @@ +key1 value1 +key2 value2 +key3 value3 +key4 value4 + +dict { + a 1 + b 2 + c 3 + d 4 +} + +list [ + alpha + beta + gamma + delta +] diff --git a/test/test.conf b/test/test.conf new file mode 100644 index 0000000..139597f --- /dev/null +++ b/test/test.conf @@ -0,0 +1,2 @@ + + -- cgit v1.2.1