Skip to content

Commit 161d981

Browse files
pks-tgitster
authored andcommitted
t: move tests exercising the "files" backend
We still have a bunch of tests scattered across our test suites that exercise on-disk files of the "files" backend directly: - t1301 exercises permissions of reflog files when the config "core.sharedRepository" is set. - t1400 exercises whether empty directories in the ref store are handled correctly. - t3200 exercises what happens when there are symlinks in the ref store. - t3400 also exercises what happens when ".git/logs" is a symlink. All of these are inherently low-level tests specific to the "files" backend. Move them into "t0600-reffiles-backend.sh" to reflect this. Signed-off-by: Patrick Steinhardt <[email protected]> Signed-off-by: Junio C Hamano <[email protected]>
1 parent c875e0b commit 161d981

File tree

5 files changed

+91
-91
lines changed

5 files changed

+91
-91
lines changed

t/t0600-reffiles-backend.sh

Lines changed: 91 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -381,4 +381,95 @@ test_expect_success 'log diagnoses bogus HEAD symref' '
381381
test_grep broken stderr
382382
'
383383

384+
test_expect_success 'empty directory removal' '
385+
git branch d1/d2/r1 HEAD &&
386+
git branch d1/r2 HEAD &&
387+
test_path_is_file .git/refs/heads/d1/d2/r1 &&
388+
test_path_is_file .git/logs/refs/heads/d1/d2/r1 &&
389+
git branch -d d1/d2/r1 &&
390+
test_must_fail git show-ref --verify -q refs/heads/d1/d2 &&
391+
test_must_fail git show-ref --verify -q logs/refs/heads/d1/d2 &&
392+
test_path_is_file .git/refs/heads/d1/r2 &&
393+
test_path_is_file .git/logs/refs/heads/d1/r2
394+
'
395+
396+
test_expect_success 'symref empty directory removal' '
397+
git branch e1/e2/r1 HEAD &&
398+
git branch e1/r2 HEAD &&
399+
git checkout e1/e2/r1 &&
400+
test_when_finished "git checkout main" &&
401+
test_path_is_file .git/refs/heads/e1/e2/r1 &&
402+
test_path_is_file .git/logs/refs/heads/e1/e2/r1 &&
403+
git update-ref -d HEAD &&
404+
test_must_fail git show-ref --verify -q refs/heads/e1/e2 &&
405+
test_must_fail git show-ref --verify -q logs/refs/heads/e1/e2 &&
406+
test_path_is_file .git/refs/heads/e1/r2 &&
407+
test_path_is_file .git/logs/refs/heads/e1/r2 &&
408+
test_path_is_file .git/logs/HEAD
409+
'
410+
411+
test_expect_success 'directory not created deleting packed ref' '
412+
git branch d1/d2/r1 HEAD &&
413+
git pack-refs --all &&
414+
test_path_is_missing .git/refs/heads/d1/d2 &&
415+
git update-ref -d refs/heads/d1/d2/r1 &&
416+
test_path_is_missing .git/refs/heads/d1/d2 &&
417+
test_path_is_missing .git/refs/heads/d1
418+
'
419+
420+
test_expect_success SYMLINKS 'git branch -m u v should fail when the reflog for u is a symlink' '
421+
git branch --create-reflog u &&
422+
mv .git/logs/refs/heads/u real-u &&
423+
ln -s real-u .git/logs/refs/heads/u &&
424+
test_must_fail git branch -m u v
425+
'
426+
427+
test_expect_success SYMLINKS 'git branch -m with symlinked .git/refs' '
428+
test_when_finished "rm -rf subdir" &&
429+
git init --bare subdir &&
430+
431+
rm -rfv subdir/refs subdir/objects subdir/packed-refs &&
432+
ln -s ../.git/refs subdir/refs &&
433+
ln -s ../.git/objects subdir/objects &&
434+
ln -s ../.git/packed-refs subdir/packed-refs &&
435+
436+
git -C subdir rev-parse --absolute-git-dir >subdir.dir &&
437+
git rev-parse --absolute-git-dir >our.dir &&
438+
! test_cmp subdir.dir our.dir &&
439+
440+
git -C subdir log &&
441+
git -C subdir branch rename-src &&
442+
git rev-parse rename-src >expect &&
443+
git -C subdir branch -m rename-src rename-dest &&
444+
git rev-parse rename-dest >actual &&
445+
test_cmp expect actual &&
446+
git branch -D rename-dest
447+
'
448+
449+
test_expect_success MINGW,SYMLINKS_WINDOWS 'rebase when .git/logs is a symlink' '
450+
git checkout main &&
451+
mv .git/logs actual_logs &&
452+
cmd //c "mklink /D .git\logs ..\actual_logs" &&
453+
git rebase -f HEAD^ &&
454+
test -L .git/logs &&
455+
rm .git/logs &&
456+
mv actual_logs .git/logs
457+
'
458+
459+
test_expect_success POSIXPERM 'git reflog expire honors core.sharedRepository' '
460+
umask 077 &&
461+
git config core.sharedRepository group &&
462+
git reflog expire --all &&
463+
actual="$(ls -l .git/logs/refs/heads/main)" &&
464+
case "$actual" in
465+
-rw-rw-*)
466+
: happy
467+
;;
468+
*)
469+
echo Ooops, .git/logs/refs/heads/main is not 066x [$actual]
470+
false
471+
;;
472+
esac
473+
'
474+
384475
test_done

t/t1301-shared-repo.sh

Lines changed: 0 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -137,22 +137,6 @@ test_expect_success POSIXPERM 'info/refs respects umask in unshared repo' '
137137
test_cmp expect actual
138138
'
139139

140-
test_expect_success REFFILES,POSIXPERM 'git reflog expire honors core.sharedRepository' '
141-
umask 077 &&
142-
git config core.sharedRepository group &&
143-
git reflog expire --all &&
144-
actual="$(ls -l .git/logs/refs/heads/main)" &&
145-
case "$actual" in
146-
-rw-rw-*)
147-
: happy
148-
;;
149-
*)
150-
echo Ooops, .git/logs/refs/heads/main is not 066x [$actual]
151-
false
152-
;;
153-
esac
154-
'
155-
156140
test_expect_success POSIXPERM 'forced modes' '
157141
test_when_finished "rm -rf new" &&
158142
mkdir -p templates/hooks &&

t/t1400-update-ref.sh

Lines changed: 0 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -288,33 +288,6 @@ test_expect_success "set $m (logged by touch)" '
288288
test $A = $(git show-ref -s --verify $m)
289289
'
290290

291-
test_expect_success REFFILES 'empty directory removal' '
292-
git branch d1/d2/r1 HEAD &&
293-
git branch d1/r2 HEAD &&
294-
test_path_is_file .git/refs/heads/d1/d2/r1 &&
295-
test_path_is_file .git/logs/refs/heads/d1/d2/r1 &&
296-
git branch -d d1/d2/r1 &&
297-
test_must_fail git show-ref --verify -q refs/heads/d1/d2 &&
298-
test_must_fail git show-ref --verify -q logs/refs/heads/d1/d2 &&
299-
test_path_is_file .git/refs/heads/d1/r2 &&
300-
test_path_is_file .git/logs/refs/heads/d1/r2
301-
'
302-
303-
test_expect_success REFFILES 'symref empty directory removal' '
304-
git branch e1/e2/r1 HEAD &&
305-
git branch e1/r2 HEAD &&
306-
git checkout e1/e2/r1 &&
307-
test_when_finished "git checkout main" &&
308-
test_path_is_file .git/refs/heads/e1/e2/r1 &&
309-
test_path_is_file .git/logs/refs/heads/e1/e2/r1 &&
310-
git update-ref -d HEAD &&
311-
test_must_fail git show-ref --verify -q refs/heads/e1/e2 &&
312-
test_must_fail git show-ref --verify -q logs/refs/heads/e1/e2 &&
313-
test_path_is_file .git/refs/heads/e1/r2 &&
314-
test_path_is_file .git/logs/refs/heads/e1/r2 &&
315-
test_path_is_file .git/logs/HEAD
316-
'
317-
318291
cat >expect <<EOF
319292
$Z $A $GIT_COMMITTER_NAME <$GIT_COMMITTER_EMAIL> 1117150200 +0000 Initial Creation
320293
$A $B $GIT_COMMITTER_NAME <$GIT_COMMITTER_EMAIL> 1117150260 +0000 Switch
@@ -1668,13 +1641,4 @@ test_expect_success PIPE 'transaction flushes status updates' '
16681641
test_cmp expected actual
16691642
'
16701643

1671-
test_expect_success REFFILES 'directory not created deleting packed ref' '
1672-
git branch d1/d2/r1 HEAD &&
1673-
git pack-refs --all &&
1674-
test_path_is_missing .git/refs/heads/d1/d2 &&
1675-
git update-ref -d refs/heads/d1/d2/r1 &&
1676-
test_path_is_missing .git/refs/heads/d1/d2 &&
1677-
test_path_is_missing .git/refs/heads/d1
1678-
'
1679-
16801644
test_done

t/t3200-branch.sh

Lines changed: 0 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -836,35 +836,6 @@ test_expect_success 'renaming a symref is not allowed' '
836836
test_ref_missing refs/heads/new-topic
837837
'
838838

839-
test_expect_success SYMLINKS,REFFILES 'git branch -m u v should fail when the reflog for u is a symlink' '
840-
git branch --create-reflog u &&
841-
mv .git/logs/refs/heads/u real-u &&
842-
ln -s real-u .git/logs/refs/heads/u &&
843-
test_must_fail git branch -m u v
844-
'
845-
846-
test_expect_success SYMLINKS,REFFILES 'git branch -m with symlinked .git/refs' '
847-
test_when_finished "rm -rf subdir" &&
848-
git init --bare subdir &&
849-
850-
rm -rfv subdir/refs subdir/objects subdir/packed-refs &&
851-
ln -s ../.git/refs subdir/refs &&
852-
ln -s ../.git/objects subdir/objects &&
853-
ln -s ../.git/packed-refs subdir/packed-refs &&
854-
855-
git -C subdir rev-parse --absolute-git-dir >subdir.dir &&
856-
git rev-parse --absolute-git-dir >our.dir &&
857-
! test_cmp subdir.dir our.dir &&
858-
859-
git -C subdir log &&
860-
git -C subdir branch rename-src &&
861-
git rev-parse rename-src >expect &&
862-
git -C subdir branch -m rename-src rename-dest &&
863-
git rev-parse rename-dest >actual &&
864-
test_cmp expect actual &&
865-
git branch -D rename-dest
866-
'
867-
868839
test_expect_success 'test tracking setup via --track' '
869840
git config remote.local.url . &&
870841
git config remote.local.fetch refs/heads/*:refs/remotes/local/* &&

t/t3400-rebase.sh

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -424,16 +424,6 @@ test_expect_success 'refuse to switch to branch checked out elsewhere' '
424424
test_grep "already used by worktree at" err
425425
'
426426

427-
test_expect_success REFFILES,MINGW,SYMLINKS_WINDOWS 'rebase when .git/logs is a symlink' '
428-
git checkout main &&
429-
mv .git/logs actual_logs &&
430-
cmd //c "mklink /D .git\logs ..\actual_logs" &&
431-
git rebase -f HEAD^ &&
432-
test -L .git/logs &&
433-
rm .git/logs &&
434-
mv actual_logs .git/logs
435-
'
436-
437427
test_expect_success 'rebase when inside worktree subdirectory' '
438428
git init main-wt &&
439429
(

0 commit comments

Comments
 (0)