Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/freebsd/poudriere.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBryan Drewery <bryan@shatow.net>2022-09-15 01:11:36 +0300
committerBryan Drewery <bryan@shatow.net>2022-11-05 18:47:57 +0300
commitf8b61db60225e40614e0be84d2ad99a680d62489 (patch)
treea8f611d25ee982f430119e23d1d839a0965d0dcf
parenta34e2134cc11af2c88333495bd572f0627443462 (diff)
decode_args: Add more test cases
-rw-r--r--test/encode_args.sh42
1 files changed, 42 insertions, 0 deletions
diff --git a/test/encode_args.sh b/test/encode_args.sh
index c53a35eb..8ab1f27f 100644
--- a/test/encode_args.sh
+++ b/test/encode_args.sh
@@ -78,6 +78,20 @@ eval "$(decode_args data)"
[ -f "${TMP}" ]
assert 1 $? "decoding cmdsubst should not fire: ${TMP}"
+# Test 1 leading empty arguments
+encode_args data "" "1"
+assert "${ENCODE_SEP}1" "${data}" "encode 1 trailing args"
+set -- bad bad bad bad bad
+oldIFS="${IFS}"; IFS="${ENCODE_SEP}"; set -- ${data}; IFS="${oldIFS}"; unset oldIFS
+assert 2 $# "decode 1 trailing arguments argcnt"
+assert "" "$1" "decode 1 trailing arguments argument 1"
+assert "1" "$2" "decode 1 trailing arguments argument 2"
+set -- bad bad bad bad bad
+eval "$(decode_args data)"
+assert 2 $# "decode 1 trailing arguments argcnt"
+assert "" "$1" "decode 1 trailing arguments argument 1"
+assert "1" "$2" "decode 1 trailing arguments argument 2"
+
# Test 1 trailing empty arguments
encode_args data "1" ""
assert "1${ENCODE_SEP}${ENCODE_SEP}" "${data}" "encode 1 trailing args"
@@ -92,6 +106,34 @@ assert 2 $# "decode 1 trailing arguments argcnt"
assert "1" "$1" "decode 1 trailing arguments argument 1"
assert "" "$2" "decode 1 trailing arguments argument 2"
+# Test leading, middle, and end empty arguments
+encode_args data "" "" "1" ""
+assert "${ENCODE_SEP}${ENCODE_SEP}1${ENCODE_SEP}${ENCODE_SEP}" "${data}" "encode 3 trailing args"
+set -- bad bad bad bad bad
+oldIFS="${IFS}"; IFS="${ENCODE_SEP}"; set -- ${data}; IFS="${oldIFS}"; unset oldIFS
+assert 4 $# "decode 3 trailing arguments argcnt"
+assert "" "$1" "decode 3 trailing arguments argument 1"
+assert "" "$2" "decode 3 trailing arguments argument 2"
+assert "1" "$3" "decode 3 trailing arguments argument 3"
+assert "" "$4" "decode 3 trailing arguments argument 4"
+set -- bad bad bad bad bad
+eval "$(decode_args data)"
+assert 4 $# "decode 3 trailing arguments argcnt"
+assert "" "$1" "decode 3 trailing arguments argument 1"
+assert "" "$2" "decode 3 trailing arguments argument 2"
+assert "1" "$3" "decode 3 trailing arguments argument 3"
+assert "" "$4" "decode 3 trailing arguments argument 4"
+one=bad
+two=bad
+three=bad
+four=bad
+decode_args_vars "${data}" one two three four
+assert 0 "$?" "decode_args_vars"
+assert "" "$one" "decode 2 argument argument 1"
+assert "" "$two" "decode 2 argument argument 2"
+assert "1" "$three" "decode 2 argument argument 3"
+assert "" "$four" "decode 2 argument argument 4"
+
# Test trailing empty arguments
encode_args data "1" "" "" ""
assert "1${ENCODE_SEP}${ENCODE_SEP}${ENCODE_SEP}${ENCODE_SEP}" "${data}" "encode 3 trailing args"