diff options
author | Michael Haggerty <mhagger@alum.mit.edu> | 2012-09-12 16:04:46 +0200 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2012-09-12 11:43:25 -0700 |
commit | f103f95b11d087f07c0c48bf784cd9197e18f203 (patch) | |
tree | 97c404425b942675ffedece855f58b5132cd55e5 /t/t0063-string-list.sh | |
parent | 31d5451eed2677531c80177ff9dc8f5285f5a187 (diff) | |
download | git-f103f95b11d087f07c0c48bf784cd9197e18f203.tar.gz |
string_list: add a function string_list_longest_prefix()
Add a function that finds the longest string from a string_list that
is a prefix of a given string.
Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 't/t0063-string-list.sh')
-rwxr-xr-x | t/t0063-string-list.sh | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/t/t0063-string-list.sh b/t/t0063-string-list.sh index dbfc05ebdc..41c8826a74 100755 --- a/t/t0063-string-list.sh +++ b/t/t0063-string-list.sh @@ -17,6 +17,14 @@ test_split () { " } +test_longest_prefix () { + test "$(test-string-list longest_prefix "$1" "$2")" = "$3" +} + +test_no_longest_prefix () { + test_must_fail test-string-list longest_prefix "$1" "$2" +} + test_split "foo:bar:baz" ":" "-1" <<EOF 3 [0]: "foo" @@ -88,4 +96,26 @@ test_expect_success "test remove_duplicates" ' test a:b:c = "$(test-string-list remove_duplicates a:a:a:b:b:b:c:c:c)" ' +test_expect_success "test longest_prefix" ' + test_no_longest_prefix - '' && + test_no_longest_prefix - x && + test_longest_prefix "" x "" && + test_longest_prefix x x x && + test_longest_prefix "" foo "" && + test_longest_prefix : foo "" && + test_longest_prefix f foo f && + test_longest_prefix foo foobar foo && + test_longest_prefix foo foo foo && + test_no_longest_prefix bar foo && + test_no_longest_prefix bar:bar foo && + test_no_longest_prefix foobar foo && + test_longest_prefix foo:bar foo foo && + test_longest_prefix foo:bar bar bar && + test_longest_prefix foo::bar foo foo && + test_longest_prefix foo:foobar foo foo && + test_longest_prefix foobar:foo foo foo && + test_longest_prefix foo: bar "" && + test_longest_prefix :foo bar "" +' + test_done |