Skip to content

Fix direct filesystem access in various test files.

Han-Wen Nienhuys via GitGitGadget git 3 versions – In review

Get series with b4
b4 am [email protected]

Versions newest first · linked by author and title

  1. v3 Latest11 patches 3 repliesIn review
  2. v211 patches 10 repliesSuperseded
  3. v16 patches 2 repliesSuperseded

Patches in v3 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/11t6050: use git-update-ref rather than filesystem accesst/t6050-replace.sh+1 -10 replies
2/11t1503: mark symlink test as REFFILESt/t1503-rev-parse-verify.sh+1 -10 replies
3/11t6120: use git-update-ref rather than filesystem accesst/t6120-describe.sh+4 -20 replies
4/11t3320: use git-symbolic-ref rather than filesystem accesst/t3320-notes-merge-worktrees.sh+7 -50 replies
5/11t2402: use ref-store test helper to create broken symlinkt/t2402-worktree-list.sh+1 -10 replies
6/11t1405: use 'git reflog exists' to check reflog existencet/t1405-main-ref-store.sh+2 -20 replies
7/11t1405: mark test for 'git pack-refs' as REFFILESt/t1405-main-ref-store.sh+10 -40 replies
8/11t1410: mark test as REFFILESt/t1410-reflog.sh+3 -10 replies
9/11t7064: use update-ref -d to remove upstream brancht/t7064-wtstatus-pv2.sh+1 -40 replies
10/11t6500: use "ls -1" to snapshot ref database statet/t6500-gc.sh+3 -20 replies
11/11t6001: avoid direct file system accesst/t6001-rev-list-graft.sh+2 -10 replies

Reviews trailers per patch

No Reviewed-by, Acked-by or Tested-by trailers for v3 yet.

Read the v3 thread

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

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").

@@ 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.)

  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.
+

## t/t6500-gc.sh ##
11: 81e46f95536 = 11: 4a3418b7954 t6001: avoid direct file system access

Signature · 1 line
gitgitgadget