Merge branch 'sg/split-index-test' into maint
authorJunio C Hamano <gitster@pobox.com>
Wed, 21 Nov 2018 13:57:57 +0000 (22:57 +0900)
committerJunio C Hamano <gitster@pobox.com>
Wed, 21 Nov 2018 13:57:57 +0000 (22:57 +0900)
Test updates.

* sg/split-index-test:
t0090: disable GIT_TEST_SPLIT_INDEX for the test checking split index
t1700-split-index: drop unnecessary 'grep'

1  2 
t/t0090-cache-tree.sh
t/t1700-split-index.sh
diff --combined t/t0090-cache-tree.sh
index 94fcb4a78e661ae793eef54ae98b4821218b1e29,99fe609aadd3ff08c4d01a2b1b209959c7c989ea..504334e552251ed0c1f74536f6fd09ffccda615d
@@@ -161,24 -161,6 +161,24 @@@ test_expect_success PERL 'commit --inte
        test_cache_tree
  '
  
 +test_expect_success PERL 'commit -p with shrinking cache-tree' '
 +      mkdir -p deep/subdir &&
 +      echo content >deep/subdir/file &&
 +      git add deep &&
 +      git commit -m add &&
 +      git rm -r deep &&
 +
 +      before=$(wc -c <.git/index) &&
 +      git commit -m delete -p &&
 +      after=$(wc -c <.git/index) &&
 +
 +      # double check that the index shrank
 +      test $before -gt $after &&
 +
 +      # and that our index was not corrupted
 +      git fsck
 +'
 +
  test_expect_success 'commit in child dir has cache-tree' '
        mkdir dir &&
        >dir/child.t &&
@@@ -261,13 -243,16 +261,16 @@@ test_expect_success 'no phantom error w
  '
  
  test_expect_success 'switching trees does not invalidate shared index' '
-       git update-index --split-index &&
-       >split &&
-       git add split &&
-       test-tool dump-split-index .git/index | grep -v ^own >before &&
-       git commit -m "as-is" &&
-       test-tool dump-split-index .git/index | grep -v ^own >after &&
-       test_cmp before after
+       (
+               sane_unset GIT_TEST_SPLIT_INDEX &&
+               git update-index --split-index &&
+               >split &&
+               git add split &&
+               test-tool dump-split-index .git/index | grep -v ^own >before &&
+               git commit -m "as-is" &&
+               test-tool dump-split-index .git/index | grep -v ^own >after &&
+               test_cmp before after
+       )
  '
  
  test_done
diff --combined t/t1700-split-index.sh
index ae74d2664a4cb490028ba88ca97f07957629ba9a,be22398a8545419f3d12d4d48cb636c5273b5206..f053bf83eb9f716c3dc99a3bdf1a8e3b49802163
@@@ -6,18 -6,8 +6,18 @@@ test_description='split index mode test
  
  # We need total control of index splitting here
  sane_unset GIT_TEST_SPLIT_INDEX
 +# A couple of tests expect the index to have a specific checksum,
 +# but the presence of the optional FSMN extension would interfere
 +# with those checks, so disable it in this test script.
  sane_unset GIT_FSMONITOR_TEST
  
 +# Create a file named as $1 with content read from stdin.
 +# Set the file's mtime to a few seconds in the past to avoid racy situations.
 +create_non_racy_file () {
 +      cat >"$1" &&
 +      test-tool chmtime =-5 "$1"
 +}
 +
  test_expect_success 'enable split index' '
        git config splitIndex.maxPercentChange 100 &&
        git update-index --split-index &&
@@@ -41,7 -31,7 +41,7 @@@
  '
  
  test_expect_success 'add one file' '
 -      : >one &&
 +      create_non_racy_file one &&
        git update-index --add one &&
        git ls-files --stage >ls-files.actual &&
        cat >ls-files.expect <<-EOF &&
@@@ -67,7 -57,7 +67,7 @@@ test_expect_success 'disable split inde
        EOF
        test_cmp ls-files.expect ls-files.actual &&
  
-       BASE=$(test-tool dump-split-index .git/index | grep "^own" | sed "s/own/base/") &&
+       BASE=$(test-tool dump-split-index .git/index | sed -n "s/^own/base/p") &&
        test-tool dump-split-index .git/index | sed "/^own/d" >actual &&
        cat >expect <<-EOF &&
        not a split index
@@@ -93,7 -83,7 +93,7 @@@ test_expect_success 'enable split inde
  '
  
  test_expect_success 'modify original file, base index untouched' '
 -      echo modified >one &&
 +      echo modified | create_non_racy_file one &&
        git update-index one &&
        git ls-files --stage >ls-files.actual &&
        cat >ls-files.expect <<-EOF &&
  '
  
  test_expect_success 'add another file, which stays index' '
 -      : >two &&
 +      create_non_racy_file two &&
        git update-index --add two &&
        git ls-files --stage >ls-files.actual &&
        cat >ls-files.expect <<-EOF &&
@@@ -165,7 -155,7 +165,7 @@@ test_expect_success 'remove file in bas
  '
  
  test_expect_success 'add original file back' '
 -      : >one &&
 +      create_non_racy_file one &&
        git update-index --add one &&
        git ls-files --stage >ls-files.actual &&
        cat >ls-files.expect <<-EOF &&
  '
  
  test_expect_success 'add new file' '
 -      : >two &&
 +      create_non_racy_file two &&
        git update-index --add two &&
        git ls-files --stage >actual &&
        cat >expect <<-EOF &&
@@@ -228,7 -218,7 +228,7 @@@ test_expect_success 'rev-parse --shared
  
  test_expect_success 'set core.splitIndex config variable to true' '
        git config core.splitIndex true &&
 -      : >three &&
 +      create_non_racy_file three &&
        git update-index --add three &&
        git ls-files --stage >ls-files.actual &&
        cat >ls-files.expect <<-EOF &&
@@@ -263,9 -253,9 +263,9 @@@ test_expect_success 'set core.splitInde
        test_cmp expect actual
  '
  
 -test_expect_success 'set core.splitIndex config variable to true' '
 +test_expect_success 'set core.splitIndex config variable back to true' '
        git config core.splitIndex true &&
 -      : >three &&
 +      create_non_racy_file three &&
        git update-index --add three &&
        BASE=$(test-tool dump-split-index .git/index | grep "^base") &&
        test-tool dump-split-index .git/index | sed "/^own/d" >actual &&
        deletions:
        EOF
        test_cmp expect actual &&
 -      : >four &&
 +      create_non_racy_file four &&
        git update-index --add four &&
        test-tool dump-split-index .git/index | sed "/^own/d" >actual &&
        cat >expect <<-EOF &&
  
  test_expect_success 'check behavior with splitIndex.maxPercentChange unset' '
        git config --unset splitIndex.maxPercentChange &&
 -      : >five &&
 +      create_non_racy_file five &&
        git update-index --add five &&
        BASE=$(test-tool dump-split-index .git/index | grep "^base") &&
        test-tool dump-split-index .git/index | sed "/^own/d" >actual &&
        deletions:
        EOF
        test_cmp expect actual &&
 -      : >six &&
 +      create_non_racy_file six &&
        git update-index --add six &&
        test-tool dump-split-index .git/index | sed "/^own/d" >actual &&
        cat >expect <<-EOF &&
  
  test_expect_success 'check splitIndex.maxPercentChange set to 0' '
        git config splitIndex.maxPercentChange 0 &&
 -      : >seven &&
 +      create_non_racy_file seven &&
        git update-index --add seven &&
        BASE=$(test-tool dump-split-index .git/index | grep "^base") &&
        test-tool dump-split-index .git/index | sed "/^own/d" >actual &&
        deletions:
        EOF
        test_cmp expect actual &&
 -      : >eight &&
 +      create_non_racy_file eight &&
        git update-index --add eight &&
        BASE=$(test-tool dump-split-index .git/index | grep "^base") &&
        test-tool dump-split-index .git/index | sed "/^own/d" >actual &&
  '
  
  test_expect_success 'shared index files expire after 2 weeks by default' '
 -      : >ten &&
 +      create_non_racy_file ten &&
        git update-index --add ten &&
        test $(ls .git/sharedindex.* | wc -l) -gt 2 &&
        just_under_2_weeks_ago=$((5-14*86400)) &&
        test-tool chmtime =$just_under_2_weeks_ago .git/sharedindex.* &&
 -      : >eleven &&
 +      create_non_racy_file eleven &&
        git update-index --add eleven &&
        test $(ls .git/sharedindex.* | wc -l) -gt 2 &&
        just_over_2_weeks_ago=$((-1-14*86400)) &&
        test-tool chmtime =$just_over_2_weeks_ago .git/sharedindex.* &&
 -      : >twelve &&
 +      create_non_racy_file twelve &&
        git update-index --add twelve &&
        test $(ls .git/sharedindex.* | wc -l) -le 2
  '
  test_expect_success 'check splitIndex.sharedIndexExpire set to 16 days' '
        git config splitIndex.sharedIndexExpire "16.days.ago" &&
        test-tool chmtime =$just_over_2_weeks_ago .git/sharedindex.* &&
 -      : >thirteen &&
 +      create_non_racy_file thirteen &&
        git update-index --add thirteen &&
        test $(ls .git/sharedindex.* | wc -l) -gt 2 &&
        just_over_16_days_ago=$((-1-16*86400)) &&
        test-tool chmtime =$just_over_16_days_ago .git/sharedindex.* &&
 -      : >fourteen &&
 +      create_non_racy_file fourteen &&
        git update-index --add fourteen &&
        test $(ls .git/sharedindex.* | wc -l) -le 2
  '
@@@ -368,13 -358,13 +368,13 @@@ test_expect_success 'check splitIndex.s
        git config splitIndex.sharedIndexExpire never &&
        just_10_years_ago=$((-365*10*86400)) &&
        test-tool chmtime =$just_10_years_ago .git/sharedindex.* &&
 -      : >fifteen &&
 +      create_non_racy_file fifteen &&
        git update-index --add fifteen &&
        test $(ls .git/sharedindex.* | wc -l) -gt 2 &&
        git config splitIndex.sharedIndexExpire now &&
        just_1_second_ago=-1 &&
        test-tool chmtime =$just_1_second_ago .git/sharedindex.* &&
 -      : >sixteen &&
 +      create_non_racy_file sixteen &&
        git update-index --add sixteen &&
        test $(ls .git/sharedindex.* | wc -l) -le 2
  '
@@@ -389,7 -379,7 +389,7 @@@ d
                # Create one new shared index file
                git config core.sharedrepository "$mode" &&
                git config core.splitIndex true &&
 -              : >one &&
 +              create_non_racy_file one &&
                git update-index --add one &&
                echo "$modebits" >expect &&
                test_modebits .git/index >actual &&