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

Re: [PATCH v3 12/9] t7800: add tests for difftool --dir-diff

From
David Aguilar <davvid@gmail.com>
Date
Mar 22, 2012, 09:53 UTC
Message-ID
<CAJDDKr7m3Ur-RNHffkW9rvbT6kpXWjKMG+Kiw5ausQw5058LHw@mail.gmail.com>
In-Reply-To
<1332358560-13774-6-git-send-email-tim.henigan@gmail.com>
On Wed, Mar 21, 2012 at 12:36 PM, Tim Henigan <tim.henigan@gmail.com> wrote:
Show 49 quoted lines
> Signed-off-by: Tim Henigan <tim.henigan@gmail.com>
> ---
>  t/t7800-difftool.sh |   38 ++++++++++++++++++++++++++++++++++++++
>  1 file changed, 38 insertions(+)
>
> diff --git a/t/t7800-difftool.sh b/t/t7800-difftool.sh
> index 663247c..fca49d1 100755
> --- a/t/t7800-difftool.sh
> +++ b/t/t7800-difftool.sh
> @@ -305,4 +305,42 @@ test_expect_success PERL 'difftool --tool-help' '
>        echo "$tool_help" | stdin_contains tool
>  '
>
> +test_expect_success PERL 'setup change in subdirectory' '
> +       git checkout master &&
> +       mkdir sub &&
> +       echo master >sub/sub &&
> +       git add sub/sub &&
> +       git commit -m "added sub/sub" &&
> +       echo test >>file &&
> +       echo test >>sub/sub &&
> +       git add . &&
> +       git commit -m "modified both"
> +'
> +
> +test_expect_success PERL 'difftool -d' '
> +       diff=$(git difftool -d --extcmd ls branch) &&
> +       echo "$diff" | stdin_contains sub &&
> +       echo "$diff" | stdin_contains file
> +'
> +
> +test_expect_success PERL 'difftool --dir-diff' '
> +       diff=$(git difftool --dir-diff --extcmd ls branch) &&
> +       echo "$diff" | stdin_contains sub &&
> +       echo "$diff" | stdin_contains file
> +'
> +
> +test_expect_success PERL 'difftool --dir-diff ignores --prompt' '
> +       diff=$(git difftool --dir-diff --prompt --extcmd ls branch) &&
> +       echo "$diff" | stdin_contains sub &&
> +       echo "$diff" | stdin_contains file
> +'
> +
> +test_expect_success PERL 'difftool --dir-diff from subdirectory' '
> +       cd sub &&
> +       diff=$(git difftool --dir-diff --extcmd ls branch) &&
> +       echo "$diff" | stdin_contains sub &&
> +       echo "$diff" | stdin_contains file &&
> +       cd ..

If we wrap the subdir operations in parentheses then the sub-shell saves us from having to do "cd ..". It also helps prevent leakage from earlier failures, which is helpful when writing new tests.

(Please excuse any gmail whitespace mangling)
e.g.:
test_expect_success PERL 'difftool --dir-diff from subdirectory' '
       (
              cd sub &&
              diff=$(git difftool --dir-diff --extcmd ls branch) &&
              echo "$diff" | stdin_contains sub &&
              echo "$diff" | stdin_contains file
       )
'

It'd also be pretty neat if we could gather file content somehow. This would allow us to make assertions about the content of the left/right parameters passed to the tool. I don't know if that's test overkill ;-) but it seems like it could be helpful.

-- 
David
Previous: Tim HeniganNext: Tim Henigan
Message 16 of 17 in “difftool: teach command to perform directory diffs”
  1. 0/9 difftool: teach command to perform directory diffsTim Henigan, Mar 21, 2012
  2. 7/9 difftool: teach difftool to handle directory diffsTim Henigan, Mar 21, 2012
  3. 8/9 difftool: teach dir-diff to copy modified files back to working treeTim Henigan, Mar 21, 2012
  4. 10/9 difftool: do not allow mix of '--prompt' with '--no-prompt'Tim Henigan, Mar 21, 2012
  5. Junio C HamanoMar 21, 2012
  6. 10/9 difftool: fix regression in '--prompt' optionsTim Henigan, Mar 22, 2012
  7. Junio C HamanoMar 22, 2012
  8. Thomas RastMar 22, 2012
  9. Tim HeniganMar 22, 2012
  10. Junio C HamanoMar 22, 2012
  11. Tim HeniganMar 22, 2012
  12. Junio C HamanoMar 22, 2012
  13. Junio C HamanoMar 22, 2012
  14. 11/9 t7800: add test for difftool --tool-helpTim Henigan, Mar 21, 2012
  15. 12/9 t7800: add tests for difftool --dir-diffTim Henigan, Mar 21, 2012
  16. David AguilarMar 22, 2012
  17. Tim HeniganMar 22, 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.