Subject: [PATCH v3 00/11] Fix direct filesystem access in various test files.

From: "Han-Wen Nienhuys via GitGitGadget" <[email-masked]>
Date: Mon, 02 Aug 2021 16:53:25 +0000

This fixes a few test failures in the reftable series.

Han-Wen Nienhuys (11):
  t6050: use git-update-ref rather than filesystem access
  t1503: mark symlink test as REFFILES
  t6120: use git-update-ref rather than filesystem access
  t3320: use git-symbolic-ref rather than filesystem access
  t2402: use ref-store test helper to create broken symlink
  t1405: use 'git reflog exists' to check reflog existence
  t1405: mark test for 'git pack-refs' as REFFILES
  t1410: mark test as REFFILES
  t7064: use update-ref -d to remove upstream branch
  t6500: use "ls -1" to snapshot ref database state
  t6001: avoid direct file system access

 t/t1405-main-ref-store.sh        | 18 ++++++++++++------
 t/t1410-reflog.sh                |  4 +++-
 t/t1503-rev-parse-verify.sh      |  2 +-
 t/t2402-worktree-list.sh         |  2 +-
 t/t3320-notes-merge-worktrees.sh | 12 +++++++-----
 t/t6001-rev-list-graft.sh        |  3 ++-
 t/t6050-replace.sh               |  2 +-
 t/t6120-describe.sh              |  6 ++++--
 t/t6500-gc.sh                    |  5 +++--
 t/t7064-wtstatus-pv2.sh          |  5 +----
 10 files changed, 35 insertions(+), 24 deletions(-)

base-commit: 940fe202adcbf9fa1825c648d97cbe1b90d26aec
Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-git-1052%2Fhanwen%2Ftest-fixes-v3-v3
Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-git-1052/hanwen/test-fixes-v3-v3
Pull-Request: https://github.com/git/git/pull/1052

Range-diff vs v2:

  1:  d7616038d88 =  1:  ad9fd570024 t6050: use git-update-ref rather than filesystem access
  2:  cbd2128c331 =  2:  b03be9ede7f t1503: mark symlink test as REFFILES
  3:  cbf90c13e5b =  3:  b62c3175c4c t6120: use git-update-ref rather than filesystem access
  4:  7b98d092811 =  4:  22bff0b0791 t3320: use git-symbolic-ref rather than filesystem access
  5:  0047266de6b =  5:  ceca139bcfc t2402: use ref-store test helper to create broken symlink
  6:  eb2c53d19cf =  6:  add97ad8d0b t1405: use 'git reflog exists' to check reflog existence
  7:  05dead16f1c !  7:  5f9a01fd86a t1405: mark test for 'git pack-refs' as REFFILES
     @@ Metadata
       ## Commit message ##
          t1405: mark test for 'git pack-refs' as REFFILES
      
     -    The outcome of the pack-refs operation is not checked. This was apparently
     -    forgotten in the commit introducing this test: 16feb99d (Mar 26 2017, "t1405:
     -    some basic tests on main ref store").
     +    The tests verifies that "pack-refs" causes loose refs to be packed. As both
     +    loose and packed refs are concepts specific to the files backend, mark the test
     +    as REFFILES.
      
     -    I tried adding the obvious check this, but it seems to fail on the freebsd_12
     -    builder.
     +    Check the outcome of the pack-refs operation. This was apparently forgotten in
     +    the commit introducing this test: 16feb99d (Mar 26 2017, "t1405: some basic
     +    tests on main ref store").
      
          Signed-off-by: Han-Wen Nienhuys <[email-masked]>
      
     @@ t/t1405-main-ref-store.sh: export GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME
      +test_expect_success REFFILES 'pack_refs(PACK_REFS_ALL | PACK_REFS_PRUNE)' '
       	N=`find .git/refs -type f | wc -l` &&
       	test "$N" != 0 &&
     - 	$RUN pack-refs 3 &&
     +-	$RUN pack-refs 3 &&
     +-	N=`find .git/refs -type f | wc -l`
     ++	ALL_OR_PRUNE_FLAG=3 &&
     ++	$RUN pack-refs ${ALL_OR_PRUNE_FLAG} &&
     ++	N=`find .git/refs -type f` &&
     ++	test -z "$N"
     + '
     + 
     + test_expect_success 'create_symref(FOO, refs/heads/main)' '
  8:  f931a26de58 !  8:  45bc0772c64 t1410: mark test as REFFILES
     @@ Metadata
       ## Commit message ##
          t1410: mark test as REFFILES
      
     -    In reftable, one cannot take a lock on an individual ref.
     +    This test takes a lock on the target of a symref, and then verifies that it is
     +    possible to expire the symref's reflog. In reftable, one can only take a global
     +    lock (which would prevent the symref reflog from being expired altogether.)
      
          Signed-off-by: Han-Wen Nienhuys <[email-masked]>
      
  9:  3685ba90f60 =  9:  1326e99a1fd t7064: use update-ref -d to remove upstream branch
 10:  ccdbf3749fe ! 10:  55eb2094811 t6500: use "ls -1" to snapshot ref database state
     @@ Commit message
          By doing ls -1 .git/{reftable,refs/heads}, we can capture changes to both
          reftable and packed/loose ref storage.
      
     +    This relies on the fact that git-pack-refs (which we're looking for here)
     +    changes the number (loose/packed storage) and/or names (reftable) files used for
     +    ref storage.
     +
          Signed-off-by: Han-Wen Nienhuys <[email-masked]>
      
       ## t/t6500-gc.sh ##
 11:  81e46f95536 = 11:  4a3418b7954 t6001: avoid direct file system access

-- 
gitgitgadget