diff options
author | Junio C Hamano <gitster@pobox.com> | 2009-10-30 20:07:33 -0700 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2009-10-30 20:07:33 -0700 |
commit | 68d00fd83421a0494c66512e4c66829f4863693d (patch) | |
tree | 4f902d832bc56a06b870741f6b632f5cd7c9cde2 /t | |
parent | 97d484bea211f6d16c52d153ae02ea7a42668330 (diff) | |
parent | 1ba447b8dc2ec4e6c8ebbbdaa449f38edc29ad3f (diff) | |
download | git-68d00fd83421a0494c66512e4c66829f4863693d.tar.gz git-68d00fd83421a0494c66512e4c66829f4863693d.tar.xz |
Merge branch 'jn/show-normalized-refs'
* jn/show-normalized-refs:
check-ref-format: simplify --print implementation
git check-ref-format --print
Add tests for git check-ref-format
Conflicts:
Documentation/git-check-ref-format.txt
Diffstat (limited to 't')
-rw-r--r-- | t/t1402-check-ref-format.sh | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/t/t1402-check-ref-format.sh b/t/t1402-check-ref-format.sh new file mode 100644 index 000000000..eb45afb01 --- /dev/null +++ b/t/t1402-check-ref-format.sh @@ -0,0 +1,61 @@ +#!/bin/sh + +test_description='Test git check-ref-format' + +. ./test-lib.sh + +valid_ref() { + test_expect_success "ref name '$1' is valid" \ + "git check-ref-format '$1'" +} +invalid_ref() { + test_expect_success "ref name '$1' is not valid" \ + "test_must_fail git check-ref-format '$1'" +} + +valid_ref 'heads/foo' +invalid_ref 'foo' +valid_ref 'foo/bar/baz' +valid_ref 'refs///heads/foo' +invalid_ref 'heads/foo/' +invalid_ref './foo' +invalid_ref '.refs/foo' +invalid_ref 'heads/foo..bar' +invalid_ref 'heads/foo?bar' +valid_ref 'foo./bar' +invalid_ref 'heads/foo.lock' +valid_ref 'heads/foo@bar' +invalid_ref 'heads/v@{ation' +invalid_ref 'heads/foo\bar' + +test_expect_success "check-ref-format --branch @{-1}" ' + T=$(git write-tree) && + sha1=$(echo A | git commit-tree $T) && + git update-ref refs/heads/master $sha1 && + git update-ref refs/remotes/origin/master $sha1 + git checkout master && + git checkout origin/master && + git checkout master && + refname=$(git check-ref-format --branch @{-1}) && + test "$refname" = "$sha1" && + refname2=$(git check-ref-format --branch @{-2}) && + test "$refname2" = master' + +valid_ref_normalized() { + test_expect_success "ref name '$1' simplifies to '$2'" " + refname=\$(git check-ref-format --print '$1') && + test \"\$refname\" = '$2'" +} +invalid_ref_normalized() { + test_expect_success "check-ref-format --print rejects '$1'" " + test_must_fail git check-ref-format --print '$1'" +} + +valid_ref_normalized 'heads/foo' 'heads/foo' +valid_ref_normalized 'refs///heads/foo' 'refs/heads/foo' +invalid_ref_normalized 'foo' +invalid_ref_normalized 'heads/foo/../bar' +invalid_ref_normalized 'heads/./foo' +invalid_ref_normalized 'heads\foo' + +test_done |