On Mon, Sep 03, 2018 at 08:01:35PM -0400, Eric Sunshine wrote: > On Mon, Sep 3, 2018 at 7:25 PM brian m. carlson > 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. > > +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. > > + 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