t6300: don't run cat-file on non-existent object
commit597fa8cb430179ec2b28e2d39a857af25717c98c
authorĐoàn Trần Công Danh <congdanhqx@gmail.com>
Sat, 21 Aug 2021 01:36:33 +0000 (21 08:36 +0700)
committerJunio C Hamano <gitster@pobox.com>
Wed, 25 Aug 2021 18:45:53 +0000 (25 11:45 -0700)
tree135fd3f51cb947525dee7af46c7c2891bd029a0e
parent225bc32a989d7a22fa6addafd4ce7dcd04675dbf
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>
t/t6300-for-each-ref.sh