}
test_valid_repo() {
- git fsck-objects --full > fsck.log &&
+ git fsck --full > fsck.log &&
test `wc -l < fsck.log` = 0
}
cd "$base_dir"
test_expect_success 'preparing second repository' \
-'git_clone -l -s A B && cd B &&
+'git clone -l -s A B && cd B &&
echo "foo bar" > file2 &&
git add file2 &&
git commit -m "next commit" file2 &&
cd "$base_dir"
test_expect_success 'preparing third repository' \
-'git_clone -l -s B C && cd C &&
+'git clone -l -s B C && cd C &&
echo "Goodbye, cruel world" > file3 &&
git add file3 &&
git commit -m "one more" file3 &&
cd "$base_dir"
-test_expect_failure 'creating too deep nesting' \
-'git_clone -l -s C D &&
-git_clone -l -s D E &&
-git_clone -l -s E F &&
-git_clone -l -s F G &&
-git_clone -l -s G H &&
-cd H &&
-test_valid_repo'
+test_expect_success 'creating too deep nesting' \
+'git clone -l -s C D &&
+git clone -l -s D E &&
+git clone -l -s E F &&
+git clone -l -s F G &&
+git clone -l -s G H'
+
+test_expect_success 'invalidity of deepest repository' \
+'cd H && {
+ test_valid_repo
+ test $? -ne 0
+}'
cd "$base_dir"
cd "$base_dir"
-test_expect_failure 'that info/alternates is necessary' \
+test_expect_success 'that info/alternates is necessary' \
'cd C &&
-rm .git/objects/info/alternates &&
-test_valid_repo'
+rm -f .git/objects/info/alternates &&
+! (test_valid_repo)'
cd "$base_dir"
cd "$base_dir"
-test_expect_failure 'that relative alternate is only possible for current dir' \
-'cd D &&
-test_valid_repo'
+test_expect_success \
+ 'that relative alternate is only possible for current dir' '
+ cd D &&
+ ! (test_valid_repo)
+'
cd "$base_dir"
test_done
-