зеркало из https://github.com/microsoft/git.git
fast-import: add input format tests
Documentation/git-fast-import.txt says that git-fast-import is strict about it's input format. But committer/author field parsing is a bit loose. Invalid values can be unnoticed and written out to the commit, either with format-conforming input or with non-format-conforming one. Add one passing and one failing test for empty/absent committer name with well-formed input. And a failed test with unnoticed ill-formed input. Reported-by: SASAKI Suguru <sss.sonik@gmail.com> Signed-off-by: Dmitry Ivankov <divanorama@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Родитель
0906f6e14e
Коммит
4cedb78cb5
|
@ -324,6 +324,105 @@ test_expect_success \
|
||||||
test `git rev-parse master` = `git rev-parse TEMP_TAG^`'
|
test `git rev-parse master` = `git rev-parse TEMP_TAG^`'
|
||||||
rm -f .git/TEMP_TAG
|
rm -f .git/TEMP_TAG
|
||||||
|
|
||||||
|
git gc 2>/dev/null >/dev/null
|
||||||
|
git prune 2>/dev/null >/dev/null
|
||||||
|
|
||||||
|
cat >input <<INPUT_END
|
||||||
|
commit refs/heads/empty-committer-1
|
||||||
|
committer <> $GIT_COMMITTER_DATE
|
||||||
|
data <<COMMIT
|
||||||
|
empty commit
|
||||||
|
COMMIT
|
||||||
|
INPUT_END
|
||||||
|
test_expect_success 'B: accept empty committer' '
|
||||||
|
git fast-import <input &&
|
||||||
|
out=$(git fsck) &&
|
||||||
|
echo "$out" &&
|
||||||
|
test -z "$out"
|
||||||
|
'
|
||||||
|
git update-ref -d refs/heads/empty-committer-1 || true
|
||||||
|
|
||||||
|
git gc 2>/dev/null >/dev/null
|
||||||
|
git prune 2>/dev/null >/dev/null
|
||||||
|
|
||||||
|
cat >input <<INPUT_END
|
||||||
|
commit refs/heads/empty-committer-2
|
||||||
|
committer <a@b.com> $GIT_COMMITTER_DATE
|
||||||
|
data <<COMMIT
|
||||||
|
empty commit
|
||||||
|
COMMIT
|
||||||
|
INPUT_END
|
||||||
|
test_expect_failure 'B: accept and fixup committer with no name' '
|
||||||
|
git fast-import <input &&
|
||||||
|
out=$(git fsck) &&
|
||||||
|
echo "$out" &&
|
||||||
|
test -z "$out"
|
||||||
|
'
|
||||||
|
git update-ref -d refs/heads/empty-committer-2 || true
|
||||||
|
|
||||||
|
git gc 2>/dev/null >/dev/null
|
||||||
|
git prune 2>/dev/null >/dev/null
|
||||||
|
|
||||||
|
cat >input <<INPUT_END
|
||||||
|
commit refs/heads/invalid-committer
|
||||||
|
committer Name email> $GIT_COMMITTER_DATE
|
||||||
|
data <<COMMIT
|
||||||
|
empty commit
|
||||||
|
COMMIT
|
||||||
|
INPUT_END
|
||||||
|
test_expect_failure 'B: fail on invalid committer (1)' '
|
||||||
|
test_must_fail git fast-import <input
|
||||||
|
'
|
||||||
|
git update-ref -d refs/heads/invalid-committer || true
|
||||||
|
|
||||||
|
cat >input <<INPUT_END
|
||||||
|
commit refs/heads/invalid-committer
|
||||||
|
committer Name <e<mail> $GIT_COMMITTER_DATE
|
||||||
|
data <<COMMIT
|
||||||
|
empty commit
|
||||||
|
COMMIT
|
||||||
|
INPUT_END
|
||||||
|
test_expect_failure 'B: fail on invalid committer (2)' '
|
||||||
|
test_must_fail git fast-import <input
|
||||||
|
'
|
||||||
|
git update-ref -d refs/heads/invalid-committer || true
|
||||||
|
|
||||||
|
cat >input <<INPUT_END
|
||||||
|
commit refs/heads/invalid-committer
|
||||||
|
committer Name <email>> $GIT_COMMITTER_DATE
|
||||||
|
data <<COMMIT
|
||||||
|
empty commit
|
||||||
|
COMMIT
|
||||||
|
INPUT_END
|
||||||
|
test_expect_failure 'B: fail on invalid committer (3)' '
|
||||||
|
test_must_fail git fast-import <input
|
||||||
|
'
|
||||||
|
git update-ref -d refs/heads/invalid-committer || true
|
||||||
|
|
||||||
|
cat >input <<INPUT_END
|
||||||
|
commit refs/heads/invalid-committer
|
||||||
|
committer Name <email $GIT_COMMITTER_DATE
|
||||||
|
data <<COMMIT
|
||||||
|
empty commit
|
||||||
|
COMMIT
|
||||||
|
INPUT_END
|
||||||
|
test_expect_failure 'B: fail on invalid committer (4)' '
|
||||||
|
test_must_fail git fast-import <input
|
||||||
|
'
|
||||||
|
git update-ref -d refs/heads/invalid-committer || true
|
||||||
|
|
||||||
|
cat >input <<INPUT_END
|
||||||
|
commit refs/heads/invalid-committer
|
||||||
|
committer Name<email> $GIT_COMMITTER_DATE
|
||||||
|
data <<COMMIT
|
||||||
|
empty commit
|
||||||
|
COMMIT
|
||||||
|
INPUT_END
|
||||||
|
test_expect_failure 'B: fail on invalid committer (5)' '
|
||||||
|
test_must_fail git fast-import <input
|
||||||
|
'
|
||||||
|
git update-ref -d refs/heads/invalid-committer || true
|
||||||
|
|
||||||
###
|
###
|
||||||
### series C
|
### series C
|
||||||
###
|
###
|
||||||
|
|
Загрузка…
Ссылка в новой задаче