summaryrefslogtreecommitdiff
path: root/test/parseconf.sh
diff options
context:
space:
mode:
authordavidovski <david@davidovski.xyz>2022-02-13 17:52:07 +0000
committerdavidovski <david@davidovski.xyz>2022-02-13 17:52:07 +0000
commit8ce674db7ea92f6b3e551280b462c4f52ac74116 (patch)
treeb9783423018abeedb66fd96916788c4157acbeb9 /test/parseconf.sh
parent355a513ee8ca5ce04a323c0a3fa6f20779dcc4fd (diff)
added test suite for parseconf
Diffstat (limited to 'test/parseconf.sh')
-rwxr-xr-xtest/parseconf.sh121
1 files changed, 121 insertions, 0 deletions
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" ]
+}
+