зеркало из https://github.com/microsoft/git.git
t6300: don't run cat-file on non-existent object
In t6300, some tests are guarded behind some prerequisites. Thus, objects created by those tests ain't available if those prerequisites are unsatistified. Attempting to run "cat-file" on those objects will run into failure. In fact, running t6300 in an environment without gpg(1), we'll see those warnings: fatal: Not a valid object name refs/tags/signed-empty fatal: Not a valid object name refs/tags/signed-short fatal: Not a valid object name refs/tags/signed-long Let's put those commands into the real tests, in order to: * skip their execution if prerequisites aren't satistified. * check their exit status code The expected value for objects with type: commit needs to be computed outside the test because we can't rely on "$3" there. Furthermore, to prevent the accidental usage of that computed expected value, BUG out on unknown object's type. Signed-off-by: Đoàn Trần Công Danh <congdanhqx@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Родитель
225bc32a98
Коммит
597fa8cb43
|
@ -59,18 +59,23 @@ test_atom() {
|
||||||
# Automatically test "contents:size" atom after testing "contents"
|
# Automatically test "contents:size" atom after testing "contents"
|
||||||
if test "$2" = "contents"
|
if test "$2" = "contents"
|
||||||
then
|
then
|
||||||
case $(git cat-file -t "$ref") in
|
# for commit leg, $3 is changed there
|
||||||
|
expect=$(printf '%s' "$3" | wc -c)
|
||||||
|
test_expect_${4:-success} $PREREQ "basic atom: $1 contents:size" '
|
||||||
|
type=$(git cat-file -t "$ref") &&
|
||||||
|
case $type in
|
||||||
tag)
|
tag)
|
||||||
# We cannot use $3 as it expects sanitize_pgp to run
|
# We cannot use $3 as it expects sanitize_pgp to run
|
||||||
expect=$(git cat-file tag $ref | tail -n +6 | wc -c) ;;
|
expect=$(git cat-file tag $ref | tail -n +6 | wc -c) ;;
|
||||||
tree | blob)
|
tree | blob)
|
||||||
expect='' ;;
|
expect="" ;;
|
||||||
commit)
|
commit)
|
||||||
expect=$(printf '%s' "$3" | wc -c) ;;
|
: "use the calculated expect" ;;
|
||||||
esac
|
*)
|
||||||
|
BUG "unknown object type" ;;
|
||||||
|
esac &&
|
||||||
# Leave $expect unquoted to lose possible leading whitespaces
|
# Leave $expect unquoted to lose possible leading whitespaces
|
||||||
echo $expect >expected
|
echo $expect >expected &&
|
||||||
test_expect_${4:-success} $PREREQ "basic atom: $1 contents:size" '
|
|
||||||
git for-each-ref --format="%(contents:size)" "$ref" >actual &&
|
git for-each-ref --format="%(contents:size)" "$ref" >actual &&
|
||||||
test_cmp expected actual
|
test_cmp expected actual
|
||||||
'
|
'
|
||||||
|
|
Загрузка…
Ссылка в новой задаче