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

Re: [PATCH v2] tests: add initial bash completion tests

From
SZEDER Gábor <szeder@ira.uka.de>
Date
Apr 17, 2012, 10:22 UTC
Message-ID
<20120417102215.GA22778@goldbirke>
In-Reply-To
<CAMP44s1CTCPThri6mq0NTvD27WTEiwLTfhHCw+nD+8YwApwL=g@mail.gmail.com>
On Tue, Apr 17, 2012 at 09:32:29AM +0300, Felipe Contreras wrote:
Show 39 quoted lines
> On Tue, Apr 17, 2012 at 3:31 AM, SZEDER Gábor <szeder@fzi.de> wrote:
> > Hi,
> >
> >
> > I picked up Stephen Boyd's two-patch series[1] to use parse-options to
> > generate options for git commands, and the following test promply
> > failed (taken from 5c293a6b (tests: add initial bash completion tests,
> > 2012-04-12)):
> >
> > test_expect_success 'double dash "git checkout"' '
> >        sed -e "s/Z$//" >expected <<-\EOF &&
> >        --quiet Z
> >        --ours Z
> >        --theirs Z
> >        --track Z
> >        --no-track Z
> >        --merge Z
> >        --conflict=
> >        --orphan Z
> >        --patch Z
> >        EOF
> >        test_completion "git checkout --"
> > '
> >
> > Not surprising, the completion script doesn't know about many 'git
> > checkout' long options.  So whenever 'git checkout' learns a new long
> > option, this list must be updated.  This won't be more work than the
> > update of the completion script, so this is probably OK.
> >
> > But it got me thinking about what do we actually want to test here?
> > Whether the completion script returns the right long options in a
> > specific order upon 'git checkout --<TAB>'?  Or whether _git() works
> > properly and invokes the right command-specific completion function?
> > Or whether regular options get a trailing space while options
> > expecting an argument don't?  Or is this sort of an integration test
> > and basically all of the above?
> 
> I don't think the order is relevant, just that all the options are
> there, 

The order of options is not relevant in the completion script, because Bash will sort them alphabetically anyway. But it is relevant in the test: it fails if the order is changed either in the completion script or in the test.

> and the ones with arguments have a = in there, and the ones
> that don't, a space.
Couldn't we check that better with a test or two for __gitcomp()?

If a test for __gitcomp() fails, we would immediately have a fairly good idea where to look for the cause of the breakage. However, if this 'double dash "git checkout"' test fails, there are a bunch of other things that can possibly cause the failure.

Patch comes in a minute.

Best, Gábor

Previous: Felipe ContrerasNext: SZEDER Gábor
Message 20 of 21 in “tests: add initial bash completion tests”
  1. tests: add initial bash completion testsFelipe Contreras, Apr 11, 2012
  2. Junio C HamanoApr 11, 2012
  3. Felipe ContrerasApr 12, 2012
  4. Junio C HamanoApr 12, 2012
  5. Felipe ContrerasApr 12, 2012
  6. Junio C HamanoApr 12, 2012
  7. Junio C HamanoApr 13, 2012
  8. SZEDER GáborApr 13, 2012
  9. SZEDER GáborApr 13, 2012
  10. Felipe ContrerasApr 13, 2012
  11. SZEDER GáborApr 13, 2012
  12. Felipe ContrerasApr 13, 2012
  13. Felipe ContrerasApr 13, 2012
  14. SZEDER GáborApr 13, 2012
  15. Thomas RastApr 13, 2012
  16. Junio C HamanoApr 13, 2012
  17. Felipe ContrerasApr 14, 2012
  18. SZEDER GáborApr 17, 2012
  19. Felipe ContrerasApr 17, 2012
  20. SZEDER GáborApr 17, 2012
  21. tests: add tests for the __gitcomp() completion helper functionSZEDER Gábor, Apr 17, 2012

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.