git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH v5] Test fsck a bit harder

From
Junio C Hamano <gitster@pobox.com>
Date
Mar 3, 2009, 07:31 UTC
Message-ID
<7v3advgj0l.fsf@gitster.siamese.dyndns.org>
In-Reply-To
<1235946763-15252-1-git-send-email-trast@student.ethz.ch>
Thomas Rast <trast@student.ethz.ch> writes:
Show 7 quoted lines
> Johannes Sixt wrote:
>> This is wrong: It does not test the exist status. In a pipeline, the shell 
>> looks only at the exit status of the last command. You really want this as
>> 
>>  	test_must_fail git fsck >out 2>&1 &&
>
> You're right.
And you still write this after the lesson?
Show 5 quoted lines
> +test_expect_success 'branch pointing to non-commit' '
> +	git rev-parse HEAD^{tree} > .git/refs/heads/invalid &&
> +	git fsck 2>&1 | tee out &&
> +	grep "not a commit" out
> +'
Show 10 quoted lines
> +git update-ref -d refs/heads/invalid
> +
> +cat > invalid-tag <<EOF
> +object ffffffffffffffffffffffffffffffffffffffff
> +type commit
> +tag invalid
> +tagger T A Gger <tagger@example.com> 1234567890 -0000
> +
> +This is an invalid tag.
> +EOF

Technically speaking, the tag is perfectly valid. It just points to a commit you do not have.

Show 8 quoted lines
> +cat > wrong-tag <<EOF
> +object $(echo blob | git hash-object -w --stdin)
> +type commit
> +tag wrong
> +tagger T A Gger <tagger@example.com> 1234567890 -0000
> +
> +This is an invalid tag.
> +EOF
This is indeed invalid.
Show 8 quoted lines
> +test_expect_success 'tag pointing to something else than its type' '
> +	tag=$(git hash-object -t tag -w --stdin < wrong-tag) &&
> +	echo $tag > .git/refs/tags/wrong &&
> +	test_must_fail git fsck >out 2>&1 &&
> +	grep "Object.*is a blob, not a commit" out
> +'
> +
> +rm .git/refs/tags/wrong

I'd rather want to see test_expect_success around this "rm", and replace that rm with something more git-ish, like "tag -d" or "update-ref -d".

By the way, is it just me or would we want to reword the subject of the commit to tame it a little bit?

Previous: Thomas RastNext: Thomas Rast
Message 13 of 19 in “What's cooking in git.git (Feb 2009, #06; Wed, 18)”
  1. Junio C HamanoFeb 19, 2009
  2. 0/8 Support coverage testing with GCC/gcovThomas Rast, Feb 19, 2009
  3. 1/8 Support coverage testing with GCC/gcovThomas Rast, Feb 19, 2009
  4. 2/8 Test that diff can read from stdinThomas Rast, Feb 19, 2009
  5. 3/8 Test diff --dirstat functionalityThomas Rast, Feb 19, 2009
  6. 4/8 Test log --graphThomas Rast, Feb 19, 2009
  7. 5/8 Test fsck a bit harderThomas Rast, Feb 19, 2009
  8. Test fsck a bit harderThomas Rast, Feb 20, 2009
  9. Johannes SixtFeb 20, 2009
  10. Test fsck a bit harderThomas Rast, Feb 21, 2009
  11. Johannes SixtFeb 21, 2009
  12. Test fsck a bit harderThomas Rast, Mar 1, 2009
  13. Junio C HamanoMar 3, 2009
  14. 6/8 Test log --decorateThomas Rast, Feb 19, 2009
  15. 7/8 Test rev-list --parents/--childrenThomas Rast, Feb 19, 2009
  16. 8/8 Test git-patch-idThomas Rast, Feb 19, 2009
  17. Johannes SchindelinFeb 19, 2009
  18. Thomas RastFeb 19, 2009
  19. Sverre RabbelierFeb 19, 2009

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.