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

Re: [PATCH 6/7] t1303 (config): style tweaks

From
Jeff King <peff@peff.net>
Date
Sep 7, 2010, 04:30 UTC
Message-ID
<20100907043050.GA13291@sigill.intra.peff.net>
In-Reply-To
<20100907015317.GG1182@burratino>
On Mon, Sep 06, 2010 at 08:53:18PM -0500, Jonathan Nieder wrote:
> This test already has impeccable style,
I don't think my style has ever been called impeccable...
> with one exception: there is an unnecessary use of a subshell.  Use a
> {} block instead.

OK. Does this actually matter for anything? I know Windows has slow fork, but I doubt it is measurable here.

Show 5 quoted lines
> While at it:
> 
>  - guard setup commands with test_expect_success, so the commands
>    are printed when the test is run with "-v" and errors in setup
>    can be caught;

This confuses me. The setup is _already_ run inside test_expect_success. It is only the shell function definitions you are moving inside. Do we really care about this? If so, aren't there a zillion other places where we define shell functions in test scripts? Try "git grep '^[a-z][a-z]* *('".

You do move some variable definitions inside, too,, but IMO you are making at least one of them less readable, because you have to deal with the extra quoting layer of test_expect_success. IOW:

> -SECTION="test.q\"s\\sq'sp e.key"
>  test_expect_success 'make sure git config escapes section names properly' '
> +       SECTION="test.q\"s\\sq'\''sp e.key" &&
seems like a net loss to me.
>  - use echo instead of printf to print simple text ending with a
>    newline, so the later use of printf stands out more;
No complaint here.
>  - put a single space before () in function definitions, for
>    consistency with other shell scripts in git;

Again, I am not sure we care, but if we do, there are a ton of other places: git grep '^[a-z][a-z]*('.

>  - reorder arguments to test_cmp as "test_cmp expected actual".

Yeah, I prefer it as "test_cmp expected actual". I'm surprised I ever wrote it the other way (actually, I think it is because my writing predates test_cmp, even).

So I dunno. Most of it I am fine with, though I question whether it is really worth the effort. But I really don't want to be too draconian about "everything must go into test_expect_success". Sure, if you are executing commands that might have output, or might be of interest to the user, put them there. But I find this a lot more readable:

cat >expect <<'EOF'
... some expected output ...
EOF
test_expect_success 'frob it' '
        git frob &&
        test_cmp expect actual
'
than:
test_expect_success 'frob it' '
        cat >expect <<"EOF" &&
... some expected output ...
EOF
        git frob &&
        test_cmp expect actual
'
-Peff
Previous: Jonathan NiederNext: Junio C Hamano
Message 14 of 27 in “Several tests: cd inside subshell instead of around”
  1. Several tests: cd inside subshell instead of aroundJens Lehmann, Sep 6, 2010
  2. Jonathan NiederSep 6, 2010
  3. Jens LehmannSep 6, 2010
  4. 0/7 Re: [PATCH] Several tests: cd inside subshell instead of aroundJonathan Nieder, Sep 7, 2010
  5. 1/7 tests: subshell indentation stylefixJonathan Nieder, Sep 7, 2010
  6. Jonathan NiederSep 7, 2010
  7. 2/7 t1450 (fsck): remove dangling objectsJonathan Nieder, Sep 7, 2010
  8. 3/7 t2105 (gitfile): add missing &&Jonathan Nieder, Sep 7, 2010
  9. Brad KingSep 7, 2010
  10. 4/7 t0004 (unwritable files): simplify error handlingJonathan Nieder, Sep 7, 2010
  11. 5/7 t1302 (core.repositoryversion): style tweaksJonathan Nieder, Sep 7, 2010
  12. Nguyen Thai Ngoc DuySep 7, 2010
  13. 6/7 t1303 (config): style tweaksJonathan Nieder, Sep 7, 2010
  14. Jeff KingSep 7, 2010
  15. Junio C HamanoSep 7, 2010
  16. Jonathan NiederSep 7, 2010
  17. guarding everything with test_expect_success (Re: [PATCH 6/7] t1303 (config): style tweaks)Jonathan Nieder, Sep 7, 2010
  18. Jeff KingSep 7, 2010
  19. Jonathan NiederSep 7, 2010
  20. 7/7 t2016 (checkout -p): use printf for multiline y/n inputJonathan Nieder, Sep 7, 2010
  21. Thomas RastSep 7, 2010
  22. Jonathan NiederSep 7, 2010
  23. Junio C HamanoSep 6, 2010
  24. Jonathan NiederSep 7, 2010
  25. Junio C HamanoSep 7, 2010
  26. Jonathan NiederSep 7, 2010
  27. t1020: Get rid of 'cd "$HERE"' at the start of each testJens Lehmann, Sep 7, 2010

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.