1
0
Fork 0
mirror of https://github.com/git/git.git synced 2024-05-10 03:46:08 +02:00
git/t/t0063-string-list.sh
Michael Haggerty eb5f0c7a61 string_list: add a new function, filter_string_list()
This function allows entries that don't match a specified criterion to
be discarded from a string_list while preserving the order of the
remaining entries.

Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-09-12 11:43:25 -07:00

75 lines
1.3 KiB
Bash
Executable File

#!/bin/sh
#
# Copyright (c) 2012 Michael Haggerty
#
test_description='Test string list functionality'
. ./test-lib.sh
test_split () {
cat >expected &&
test_expect_success "split $1 at $2, max $3" "
test-string-list split '$1' '$2' '$3' >actual &&
test_cmp expected actual &&
test-string-list split_in_place '$1' '$2' '$3' >actual &&
test_cmp expected actual
"
}
test_split "foo:bar:baz" ":" "-1" <<EOF
3
[0]: "foo"
[1]: "bar"
[2]: "baz"
EOF
test_split "foo:bar:baz" ":" "0" <<EOF
1
[0]: "foo:bar:baz"
EOF
test_split "foo:bar:baz" ":" "1" <<EOF
2
[0]: "foo"
[1]: "bar:baz"
EOF
test_split "foo:bar:baz" ":" "2" <<EOF
3
[0]: "foo"
[1]: "bar"
[2]: "baz"
EOF
test_split "foo:bar:" ":" "-1" <<EOF
3
[0]: "foo"
[1]: "bar"
[2]: ""
EOF
test_split "" ":" "-1" <<EOF
1
[0]: ""
EOF
test_split ":" ":" "-1" <<EOF
2
[0]: ""
[1]: ""
EOF
test_expect_success "test filter_string_list" '
test "x-" = "x$(test-string-list filter - y)" &&
test "x-" = "x$(test-string-list filter no y)" &&
test yes = "$(test-string-list filter yes y)" &&
test yes = "$(test-string-list filter no:yes y)" &&
test yes = "$(test-string-list filter yes:no y)" &&
test y1:y2 = "$(test-string-list filter y1:y2 y)" &&
test y2:y1 = "$(test-string-list filter y2:y1 y)" &&
test "x-" = "x$(test-string-list filter x1:x2 y)"
'
test_done