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

Re: [PATCH] t/perf: fix test_export() failure with BSD `sed`

From
Eric Sunshine <sunshine@sunshineco.com>
Date
Dec 16, 2020, 19:29 UTC
Message-ID
<CAPig+cR+4Wh4Sgk6UhUML4SHqaQsvYmw_77ih+oec2YmqQJCCg@mail.gmail.com>
In-Reply-To
<xmqq5z514lj5.fsf@gitster.c.googlers.com>
On Wed, Dec 16, 2020 at 2:07 PM Junio C Hamano <gitster@pobox.com> wrote:
Show 12 quoted lines
> Eric Sunshine <sunshine@sunshineco.com> writes:
> >  test_export () {
> >       [ $# != 0 ] || return 0
> > -     test_export_="$test_export_\\|$1"
> > +     test_export_="$test_export_ $1"
> >       shift
> >       test_export "$@"
> >  }
>
> This "recursion to consume $@ one by one, instead of looping" caught
> my eyes a bit, but the bug being fixed is not caused by it, so it is
> fine to let it pass.
The unusual recursion caught my eye as well.
Show 9 quoted lines
> Given that the arguments to test_export are
> supposed to be all variable names (i.e. no funny characters anywhere
> in it), I think it could just be
>
>         test_export () {
>                 test_export_="$*"
>         }
>
> though.

That's almost good enough, but test_export() needs to accumulate the to-be-exported variables across multiple calls, so the non-recursive definition would likely be:

    test_export () {
        test_export_="$test_export_ $*"
    }
which would make a nice cleanup atop this portability-fix patch.
> Oh, does anybody need to clear test_export_ to an empty string (or
> unset it), by the way?

Perhaps a test_unexport() might be handy in the distant future, but presently there is only a single call to test_export() in the entire suite, so it's probably not worth worrying about now.

Previous: Junio C HamanoNext: Jeff King
Message 3 of 8 in “t/perf: fix test_export() failure with BSD `sed`”
  1. t/perf: fix test_export() failure with BSD `sed`Eric Sunshine, Dec 16, 2020
  2. Junio C HamanoDec 16, 2020
  3. Eric SunshineDec 16, 2020
  4. Jeff KingDec 18, 2020
  5. Eric SunshineDec 18, 2020
  6. Jeff KingDec 18, 2020
  7. Eric SunshineDec 21, 2020
  8. 2/1 t/perf: avoid unnecessary test_export() recursionEric Sunshine, Dec 20, 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.