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

RE: [PATCH] t3200: don't grep for `strerror()` string

From
Randall S. Becker <rsbecker@nexbridge.com>
Date
Jul 19, 2020, 17:23 UTC
Message-ID
<011501d65df1$4b8d47e0$e2a7d7a0$@nexbridge.com>
In-Reply-To
<011401d65def$54ae8a20$fe0b9e60$@nexbridge.com>
On July 19, 2020 1:09 PM, I wrote:
Show 55 quoted lines
> On July 18, 2020 5:49 AM, Martin Ågren Wrote:
> > In 6b7093064a ("t3200: test for specific errors", 2020-06-15), we
> > learned to grep stderr to ensure that the failing `git branch`
> > invocations fail for the right reason. In two of these tests, we grep
> > for "File exists", expecting the string to show up there since
> > config.c calls `error_errno()`, which ends up including `strerror(errno)` in
> the error message.
> >
> > But as we saw in 4605a73073 ("t1091: don't grep for `strerror()`
> > string", 2020-03-08), there exists at least one implementation where
> > `strerror()` yields a slightly different string than the one we're
> > grepping for. In particular, these tests fail on the NonStop platform.
> >
> > Similar to 4605a73073, grep for the beginning of the string instead to
> > avoid relying on `strerror()` behavior.
> >
> > Reported-by: Randall S. Becker <rsbecker@nexbridge.com>
> > Signed-off-by: Martin Ågren <martin.agren@gmail.com>
> > ---
> >  Hi Randall,
> >
> >  Does this fix the test for you?
> >
> >  Martin
> >
> >  t/t3200-branch.sh | 4 ++--
> >  1 file changed, 2 insertions(+), 2 deletions(-)
> >
> > diff --git a/t/t3200-branch.sh b/t/t3200-branch.sh index
> > b6aa04bbec..4c0734157b 100755
> > --- a/t/t3200-branch.sh
> > +++ b/t/t3200-branch.sh
> > @@ -870,7 +870,7 @@ test_expect_success '--set-upstream-to fails on
> > locked config' '
> >  	>.git/config.lock &&
> >  	git branch locked &&
> >  	test_must_fail git branch --set-upstream-to locked 2>err &&
> > -	test_i18ngrep "could not lock config file .git/config: File exists" err
> > +	test_i18ngrep "could not lock config file .git/config" err
> >  '
> >
> >  test_expect_success 'use --set-upstream-to modify HEAD' '
> > @@ -901,7 +901,7 @@ test_expect_success '--unset-upstream should fail
> > if config is locked' '
> >  	git branch --set-upstream-to locked &&
> >  	>.git/config.lock &&
> >  	test_must_fail git branch --unset-upstream 2>err &&
> > -	test_i18ngrep "could not lock config file .git/config: File exists" err
> > +	test_i18ngrep "could not lock config file .git/config" err
> >  '
> >
> >  test_expect_success 'test --unset-upstream on HEAD' '
> 
> It should work, yes. You could go as far as the ':' if you were worried about
> the path of the .git/config file.
Yup, our Jenkins pipeline picked it up before I had a chance to the run the test myself. Passes. (We're up to t3311 on the current HEAD on master).

Thanks, Randall

Previous: Randall S. Becker
Message 7 of 7 in “[ANNOUNCE] Git v2.28.0-rc1”
  1. Junio C HamanoJul 17, 2020
  2. Randall S. BeckerJul 17, 2020
  3. t3200: don't grep for `strerror()` stringMartin Ågren, Jul 18, 2020
  4. Junio C HamanoJul 18, 2020
  5. Martin ÅgrenJul 18, 2020
  6. Randall S. BeckerJul 19, 2020
  7. Randall S. BeckerJul 19, 2020

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.