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

Re: [PATCH v2] am: add am.signoff add config variable

From
Stefan Beller <sbeller@google.com>
Date
Dec 28, 2016, 19:24 UTC
Message-ID
<CAGZ79kaNd2EAjRC=U3_mXB2Deo4oBcUfBHWXPSDfa-vUtBogkg@mail.gmail.com>
In-Reply-To
<20161228191928.GH3441@thinpad.lan.raisama.net>
On Wed, Dec 28, 2016 at 11:19 AM, Eduardo Habkost <ehabkost@redhat.com> wrote:
Show 35 quoted lines
> On Wed, Dec 28, 2016 at 05:11:42PM -0200, Eduardo Habkost wrote:
>> On Wed, Dec 28, 2016 at 10:51:28AM -0800, Stefan Beller wrote:
>> > On Wed, Dec 28, 2016 at 10:35 AM, Eduardo Habkost <ehabkost@redhat.com> wrote:
> [...]
>> > > +       test $(git cat-file commit HEAD | grep -c "Signed-off-by:") -eq 0
>> >
>> > and then we check if the top most commit has zero occurrences
>> > for lines grepped for sign off. That certainly works, but took me a
>> > while to understand (TIL about -c in grep :).
>> >
>> > Another way that to write this check, that Git regulars may be more used to is:
>> >
>> >     git cat-file commit HEAD | grep "Signed-off-by:" >actual
>> >     test_must_be_empty actual
>>
>> test_must_be_empty is what I was looking for. But if I do this:
>>
>> test_expect_success '--no-signoff overrides am.signoff' '
>>       rm -fr .git/rebase-apply &&
>>       git reset --hard first &&
>>       test_config am.signoff true &&
>>       git am --no-signoff <patch2 &&
>>       printf "%s\n" "$signoff" >expected &&
>>       git cat-file commit HEAD^ | grep "Signed-off-by:" >actual &&
>>       test_cmp expected actual &&
>>       git cat-file commit HEAD | grep "Signed-off-by:" >actual &&
>>       test_must_be_empty actual
>> '
>>
>> The test fails because the second "grep" command returns a
>> non-zero exit code. Any suggestions to avoid that problem in a
>> more idiomatic way?
>
> I just found out that "test_must_fail grep ..." is a common
> idiom, so what about:
Uh, no please.

test_must_fail is supposed to be used for commands to be tested, i.e. git commands as this is the git test suite. :) test_must_fail checks, e.g. that the failing command "properly" fails instead of bye-bye-segfault. And grep would never do this. (In this world we assume everything to be perfect except git itself)

For grep just use !
    git cat-file commit HEAD >actual &&
    ! grep "Signed-off-by:" actual

$ git grep "test_must_fail grep" returns 20 occurrences, so in case you're that would be a good cleanup patch (if you're interested in such things).

Thanks, Stefan

Previous: Eduardo HabkostNext: Pranit Bauva
Message 5 of 9 in “am: add am.signoff add config variable”
  1. am: add am.signoff add config variableEduardo Habkost, Dec 28, 2016
  2. Stefan BellerDec 28, 2016
  3. Eduardo HabkostDec 28, 2016
  4. Eduardo HabkostDec 28, 2016
  5. Stefan BellerDec 28, 2016
  6. Pranit BauvaDec 29, 2016
  7. Eduardo HabkostDec 29, 2016
  8. Andreas SchwabDec 28, 2016
  9. Eduardo HabkostDec 28, 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.