Skip to content

Commit e0d769d

Browse files
pcloudsgitster
authored andcommitted
t1510: setup case #31
Signed-off-by: Nguyễn Thái Ngọc Duy <[email protected]> Signed-off-by: Junio C Hamano <[email protected]>
1 parent a2f509e commit e0d769d

File tree

1 file changed

+269
-0
lines changed

1 file changed

+269
-0
lines changed

t/t1510-repo-setup.sh

Lines changed: 269 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4260,4 +4260,273 @@ test_expect_failure '#30: at root' '
42604260
)
42614261
'
42624262

4263+
#
4264+
# case #31
4265+
#
4266+
############################################################
4267+
#
4268+
# Input:
4269+
#
4270+
# - GIT_WORK_TREE is set
4271+
# - GIT_DIR is set
4272+
# - core.worktree is set
4273+
# - .git is a file
4274+
# - core.bare is set
4275+
#
4276+
# Output:
4277+
#
4278+
# #23 except git_dir is set according to .git file
4279+
4280+
test_expect_success '#31: setup' '
4281+
unset GIT_DIR GIT_WORK_TREE &&
4282+
mkdir 31 31/sub 31/sub/sub 31.wt 31.wt/sub 31/wt 31/wt/sub &&
4283+
cd 31 &&
4284+
git init &&
4285+
git config core.bare true &&
4286+
git config core.worktree non-existent &&
4287+
mv .git ../31.git &&
4288+
echo gitdir: ../31.git >.git &&
4289+
cd ..
4290+
'
4291+
4292+
test_expect_failure '#31: GIT_DIR(rel), GIT_WORK_TREE=root at root' '
4293+
cat >31/expected <<EOF &&
4294+
setup: git_dir: $TRASH_DIRECTORY/31.git
4295+
setup: worktree: $TRASH_DIRECTORY/31
4296+
setup: cwd: $TRASH_DIRECTORY/31
4297+
setup: prefix: (null)
4298+
EOF
4299+
test_repo 31 .git "$TRASH_DIRECTORY/31"
4300+
'
4301+
4302+
test_expect_failure '#31: GIT_DIR(rel), GIT_WORK_TREE=root(rel) at root' '
4303+
cat >31/expected <<EOF &&
4304+
setup: git_dir: $TRASH_DIRECTORY/31.git
4305+
setup: worktree: $TRASH_DIRECTORY/31
4306+
setup: cwd: $TRASH_DIRECTORY/31
4307+
setup: prefix: (null)
4308+
EOF
4309+
test_repo 31 .git .
4310+
'
4311+
4312+
test_expect_failure '#31: GIT_DIR, GIT_WORK_TREE=root at root' '
4313+
cat >31/expected <<EOF &&
4314+
setup: git_dir: $TRASH_DIRECTORY/31.git
4315+
setup: worktree: $TRASH_DIRECTORY/31
4316+
setup: cwd: $TRASH_DIRECTORY/31
4317+
setup: prefix: (null)
4318+
EOF
4319+
test_repo 31 "$TRASH_DIRECTORY/31/.git" "$TRASH_DIRECTORY/31"
4320+
'
4321+
4322+
test_expect_failure '#31: GIT_DIR, GIT_WORK_TREE=root(rel) at root' '
4323+
cat >31/expected <<EOF &&
4324+
setup: git_dir: $TRASH_DIRECTORY/31.git
4325+
setup: worktree: $TRASH_DIRECTORY/31
4326+
setup: cwd: $TRASH_DIRECTORY/31
4327+
setup: prefix: (null)
4328+
EOF
4329+
test_repo 31 "$TRASH_DIRECTORY/31/.git" .
4330+
'
4331+
4332+
test_expect_failure '#31: GIT_DIR(rel), GIT_WORKTREE=root in subdir' '
4333+
cat >31/sub/sub/expected <<EOF &&
4334+
setup: git_dir: $TRASH_DIRECTORY/31.git
4335+
setup: worktree: $TRASH_DIRECTORY/31
4336+
setup: cwd: $TRASH_DIRECTORY/31
4337+
setup: prefix: sub/sub/
4338+
EOF
4339+
test_repo 31/sub/sub ../../.git "$TRASH_DIRECTORY/31"
4340+
'
4341+
4342+
test_expect_failure '#31: GIT_DIR(rel), GIT_WORKTREE=root(rel) in subdir' '
4343+
cat >31/sub/sub/expected <<EOF &&
4344+
setup: git_dir: $TRASH_DIRECTORY/31.git
4345+
setup: worktree: $TRASH_DIRECTORY/31
4346+
setup: cwd: $TRASH_DIRECTORY/31
4347+
setup: prefix: sub/sub/
4348+
EOF
4349+
test_repo 31/sub/sub ../../.git ../..
4350+
'
4351+
4352+
test_expect_failure '#31: GIT_DIR, GIT_WORKTREE=root in subdir' '
4353+
cat >31/sub/expected <<EOF &&
4354+
setup: git_dir: $TRASH_DIRECTORY/31.git
4355+
setup: worktree: $TRASH_DIRECTORY/31
4356+
setup: cwd: $TRASH_DIRECTORY/31
4357+
setup: prefix: sub/
4358+
EOF
4359+
test_repo 31/sub "$TRASH_DIRECTORY/31/.git" "$TRASH_DIRECTORY/31"
4360+
'
4361+
4362+
test_expect_failure '#31: GIT_DIR, GIT_WORKTREE=root(rel) in subdir' '
4363+
cat >31/sub/sub/expected <<EOF &&
4364+
setup: git_dir: $TRASH_DIRECTORY/31.git
4365+
setup: worktree: $TRASH_DIRECTORY/31
4366+
setup: cwd: $TRASH_DIRECTORY/31
4367+
setup: prefix: sub/sub/
4368+
EOF
4369+
test_repo 31/sub/sub "$TRASH_DIRECTORY/31/.git" ../..
4370+
'
4371+
4372+
test_expect_failure '#31: GIT_DIR(rel), GIT_WORK_TREE=wt at root' '
4373+
cat >31/expected <<EOF &&
4374+
setup: git_dir: $TRASH_DIRECTORY/31.git
4375+
setup: worktree: $TRASH_DIRECTORY/31/wt
4376+
setup: cwd: $TRASH_DIRECTORY/31
4377+
setup: prefix: (null)
4378+
EOF
4379+
test_repo 31 .git "$TRASH_DIRECTORY/31/wt"
4380+
'
4381+
4382+
test_expect_failure '#31: GIT_DIR(rel), GIT_WORK_TREE=wt(rel) at root' '
4383+
cat >31/expected <<EOF &&
4384+
setup: git_dir: $TRASH_DIRECTORY/31.git
4385+
setup: worktree: $TRASH_DIRECTORY/31/wt
4386+
setup: cwd: $TRASH_DIRECTORY/31
4387+
setup: prefix: (null)
4388+
EOF
4389+
test_repo 31 .git wt
4390+
'
4391+
4392+
test_expect_failure '#31: GIT_DIR, GIT_WORK_TREE=wt(rel) at root' '
4393+
cat >31/expected <<EOF &&
4394+
setup: git_dir: $TRASH_DIRECTORY/31.git
4395+
setup: worktree: $TRASH_DIRECTORY/31/wt
4396+
setup: cwd: $TRASH_DIRECTORY/31
4397+
setup: prefix: (null)
4398+
EOF
4399+
test_repo 31 "$TRASH_DIRECTORY/31/.git" wt
4400+
'
4401+
4402+
test_expect_failure '#31: GIT_DIR, GIT_WORK_TREE=wt at root' '
4403+
cat >31/expected <<EOF &&
4404+
setup: git_dir: $TRASH_DIRECTORY/31.git
4405+
setup: worktree: $TRASH_DIRECTORY/31/wt
4406+
setup: cwd: $TRASH_DIRECTORY/31
4407+
setup: prefix: (null)
4408+
EOF
4409+
test_repo 31 "$TRASH_DIRECTORY/31/.git" "$TRASH_DIRECTORY/31/wt"
4410+
'
4411+
4412+
test_expect_failure '#31: GIT_DIR(rel), GIT_WORK_TREE=wt in subdir' '
4413+
cat >31/sub/sub/expected <<EOF &&
4414+
setup: git_dir: $TRASH_DIRECTORY/31.git
4415+
setup: worktree: $TRASH_DIRECTORY/31/wt
4416+
setup: cwd: $TRASH_DIRECTORY/31/sub/sub
4417+
setup: prefix: (null)
4418+
EOF
4419+
test_repo 31/sub/sub ../../.git "$TRASH_DIRECTORY/31/wt"
4420+
'
4421+
4422+
test_expect_failure '#31: GIT_DIR(rel), GIT_WORK_TREE=wt(rel) in subdir' '
4423+
cat >31/sub/sub/expected <<EOF &&
4424+
setup: git_dir: $TRASH_DIRECTORY/31.git
4425+
setup: worktree: $TRASH_DIRECTORY/31/wt
4426+
setup: cwd: $TRASH_DIRECTORY/31/sub/sub
4427+
setup: prefix: (null)
4428+
EOF
4429+
test_repo 31/sub/sub ../../.git ../../wt
4430+
'
4431+
4432+
test_expect_failure '#31: GIT_DIR, GIT_WORK_TREE=wt(rel) in subdir' '
4433+
cat >31/sub/sub/expected <<EOF &&
4434+
setup: git_dir: $TRASH_DIRECTORY/31.git
4435+
setup: worktree: $TRASH_DIRECTORY/31/wt
4436+
setup: cwd: $TRASH_DIRECTORY/31/sub/sub
4437+
setup: prefix: (null)
4438+
EOF
4439+
test_repo 31/sub/sub "$TRASH_DIRECTORY/31/.git" ../../wt
4440+
'
4441+
4442+
test_expect_failure '#31: GIT_DIR, GIT_WORK_TREE=wt in subdir' '
4443+
cat >31/sub/sub/expected <<EOF &&
4444+
setup: git_dir: $TRASH_DIRECTORY/31.git
4445+
setup: worktree: $TRASH_DIRECTORY/31/wt
4446+
setup: cwd: $TRASH_DIRECTORY/31/sub/sub
4447+
setup: prefix: (null)
4448+
EOF
4449+
test_repo 31/sub/sub "$TRASH_DIRECTORY/31/.git" "$TRASH_DIRECTORY/31/wt"
4450+
'
4451+
4452+
test_expect_failure '#31: GIT_DIR(rel), GIT_WORK_TREE=.. at root' '
4453+
cat >31/expected <<EOF &&
4454+
setup: git_dir: $TRASH_DIRECTORY/31.git
4455+
setup: worktree: $TRASH_DIRECTORY
4456+
setup: cwd: $TRASH_DIRECTORY
4457+
setup: prefix: 31/
4458+
EOF
4459+
test_repo 31 .git "$TRASH_DIRECTORY"
4460+
'
4461+
4462+
test_expect_failure '#31: GIT_DIR(rel), GIT_WORK_TREE=..(rel) at root' '
4463+
cat >31/expected <<EOF &&
4464+
setup: git_dir: $TRASH_DIRECTORY/31.git
4465+
setup: worktree: $TRASH_DIRECTORY
4466+
setup: cwd: $TRASH_DIRECTORY
4467+
setup: prefix: 31/
4468+
EOF
4469+
test_repo 31 .git ..
4470+
'
4471+
4472+
test_expect_failure '#31: GIT_DIR, GIT_WORK_TREE=..(rel) at root' '
4473+
cat >31/expected <<EOF &&
4474+
setup: git_dir: $TRASH_DIRECTORY/31.git
4475+
setup: worktree: $TRASH_DIRECTORY
4476+
setup: cwd: $TRASH_DIRECTORY
4477+
setup: prefix: 31/
4478+
EOF
4479+
test_repo 31 "$TRASH_DIRECTORY/31/.git" ..
4480+
'
4481+
4482+
test_expect_failure '#31: GIT_DIR, GIT_WORK_TREE=.. at root' '
4483+
cat >31/expected <<EOF &&
4484+
setup: git_dir: $TRASH_DIRECTORY/31.git
4485+
setup: worktree: $TRASH_DIRECTORY
4486+
setup: cwd: $TRASH_DIRECTORY
4487+
setup: prefix: 31/
4488+
EOF
4489+
test_repo 31 "$TRASH_DIRECTORY/31/.git" "$TRASH_DIRECTORY"
4490+
'
4491+
4492+
test_expect_failure '#31: GIT_DIR(rel), GIT_WORK_TREE=.. in subdir' '
4493+
cat >31/sub/sub/expected <<EOF &&
4494+
setup: git_dir: $TRASH_DIRECTORY/31.git
4495+
setup: worktree: $TRASH_DIRECTORY
4496+
setup: cwd: $TRASH_DIRECTORY
4497+
setup: prefix: 31/sub/sub/
4498+
EOF
4499+
test_repo 31/sub/sub ../../.git "$TRASH_DIRECTORY"
4500+
'
4501+
4502+
test_expect_failure '#31: GIT_DIR(rel), GIT_WORK_TREE=..(rel) in subdir' '
4503+
cat >31/sub/sub/expected <<EOF &&
4504+
setup: git_dir: $TRASH_DIRECTORY/31.git
4505+
setup: worktree: $TRASH_DIRECTORY
4506+
setup: cwd: $TRASH_DIRECTORY
4507+
setup: prefix: 31/sub/sub/
4508+
EOF
4509+
test_repo 31/sub/sub ../../.git ../../..
4510+
'
4511+
4512+
test_expect_failure '#31: GIT_DIR, GIT_WORK_TREE=..(rel) in subdir' '
4513+
cat >31/sub/sub/expected <<EOF &&
4514+
setup: git_dir: $TRASH_DIRECTORY/31.git
4515+
setup: worktree: $TRASH_DIRECTORY
4516+
setup: cwd: $TRASH_DIRECTORY
4517+
setup: prefix: 31/sub/sub/
4518+
EOF
4519+
test_repo 31/sub/sub "$TRASH_DIRECTORY/31/.git" ../../../
4520+
'
4521+
4522+
test_expect_failure '#31: GIT_DIR, GIT_WORK_TREE=.. in subdir' '
4523+
cat >31/sub/sub/expected <<EOF &&
4524+
setup: git_dir: $TRASH_DIRECTORY/31.git
4525+
setup: worktree: $TRASH_DIRECTORY
4526+
setup: cwd: $TRASH_DIRECTORY
4527+
setup: prefix: 31/sub/sub/
4528+
EOF
4529+
test_repo 31/sub/sub "$TRASH_DIRECTORY/31/.git" "$TRASH_DIRECTORY"
4530+
'
4531+
42634532
test_done

0 commit comments

Comments
 (0)