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