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

Re: [PATCH v3 2/4] t/t7030-verify-tag.sh: Adds validation for multiple tags

From
Jeff King <peff@peff.net>
Date
Apr 3, 2016, 04:40 UTC
Message-ID
<20160403044054.GB1519@sigill.intra.peff.net>
In-Reply-To
<1459638975-17705-3-git-send-email-santiago@nyu.edu>
On Sat, Apr 02, 2016 at 07:16:13PM -0400, santiago@nyu.edu wrote:
> The verify-tag command supports mutliple tag names as an argument.
s/mutliple/multiple/
> +test_expect_success GPG 'verify multiple tags' '
> +	git verify-tag -v --raw fourth-signed sixth-signed seventh-signed 2>actual 1> tagnames &&
Style: we don't put a space between ">" and the filename. Also, we
usually omit "1" when redirecting stdout.
> +		grep -c "GOODSIG" actual > count &&
Funny indentation here.

I wondered if we could use test_cmp instead of a counting grep here, but this is looking at gpg spew, and we probably don't want to count on that never changing.

I don't see us actually verifying that "count" is 3, though.
> +		! grep "BADSIG" actual &&
Makes sense...
> +		grep -E "tag\ .*" tagnames | uniq -u | wc - l | grep "3"

Do we need "grep -E" here? I don't see any extended regex in use. Is there a reason to backslash-escape the space?

Your "wc -l" has an extra space, which means "read stdin, and then the file 'l'". Which sort-of happens to work, except as you noticed, you have to grep for "3" instead of matching it.

I think, though, that rather than counting we could just write what we expect into a file and compare that. It makes it easier for somebody reading the test to see what it is we're trying to do.

In fact, I suspect you could replace the "GOODSIG" check as well by doing something like:

  # verifying 3 tags in one invocation should be exactly like
  # verifying the 3 separately
  tags="fourth-signed sixth-signed seventh-signed"
  for i in $tags; do
          git verify-tag -v --raw $i || return 1
  done >expect.stdout 2>expect.stderr &&
  git verify-tag -v --raw $tags >actual.stdout 2>actual.stderr &&
  test_cmp expect.stdout actual.stdout &&
  test_cmp expect.stderr actual.stderr
but I didn't test it.
-Peff
Previous: santiago@nyu.eduNext: Eric Sunshine
Message 7 of 24 in “tag: move PGP verification code to tag.c”
  1. 0/4 tag: move PGP verification code to tag.csantiago@nyu.edu, Apr 2, 2016
  2. 1/4 builtin/verify-tag.c: Ignore SIGPIPE on gpg-interfacesantiago@nyu.edu, Apr 2, 2016
  3. Jeff KingApr 3, 2016
  4. Johannes SixtApr 3, 2016
  5. Santiago TorresApr 3, 2016
  6. 2/4 t/t7030-verify-tag.sh: Adds validation for multiple tagssantiago@nyu.edu, Apr 2, 2016
  7. Jeff KingApr 3, 2016
  8. Eric SunshineApr 3, 2016
  9. Jeff KingApr 3, 2016
  10. Santiago TorresApr 3, 2016
  11. Eric SunshineApr 4, 2016
  12. Jeff KingApr 4, 2016
  13. 3/4 builtin/verify-tag: move verification code to tag.csantiago@nyu.edu, Apr 2, 2016
  14. Jeff KingApr 3, 2016
  15. Eric SunshineApr 3, 2016
  16. Eric SunshineApr 3, 2016
  17. Santiago TorresApr 3, 2016
  18. 4/4 tag: use pgp_verify_function in tag -v callsantiago@nyu.edu, Apr 2, 2016
  19. Jeff KingApr 3, 2016
  20. Santiago TorresApr 3, 2016
  21. Santiago TorresApr 4, 2016
  22. Jeff KingApr 4, 2016
  23. Santiago TorresApr 4, 2016
  24. Jeff KingApr 4, 2016

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.