]> git.ipfire.org Git - thirdparty/git.git/blobdiff - t/t0063-string-list.sh
string-list: multi-delimiter `string_list_split_in_place()`
[thirdparty/git.git] / t / t0063-string-list.sh
index 46d4839194bb2322b2a8cd9b80618a855e0fb070..1fee6d90102cc6f9b90786a6324f56e7086b91bf 100755 (executable)
@@ -18,6 +18,14 @@ test_split () {
        "
 }
 
+test_split_in_place() {
+       cat >expected &&
+       test_expect_success "split (in place) $1 at $2, max $3" "
+               test-tool string-list split_in_place '$1' '$2' '$3' >actual &&
+               test_cmp expected actual
+       "
+}
+
 test_split "foo:bar:baz" ":" "-1" <<EOF
 3
 [0]: "foo"
@@ -61,6 +69,49 @@ test_split ":" ":" "-1" <<EOF
 [1]: ""
 EOF
 
+test_split_in_place "foo:;:bar:;:baz:;:" ":;" "-1" <<EOF
+10
+[0]: "foo"
+[1]: ""
+[2]: ""
+[3]: "bar"
+[4]: ""
+[5]: ""
+[6]: "baz"
+[7]: ""
+[8]: ""
+[9]: ""
+EOF
+
+test_split_in_place "foo:;:bar:;:baz" ":;" "0" <<EOF
+1
+[0]: "foo:;:bar:;:baz"
+EOF
+
+test_split_in_place "foo:;:bar:;:baz" ":;" "1" <<EOF
+2
+[0]: "foo"
+[1]: ";:bar:;:baz"
+EOF
+
+test_split_in_place "foo:;:bar:;:baz" ":;" "2" <<EOF
+3
+[0]: "foo"
+[1]: ""
+[2]: ":bar:;:baz"
+EOF
+
+test_split_in_place "foo:;:bar:;:" ":;" "-1" <<EOF
+7
+[0]: "foo"
+[1]: ""
+[2]: ""
+[3]: "bar"
+[4]: ""
+[5]: ""
+[6]: ""
+EOF
+
 test_expect_success "test filter_string_list" '
        test "x-" = "x$(test-tool string-list filter - y)" &&
        test "x-" = "x$(test-tool string-list filter no y)" &&