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.
80 lines
2.0 KiB
80 lines
2.0 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 |
|
' |
|
|
|
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_done
|
|
|