]> git.ipfire.org Git - thirdparty/git.git/commitdiff
t1091: use check_files to reduce boilerplate
authorDerrick Stolee <dstolee@microsoft.com>
Fri, 24 Jan 2020 21:19:31 +0000 (21:19 +0000)
committerJunio C Hamano <gitster@pobox.com>
Fri, 24 Jan 2020 21:26:54 +0000 (13:26 -0800)
When testing the sparse-checkout feature, we need to compare the
contents of the working-directory against some expected output.
Using here-docs was useful in the beginning, but became repetetive
as the test script grew.

Create a check_files helper to make the tests simpler and easier
to extend. It also reduces instances of bad here-doc whitespace.

Signed-off-by: Derrick Stolee <dstolee@microsoft.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
t/t1091-sparse-checkout-builtin.sh

index ff7f8f7a1fac6674286233b43c63d62cfcef448f..e058a20ad6c85d4c4d16519730fe84c49b8e0e33 100755 (executable)
@@ -12,6 +12,13 @@ list_files() {
        (cd "$1" && printf '%s\n' *)
 }
 
+check_files() {
+       list_files "$1" >actual &&
+       shift &&
+       printf "%s\n" $@ >expect &&
+       test_cmp expect actual
+}
+
 test_expect_success 'setup' '
        git init repo &&
        (
@@ -58,9 +65,7 @@ test_expect_success 'git sparse-checkout init' '
        EOF
        test_cmp expect repo/.git/info/sparse-checkout &&
        test_cmp_config -C repo true core.sparsecheckout &&
-       list_files repo >dir  &&
-       echo a >expect &&
-       test_cmp expect dir
+       check_files repo a
 '
 
 test_expect_success 'git sparse-checkout list after init' '
@@ -81,13 +86,7 @@ test_expect_success 'init with existing sparse-checkout' '
                *folder*
        EOF
        test_cmp expect repo/.git/info/sparse-checkout &&
-       list_files repo >dir  &&
-       cat >expect <<-EOF &&
-               a
-               folder1
-               folder2
-       EOF
-       test_cmp expect dir
+       check_files repo a folder1 folder2
 '
 
 test_expect_success 'clone --sparse' '
@@ -98,9 +97,7 @@ test_expect_success 'clone --sparse' '
                !/*/
        EOF
        test_cmp expect actual &&
-       list_files clone >dir &&
-       echo a >expect &&
-       test_cmp expect dir
+       check_files clone a
 '
 
 test_expect_success 'set enables config' '
@@ -127,13 +124,7 @@ test_expect_success 'set sparse-checkout using builtin' '
        git -C repo sparse-checkout list >actual &&
        test_cmp expect actual &&
        test_cmp expect repo/.git/info/sparse-checkout &&
-       list_files repo >dir  &&
-       cat >expect <<-EOF &&
-               a
-               folder1
-               folder2
-       EOF
-       test_cmp expect dir
+       check_files repo a folder1 folder2
 '
 
 test_expect_success 'set sparse-checkout using --stdin' '
@@ -147,13 +138,7 @@ test_expect_success 'set sparse-checkout using --stdin' '
        git -C repo sparse-checkout list >actual &&
        test_cmp expect actual &&
        test_cmp expect repo/.git/info/sparse-checkout &&
-       list_files repo >dir  &&
-       cat >expect <<-EOF &&
-               a
-               folder1
-               folder2
-       EOF
-       test_cmp expect dir
+       check_files repo "a folder1 folder2"
 '
 
 test_expect_success 'cone mode: match patterns' '
@@ -162,13 +147,7 @@ test_expect_success 'cone mode: match patterns' '
        git -C repo read-tree -mu HEAD 2>err &&
        test_i18ngrep ! "disabling cone patterns" err &&
        git -C repo reset --hard &&
-       list_files repo >dir  &&
-       cat >expect <<-EOF &&
-               a
-               folder1
-               folder2
-       EOF
-       test_cmp expect dir
+       check_files repo a folder1 folder2
 '
 
 test_expect_success 'cone mode: warn on bad pattern' '
@@ -185,14 +164,7 @@ test_expect_success 'sparse-checkout disable' '
        test_path_is_file repo/.git/info/sparse-checkout &&
        git -C repo config --list >config &&
        test_must_fail git config core.sparseCheckout &&
-       list_files repo >dir &&
-       cat >expect <<-EOF &&
-               a
-               deep
-               folder1
-               folder2
-       EOF
-       test_cmp expect dir
+       check_files repo a deep folder1 folder2
 '
 
 test_expect_success 'cone mode: init and set' '
@@ -204,24 +176,9 @@ test_expect_success 'cone mode: init and set' '
        test_cmp expect dir &&
        git -C repo sparse-checkout set deep/deeper1/deepest/ 2>err &&
        test_must_be_empty err &&
-       list_files repo >dir  &&
-       cat >expect <<-EOF &&
-               a
-               deep
-       EOF
-       test_cmp expect dir &&
-       list_files repo/deep >dir  &&
-       cat >expect <<-EOF &&
-               a
-               deeper1
-       EOF
-       test_cmp expect dir &&
-       list_files repo/deep/deeper1 >dir  &&
-       cat >expect <<-EOF &&
-               a
-               deepest
-       EOF
-       test_cmp expect dir &&
+       check_files repo a deep &&
+       check_files repo/deep a deeper1 &&
+       check_files repo/deep/deeper1 a deepest &&
        cat >expect <<-EOF &&
                /*
                !/*/
@@ -237,13 +194,7 @@ test_expect_success 'cone mode: init and set' '
                folder2
        EOF
        test_must_be_empty err &&
-       cat >expect <<-EOF &&
-               a
-               folder1
-               folder2
-       EOF
-       list_files repo >dir &&
-       test_cmp expect dir
+       check_files repo a folder1 folder2
 '
 
 test_expect_success 'cone mode: list' '
@@ -275,13 +226,7 @@ test_expect_success 'revert to old sparse-checkout on bad update' '
        test_must_fail git -C repo sparse-checkout set deep/deeper1 2>err &&
        test_i18ngrep "cannot set sparse-checkout patterns" err &&
        test_cmp repo/.git/info/sparse-checkout expect &&
-       list_files repo/deep >dir &&
-       cat >expect <<-EOF &&
-               a
-               deeper1
-               deeper2
-       EOF
-       test_cmp dir expect
+       check_files repo/deep a deeper1 deeper2
 '
 
 test_expect_success 'revert to old sparse-checkout on empty update' '
@@ -332,12 +277,7 @@ test_expect_success 'cone mode: set with core.ignoreCase=true' '
                /folder1/
        EOF
        test_cmp expect repo/.git/info/sparse-checkout &&
-       list_files repo >dir &&
-       cat >expect <<-EOF &&
-               a
-               folder1
-       EOF
-       test_cmp expect dir
+       check_files repo a folder1
 '
 
 test_expect_success 'interaction with submodules' '
@@ -351,21 +291,8 @@ test_expect_success 'interaction with submodules' '
                git sparse-checkout init --cone &&
                git sparse-checkout set folder1
        ) &&
-       list_files super >dir &&
-       cat >expect <<-\EOF &&
-               a
-               folder1
-               modules
-       EOF
-       test_cmp expect dir &&
-       list_files super/modules/child >dir &&
-       cat >expect <<-\EOF &&
-               a
-               deep
-               folder1
-               folder2
-       EOF
-       test_cmp expect dir
+       check_files super a folder1 modules &&
+       check_files super/modules/child a deep folder1 folder2
 '
 
 test_done