diff --git a/test/run.sh b/test/run.sh index f805f14..cd72f62 100755 --- a/test/run.sh +++ b/test/run.sh @@ -23,6 +23,10 @@ run_test() { local test_name="$1" local test_action="$2" + export DIR_SRC="${HERE}/../src" + export DIR_BIN="${HERE}/../bin" + export DIR_LIB="${HERE}/../lib" + bash "$HERE/util/test-exec.sh" "$test_action" "$test_name" return $? } diff --git a/test/tests/lib.opt.sh b/test/tests/lib.opt.sh new file mode 100644 index 0000000..fdc6f03 --- /dev/null +++ b/test/tests/lib.opt.sh @@ -0,0 +1,22 @@ +set -e +source "${DIR_LIB}/opt.sh" + +setargs pos1 \ + --val1 for_val1 \ + --val2=for_val2 \ + pos2 \ + --flag1 \ + -v4 for_val4 \ + --flag2 \ + +# Run a standard option parsing loop. +while shiftopt; do + case "$OPT" in + --val*) shiftval; printf "LONG_OPTION: \"%s\" with value \"%s\"\n" "${OPT}" "${OPT_VAL}" ;; + --*) printf "LONG_FLAG: \"%s\"\n" "${OPT}" ;; + -v*) shiftval; printf "SHORT_OPTION: \"%s\" with value \"%s\"\n" "${OPT}" "${OPT_VAL}" ;; + -*) printf "SHORT_FLAG: \"%s\"\n" "${OPT}" ;; + *) printf "ARGUMENT: \"%s\"\n" "${OPT}" ;; + esac +done + diff --git a/test/tests/lib.opt.snapshot b/test/tests/lib.opt.snapshot new file mode 100644 index 0000000..fd872ed --- /dev/null +++ b/test/tests/lib.opt.snapshot @@ -0,0 +1,7 @@ +ARGUMENT: "pos1" +LONG_OPTION: "--val1" with value "for_val1" +LONG_OPTION: "--val2" with value "for_val2" +ARGUMENT: "pos2" +LONG_FLAG: "--flag1" +SHORT_OPTION: "-v4" with value "for_val4" +LONG_FLAG: "--flag2"