diff options
author | Bryan Drewery <bryan@shatow.net> | 2022-09-15 01:11:36 +0300 |
---|---|---|
committer | Bryan Drewery <bryan@shatow.net> | 2022-11-05 18:47:57 +0300 |
commit | f8b61db60225e40614e0be84d2ad99a680d62489 (patch) | |
tree | a8f611d25ee982f430119e23d1d839a0965d0dcf | |
parent | a34e2134cc11af2c88333495bd572f0627443462 (diff) |
decode_args: Add more test cases
-rw-r--r-- | test/encode_args.sh | 42 |
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" |