You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
131 lines
3.1 KiB
131 lines
3.1 KiB
#!/bin/sh |
|
|
|
test_description='tests for ref^{stuff}' |
|
|
|
. ./test-lib.sh |
|
|
|
test_expect_success 'setup' ' |
|
echo blob >a-blob && |
|
git tag -a -m blob blob-tag $(git hash-object -w a-blob) && |
|
mkdir a-tree && |
|
echo moreblobs >a-tree/another-blob && |
|
git add . && |
|
TREE_SHA1=$(git write-tree) && |
|
git tag -a -m tree tree-tag "$TREE_SHA1" && |
|
git commit -m Initial && |
|
git tag -a -m commit commit-tag && |
|
git branch ref && |
|
git checkout master && |
|
echo modified >>a-blob && |
|
git add -u && |
|
git commit -m Modified && |
|
git branch modref && |
|
echo changed! >>a-blob && |
|
git add -u && |
|
git commit -m !Exp && |
|
git branch expref && |
|
echo changed >>a-blob && |
|
git add -u && |
|
git commit -m Changed && |
|
echo changed-again >>a-blob && |
|
git add -u && |
|
git commit -m Changed-again |
|
' |
|
|
|
test_expect_success 'ref^{non-existent}' ' |
|
test_must_fail git rev-parse ref^{non-existent} |
|
' |
|
|
|
test_expect_success 'ref^{}' ' |
|
git rev-parse ref >expected && |
|
git rev-parse ref^{} >actual && |
|
test_cmp expected actual && |
|
git rev-parse commit-tag^{} >actual && |
|
test_cmp expected actual |
|
' |
|
|
|
test_expect_success 'ref^{commit}' ' |
|
git rev-parse ref >expected && |
|
git rev-parse ref^{commit} >actual && |
|
test_cmp expected actual && |
|
git rev-parse commit-tag^{commit} >actual && |
|
test_cmp expected actual && |
|
test_must_fail git rev-parse tree-tag^{commit} && |
|
test_must_fail git rev-parse blob-tag^{commit} |
|
' |
|
|
|
test_expect_success 'ref^{tree}' ' |
|
echo $TREE_SHA1 >expected && |
|
git rev-parse ref^{tree} >actual && |
|
test_cmp expected actual && |
|
git rev-parse commit-tag^{tree} >actual && |
|
test_cmp expected actual && |
|
git rev-parse tree-tag^{tree} >actual && |
|
test_cmp expected actual && |
|
test_must_fail git rev-parse blob-tag^{tree} |
|
' |
|
|
|
test_expect_success 'ref^{tag}' ' |
|
test_must_fail git rev-parse HEAD^{tag} && |
|
git rev-parse commit-tag >expected && |
|
git rev-parse commit-tag^{tag} >actual && |
|
test_cmp expected actual |
|
' |
|
|
|
test_expect_success 'ref^{/.}' ' |
|
git rev-parse master >expected && |
|
git rev-parse master^{/.} >actual && |
|
test_cmp expected actual |
|
' |
|
|
|
test_expect_success 'ref^{/non-existent}' ' |
|
test_must_fail git rev-parse master^{/non-existent} |
|
' |
|
|
|
test_expect_success 'ref^{/Initial}' ' |
|
git rev-parse ref >expected && |
|
git rev-parse master^{/Initial} >actual && |
|
test_cmp expected actual |
|
' |
|
|
|
test_expect_success 'ref^{/!Exp}' ' |
|
test_must_fail git rev-parse master^{/!Exp} |
|
' |
|
|
|
test_expect_success 'ref^{/!}' ' |
|
test_must_fail git rev-parse master^{/!} |
|
' |
|
|
|
test_expect_success 'ref^{/!!Exp}' ' |
|
git rev-parse expref >expected && |
|
git rev-parse master^{/!!Exp} >actual && |
|
test_cmp expected actual |
|
' |
|
|
|
test_expect_success 'ref^{/!-}' ' |
|
test_must_fail git rev-parse master^{/!-} |
|
' |
|
|
|
test_expect_success 'ref^{/!-.}' ' |
|
test_must_fail git rev-parse master^{/!-.} |
|
' |
|
|
|
test_expect_success 'ref^{/!-non-existent}' ' |
|
git rev-parse master >expected && |
|
git rev-parse master^{/!-non-existent} >actual && |
|
test_cmp expected actual |
|
' |
|
|
|
test_expect_success 'ref^{/!-Changed}' ' |
|
git rev-parse expref >expected && |
|
git rev-parse master^{/!-Changed} >actual && |
|
test_cmp expected actual |
|
' |
|
|
|
test_expect_success 'ref^{/!-!Exp}' ' |
|
git rev-parse modref >expected && |
|
git rev-parse expref^{/!-!Exp} >actual && |
|
test_cmp expected actual |
|
' |
|
|
|
test_done
|
|
|