Merge branch 'js/check-ref-format-test-mingw'

* js/check-ref-format-test-mingw:
  t1402-check-ref-format: skip tests of refs beginning with slash on Windows
This commit is contained in:
Junio C Hamano 2011-10-17 21:37:15 -07:00
commit 7f8a9387fd

View File

@ -5,38 +5,40 @@ test_description='Test git check-ref-format'
. ./test-lib.sh . ./test-lib.sh
valid_ref() { valid_ref() {
if test "$#" = 1 prereq=
then case $1 in
test_expect_success "ref name '$1' is valid" \ [A-Z]*)
"git check-ref-format '$1'" prereq=$1
else shift
test_expect_success "ref name '$1' is valid with options $2" \ esac
"git check-ref-format $2 '$1'" test_expect_success $prereq "ref name '$1' is valid${2:+ with options $2}" "
fi git check-ref-format $2 '$1'
"
} }
invalid_ref() { invalid_ref() {
if test "$#" = 1 prereq=
then case $1 in
test_expect_success "ref name '$1' is invalid" \ [A-Z]*)
"test_must_fail git check-ref-format '$1'" prereq=$1
else shift
test_expect_success "ref name '$1' is invalid with options $2" \ esac
"test_must_fail git check-ref-format $2 '$1'" test_expect_success $prereq "ref name '$1' is invalid${2:+ with options $2}" "
fi test_must_fail git check-ref-format $2 '$1'
"
} }
invalid_ref '' invalid_ref ''
invalid_ref '/' invalid_ref NOT_MINGW '/'
invalid_ref '/' --allow-onelevel invalid_ref NOT_MINGW '/' --allow-onelevel
invalid_ref '/' --normalize invalid_ref NOT_MINGW '/' --normalize
invalid_ref '/' '--allow-onelevel --normalize' invalid_ref NOT_MINGW '/' '--allow-onelevel --normalize'
valid_ref 'foo/bar/baz' valid_ref 'foo/bar/baz'
valid_ref 'foo/bar/baz' --normalize valid_ref 'foo/bar/baz' --normalize
invalid_ref 'refs///heads/foo' invalid_ref 'refs///heads/foo'
valid_ref 'refs///heads/foo' --normalize valid_ref 'refs///heads/foo' --normalize
invalid_ref 'heads/foo/' invalid_ref 'heads/foo/'
invalid_ref '/heads/foo' invalid_ref NOT_MINGW '/heads/foo'
valid_ref '/heads/foo' --normalize valid_ref NOT_MINGW '/heads/foo' --normalize
invalid_ref '///heads/foo' invalid_ref '///heads/foo'
valid_ref '///heads/foo' --normalize valid_ref '///heads/foo' --normalize
invalid_ref './foo' invalid_ref './foo'
@ -115,14 +117,14 @@ invalid_ref "$ref" --refspec-pattern
invalid_ref "$ref" '--refspec-pattern --allow-onelevel' invalid_ref "$ref" '--refspec-pattern --allow-onelevel'
ref='/foo' ref='/foo'
invalid_ref "$ref" invalid_ref NOT_MINGW "$ref"
invalid_ref "$ref" --allow-onelevel invalid_ref NOT_MINGW "$ref" --allow-onelevel
invalid_ref "$ref" --refspec-pattern invalid_ref NOT_MINGW "$ref" --refspec-pattern
invalid_ref "$ref" '--refspec-pattern --allow-onelevel' invalid_ref NOT_MINGW "$ref" '--refspec-pattern --allow-onelevel'
invalid_ref "$ref" --normalize invalid_ref NOT_MINGW "$ref" --normalize
valid_ref "$ref" '--allow-onelevel --normalize' valid_ref NOT_MINGW "$ref" '--allow-onelevel --normalize'
invalid_ref "$ref" '--refspec-pattern --normalize' invalid_ref NOT_MINGW "$ref" '--refspec-pattern --normalize'
valid_ref "$ref" '--refspec-pattern --allow-onelevel --normalize' valid_ref NOT_MINGW "$ref" '--refspec-pattern --allow-onelevel --normalize'
test_expect_success "check-ref-format --branch @{-1}" ' test_expect_success "check-ref-format --branch @{-1}" '
T=$(git write-tree) && T=$(git write-tree) &&
@ -155,21 +157,35 @@ test_expect_success 'check-ref-format --branch from subdir' '
' '
valid_ref_normalized() { valid_ref_normalized() {
test_expect_success "ref name '$1' simplifies to '$2'" " prereq=
case $1 in
[A-Z]*)
prereq=$1
shift
esac
test_expect_success $prereq "ref name '$1' simplifies to '$2'" "
refname=\$(git check-ref-format --normalize '$1') && refname=\$(git check-ref-format --normalize '$1') &&
test \"\$refname\" = '$2'" test \"\$refname\" = '$2'
"
} }
invalid_ref_normalized() { invalid_ref_normalized() {
test_expect_success "check-ref-format --normalize rejects '$1'" " prereq=
test_must_fail git check-ref-format --normalize '$1'" case $1 in
[A-Z]*)
prereq=$1
shift
esac
test_expect_success $prereq "check-ref-format --normalize rejects '$1'" "
test_must_fail git check-ref-format --normalize '$1'
"
} }
valid_ref_normalized 'heads/foo' 'heads/foo' valid_ref_normalized 'heads/foo' 'heads/foo'
valid_ref_normalized 'refs///heads/foo' 'refs/heads/foo' valid_ref_normalized 'refs///heads/foo' 'refs/heads/foo'
valid_ref_normalized '/heads/foo' 'heads/foo' valid_ref_normalized NOT_MINGW '/heads/foo' 'heads/foo'
valid_ref_normalized '///heads/foo' 'heads/foo' valid_ref_normalized '///heads/foo' 'heads/foo'
invalid_ref_normalized 'foo' invalid_ref_normalized 'foo'
invalid_ref_normalized '/foo' invalid_ref_normalized NOT_MINGW '/foo'
invalid_ref_normalized 'heads/foo/../bar' invalid_ref_normalized 'heads/foo/../bar'
invalid_ref_normalized 'heads/./foo' invalid_ref_normalized 'heads/./foo'
invalid_ref_normalized 'heads\foo' invalid_ref_normalized 'heads\foo'