diff options
author | Stefan Beller <sbeller@google.com> | 2016-03-15 14:25:50 -0700 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2016-03-16 09:41:07 -0700 |
commit | 8fbb03a180c7113d311988693e96fe016ff59c6d (patch) | |
tree | fdd8e3a0524218aafeaa012d78d33f649a126bf7 /t/t5613-info-alternate.sh | |
parent | 594730e980521310d88006d91f3f14ef5eff1e2b (diff) | |
download | git-8fbb03a180c7113d311988693e96fe016ff59c6d.tar.gz |
clone tests: rename t57* => t56*sb/clone-t57-t56
When trying to find a good spot for testing clone with submodules, I
got confused where to add a new test file. There are both tests in t560*
as well as t57* both testing the clone command. t/README claims the
second digit is to indicate the command, which is inconsistent to the
current naming structure.
Rename all t57* tests to be in t56* to follow the pattern of the digits
as laid out in t/README.
It would have been less work to rename t56* => t57* because there are less
files, but the tests in t56* look more basic and I assumed the higher the
last digits the more complicated niche details are tested, so with the patch
now it looks more in order to me.
Signed-off-by: Stefan Beller <sbeller@google.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 't/t5613-info-alternate.sh')
-rwxr-xr-x | t/t5613-info-alternate.sh | 112 |
1 files changed, 112 insertions, 0 deletions
diff --git a/t/t5613-info-alternate.sh b/t/t5613-info-alternate.sh new file mode 100755 index 0000000000..5a6e49d18d --- /dev/null +++ b/t/t5613-info-alternate.sh @@ -0,0 +1,112 @@ +#!/bin/sh +# +# Copyright (C) 2006 Martin Waitz <tali@admingilde.org> +# + +test_description='test transitive info/alternate entries' +. ./test-lib.sh + +# test that a file is not reachable in the current repository +# but that it is after creating a info/alternate entry +reachable_via() { + alternate="$1" + file="$2" + if git cat-file -e "HEAD:$file"; then return 1; fi + echo "$alternate" >> .git/objects/info/alternate + git cat-file -e "HEAD:$file" +} + +test_valid_repo() { + git fsck --full > fsck.log && + test_line_count = 0 fsck.log +} + +base_dir=`pwd` + +test_expect_success 'preparing first repository' \ +'test_create_repo A && cd A && +echo "Hello World" > file1 && +git add file1 && +git commit -m "Initial commit" file1 && +git repack -a -d && +git prune' + +cd "$base_dir" + +test_expect_success 'preparing second repository' \ +'git clone -l -s A B && cd B && +echo "foo bar" > file2 && +git add file2 && +git commit -m "next commit" file2 && +git repack -a -d -l && +git prune' + +cd "$base_dir" + +test_expect_success 'preparing third repository' \ +'git clone -l -s B C && cd C && +echo "Goodbye, cruel world" > file3 && +git add file3 && +git commit -m "one more" file3 && +git repack -a -d -l && +git prune' + +cd "$base_dir" + +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 --bare -l -s G H' + +test_expect_success 'invalidity of deepest repository' \ +'cd H && { + test_valid_repo + test $? -ne 0 +}' + +cd "$base_dir" + +test_expect_success 'validity of third repository' \ +'cd C && +test_valid_repo' + +cd "$base_dir" + +test_expect_success 'validity of fourth repository' \ +'cd D && +test_valid_repo' + +cd "$base_dir" + +test_expect_success 'breaking of loops' \ +'echo "$base_dir"/B/.git/objects >> "$base_dir"/A/.git/objects/info/alternates&& +cd C && +test_valid_repo' + +cd "$base_dir" + +test_expect_success 'that info/alternates is necessary' \ +'cd C && +rm -f .git/objects/info/alternates && +! (test_valid_repo)' + +cd "$base_dir" + +test_expect_success 'that relative alternate is possible for current dir' \ +'cd C && +echo "../../../B/.git/objects" > .git/objects/info/alternates && +test_valid_repo' + +cd "$base_dir" + +test_expect_success \ + 'that relative alternate is only possible for current dir' ' + cd D && + ! (test_valid_repo) +' + +cd "$base_dir" + +test_done |