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

Re: [PATCH v4 01/12] t: add test functions to translate hash-related values

From
brian m. carlson <sandals@crustytoothpaste.net>
Date
Sep 5, 2018, 22:50 UTC
Message-ID
<20180905225004.GO432229@genre.crustytoothpaste.net>
In-Reply-To
<CAPig+cQZMEvJZ2b3RjtXvy9ZtTjRKUvye_xT0nibOqcHtpApZQ@mail.gmail.com>
On Mon, Sep 03, 2018 at 08:01:35PM -0400, Eric Sunshine wrote:
Show 15 quoted lines
> On Mon, Sep 3, 2018 at 7:25 PM brian m. carlson
> <sandals@crustytoothpaste.net> wrote:
> > Add several test functions to make working with various hash-related
> > values easier.
> > [...]
> > diff --git a/t/test-lib-functions.sh b/t/test-lib-functions.sh
> > @@ -1155,3 +1155,70 @@ depacketize () {
> > +# Detect the hash algorithm in use.
> > +test_detect_hash () {
> > +       test_hash_algo='sha1'
> > +}
> 
> Not worth a re-roll itself, but if you do re-roll for some reason,
> perhaps include a comment inside the function saying that the actual
> "detect" part will be fleshed out later.
Sure.
Show 8 quoted lines
> > +test_oid_cache () {
> > +       local tag reset k v
> 
> s/reset/rest/
> 
> It probably wouldn't hurt to &&-chain the above, as well, to
> future-proof it against someone coming along and inserting code before
> the 'local' line.
I'll fix that and reroll.
Show 15 quoted lines
> > +       test -n "$test_hash_algo" || test_detect_hash &&
> > +       while read tag rest
> > +       do
> > +               case $tag in
> > +               [...]
> > +               esac &&
> > +
> > +               k="${rest%:*}" &&
> > +               v="${rest#*:}" &&
> > +
> > +               if ! expr "$k" : '[a-z0-9][a-z0-9]*$' >/dev/null
> > +               then
> > +                       error 'bug in the test script: bad hash algorithm'
> 
> Did you want to redirect this to stderr like you do with error() in test_oid()?

No, I don't believe it's necessary. The commit message hints at this slightly, but test_oid_cache is run with stdout unredirected, while test_oid is run inside a command substitution (where stdout is essentially redirected).

The issue with test_oid is not that it doesn't abort successfully (it does) but that you don't see the error message and therefore have no clue why your test suddenly exited 1, which is unfriendly to developers when they make this mistake. Since that's not an issue here, I opted not to redirect it.

-- 
brian m. carlson: Houston, Texas, US
OpenPGP: https://keybase.io/bk2204
Previous: Eric SunshineNext: brian m. carlson
Message 5 of 18 in “Hash-independent tests (part 3)”
  1. 00/12 Hash-independent tests (part 3)brian m. carlson, Sep 3, 2018
  2. 02/12 t0000: use hash translation tablebrian m. carlson, Sep 3, 2018
  3. 01/12 t: add test functions to translate hash-related valuesbrian m. carlson, Sep 3, 2018
  4. Eric SunshineSep 4, 2018
  5. brian m. carlsonSep 5, 2018
  6. 03/12 t0000: update tests for SHA-256brian m. carlson, Sep 3, 2018
  7. 05/12 t0027: make hash size independentbrian m. carlson, Sep 3, 2018
  8. 06/12 t0064: make hash size independentbrian m. carlson, Sep 3, 2018
  9. 04/12 t0002: abstract away SHA-1 specific constantsbrian m. carlson, Sep 3, 2018
  10. 07/12 t1006: make hash size independentbrian m. carlson, Sep 3, 2018
  11. 08/12 t1400: switch hard-coded object ID to variablebrian m. carlson, Sep 3, 2018
  12. 09/12 t1405: make hash size independentbrian m. carlson, Sep 3, 2018
  13. 10/12 t1406: make hash-size independentbrian m. carlson, Sep 3, 2018
  14. 11/12 t1407: make hash size independentbrian m. carlson, Sep 3, 2018
  15. 12/12 t5318: use test_oid for HASH_LENbrian m. carlson, Sep 3, 2018
  16. Derrick StoleeSep 4, 2018
  17. Duy NguyenSep 4, 2018
  18. Junio C HamanoSep 4, 2018

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.