summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKerin Millar <kfm@plushkava.net>2024-07-08 00:16:44 +0100
committerKerin Millar <kfm@plushkava.net>2024-07-08 00:38:27 +0100
commit8ac82c7c7923954765b994de841f82ec2d5456b7 (patch)
treef6a12980e942999e0379c50407745cd4e1aa6e36 /test-functions
parentMove fetch() to experimental (diff)
downloadgentoo-functions-8ac82c7c7923954765b994de841f82ec2d5456b7.tar.gz
gentoo-functions-8ac82c7c7923954765b994de841f82ec2d5456b7.tar.bz2
gentoo-functions-8ac82c7c7923954765b994de841f82ec2d5456b7.zip
Correct the implementation of contains_all()
It was not translating IFS to FS correctly. Have it do so and extend the test suite accordingly. Signed-off-by: Kerin Millar <kfm@plushkava.net>
Diffstat (limited to 'test-functions')
-rwxr-xr-xtest-functions126
1 files changed, 94 insertions, 32 deletions
diff --git a/test-functions b/test-functions
index 59c0b29..dab0aea 100755
--- a/test-functions
+++ b/test-functions
@@ -721,43 +721,105 @@ test_substr() {
test_contains_all() {
set -- \
- ge 1 N/A N/A N/A N/A \
- ge 1 'foo bar' '' N/A N/A \
- ge 1 'foo bar' '' ' ' N/A \
- ge 1 'foo bar' '' ' bar' N/A \
- ge 1 'foo bar' '' ' bar' N/A \
- ge 1 'foo bar' '' 'foo ' N/A \
- ge 1 'foo bar' '' 'foo bar' N/A \
- ge 1 'foo bar' ' ' '' N/A \
- ge 1 'foo bar' ' ' ' ' N/A \
- ge 1 'foo bar' ' ' N/A N/A \
- ge 1 'foo bar' ' bar' '' N/A \
- ge 1 'foo bar' ' bar' N/A N/A \
- ge 1 'foo bar' 'foo ' '' N/A \
- ge 1 'foo bar' 'foo ' ' bar' N/A \
- ge 1 'foo bar' 'foo ' N/A N/A \
- ge 1 'foo bar' 'foo bar' '' N/A \
- ge 1 'foo bar' 'foo bar' N/A N/A \
- ge 1 'foo bar' N/A N/A N/A \
- ge 1 'foo bar' bar foo '' \
- ge 1 'foo bar' bar foo ' ' \
- ge 1 'foo bar' baz bar foo \
- ge 1 'foo bar' fo ba N/A \
- ge 1 'foo bar' foo bar '' \
- ge 1 'foo bar' foo bar ' ' \
- ge 1 'foo bar' foo bar baz \
- ge 1 'foo bar' o a N/A \
- ge 1 'foo bar' oo ar N/A \
- eq 0 'foo bar' foo bar N/A \
- eq 0 'foo bar' bar foo N/A
+ ge 1 default N/A N/A N/A N/A \
+ ge 1 default ' foo bar ' '' N/A N/A \
+ ge 1 default ' foo bar ' '' ' ' N/A \
+ ge 1 default ' foo bar ' '' ' bar' N/A \
+ ge 1 default ' foo bar ' '' 'foo ' N/A \
+ ge 1 default ' foo bar ' '' 'foo bar' N/A \
+ ge 1 default ' foo bar ' ' ' '' N/A \
+ ge 1 default ' foo bar ' ' ' ' ' N/A \
+ ge 1 default ' foo bar ' ' ' N/A N/A \
+ ge 1 default ' foo bar ' ' bar' '' N/A \
+ ge 1 default ' foo bar ' ' bar' N/A N/A \
+ ge 1 default ' foo bar ' 'foo ' '' N/A \
+ ge 1 default ' foo bar ' 'foo ' ' bar' N/A \
+ ge 1 default ' foo bar ' 'foo ' N/A N/A \
+ ge 1 default ' foo bar ' 'foo bar' '' N/A \
+ ge 1 default ' foo bar ' 'foo bar' N/A N/A \
+ ge 1 default ' foo bar ' N/A N/A N/A \
+ ge 1 default ' foo bar ' bar foo '' \
+ ge 1 default ' foo bar ' bar foo ' ' \
+ ge 1 default ' foo bar ' baz bar foo \
+ ge 1 default ' foo bar ' fo ba N/A \
+ ge 1 default ' foo bar ' foo bar '' \
+ ge 1 default ' foo bar ' foo bar ' ' \
+ ge 1 default ' foo bar ' foo bar baz \
+ ge 1 default ' foo bar ' o a N/A \
+ ge 1 default ' foo bar ' oo ar N/A \
+ eq 0 default ' foo bar ' foo bar N/A \
+ eq 0 default ' foo bar ' bar foo N/A \
+ ge 1 ', ' N/A N/A N/A N/A \
+ ge 1 ', ' ' foo bar ' '' N/A N/A \
+ ge 1 ', ' ' foo bar ' '' ' ' N/A \
+ ge 1 ', ' ' foo ,bar, ' '' ',' N/A \
+ ge 1 ', ' ' foo bar ' '' ' bar' N/A \
+ ge 1 ', ' ' foo ,bar ' '' ',bar' N/A \
+ ge 1 ', ' ' foo bar ' '' 'foo ' N/A \
+ ge 1 ', ' ' foo, bar ' '' 'foo,' N/A \
+ ge 1 ', ' ' foo bar ' '' 'foo bar' N/A \
+ ge 1 ', ' ' foo bar ' ' ' '' N/A \
+ ge 1 ', ' ' foo,bar, ' ',' '' N/A \
+ ge 1 ', ' ' foo bar ' ' ' ' ' N/A \
+ ge 1 ', ' ',foo,,bar,' ',' ',' N/A \
+ ge 1 ', ' ' foo bar ' ' ' N/A N/A \
+ ge 1 ', ' ',foo,,bar,' ',' N/A N/A \
+ ge 1 ', ' ' foo bar ' ' bar' '' N/A \
+ ge 1 ', ' 'foo,bar,' ',bar' '' N/A \
+ ge 1 ', ' ' foo bar ' ' bar' N/A N/A \
+ ge 1 ', ' ',foo,,bar,' ',bar' N/A N/A \
+ ge 1 ', ' ' foo bar ' 'foo ' '' N/A \
+ ge 1 ', ' 'foo,bar,' 'foo,' '' N/A \
+ ge 1 ', ' ' foo bar ' 'foo ' ' bar' N/A \
+ ge 1 ', ' ',foo,,bar,' 'foo,' ',bar' N/A \
+ ge 1 ', ' ' foo bar ' 'foo ' N/A N/A \
+ ge 1 ', ' ',foo,,bar,' 'foo,' N/A N/A \
+ ge 1 ', ' ' foo bar ' 'foo bar' '' N/A \
+ ge 1 ', ' 'foo,bar,' 'foo,bar' '' N/A \
+ ge 1 ', ' ' foo bar ' 'foo bar' N/A N/A \
+ ge 1 ', ' ',foo,,bar,' 'foo,,bar' N/A N/A \
+ ge 1 ', ' ' foo bar ' N/A N/A N/A \
+ ge 1 ', ' ' foo bar ' bar foo '' \
+ ge 1 ', ' ' foo,bar ' bar foo '' \
+ ge 1 ', ' ' foo bar ' bar foo ' ' \
+ ge 1 ', ' ' foo,,bar ' bar foo ',' \
+ ge 1 ', ' ' foo bar ' baz bar foo \
+ ge 1 ', ' ',foo,,bar,' baz bar foo \
+ ge 1 ', ' ' foo bar ' fo ba N/A \
+ ge 1 ', ' ',foo,,bar,' fo ba N/A \
+ ge 1 ', ' ' foo bar ' foo bar '' \
+ ge 1 ', ' ' foo,bar ' foo bar '' \
+ ge 1 ', ' ' foo bar ' foo bar ' ' \
+ ge 1 ', ' ' foo,,bar ' foo bar ',' \
+ ge 1 ', ' ' foo bar ' foo bar baz \
+ ge 1 ', ' ',foo,,bar,' foo bar baz \
+ ge 1 ', ' ' foo bar ' o a N/A \
+ ge 1 ', ' ',foo,,bar,' o a N/A \
+ ge 1 ', ' ' foo bar ' oo ar N/A \
+ ge 1 ', ' ',foo,,bar,' oo ar N/A \
+ eq 0 ', ' ' foo bar ' foo bar N/A \
+ eq 0 ', ' ',foo bar,' foo bar N/A \
+ eq 0 ', ' ' foo,,bar ' foo bar N/A \
+ eq 0 ', ' ',foo,,bar,' foo bar N/A \
+ eq 0 ', ' ' foo bar ' bar foo N/A \
+ eq 0 ', ' ',foo bar,' bar foo N/A \
+ eq 0 ', ' ' foo,,bar ' bar foo N/A \
+ eq 0 ', ' ',foo,,bar,' bar foo N/A
callback() {
shift
- test_description="contains_all $(quote_args "$@")"
- contains_all "$@"
+ ifs=$1
+ shift
+ if [ "${ifs}" = "default" ]; then
+ test_description="contains_all $(quote_args "$@")"
+ contains_all "$@"
+ else
+ test_description="IFS='${ifs}' contains_all $(quote_args "$@")"
+ IFS=${ifs} contains_all "$@"
+ fi
}
- iterate_tests 6 "$@"
+ iterate_tests 7 "$@"
}
test_contains_any() {