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

Re: [PATCH v2 7/7] t4045: test 'diff --relative' for real

From
Jacob Keller <jacob.keller@gmail.com>
Date
Dec 7, 2017, 19:06 UTC
Message-ID
<CA+P7+xoYEQ8sD+hSk+N95xAaRkMo15+kDRNB5rH5dgbGCfPieQ@mail.gmail.com>
In-Reply-To
<20171207173034.12865-4-gitster@pobox.com>
On Thu, Dec 7, 2017 at 9:30 AM, Junio C Hamano <gitster@pobox.com> wrote:
Show 57 quoted lines
> The existing tests only checked how well -relative=<dir> work,
> without testing --relative (without any value).
>
> Signed-off-by: Junio C Hamano <gitster@pobox.com>
> ---
>  t/t4045-diff-relative.sh | 24 ++++++++++++++++++++----
>  1 file changed, 20 insertions(+), 4 deletions(-)
>
> diff --git a/t/t4045-diff-relative.sh b/t/t4045-diff-relative.sh
> index fefd2f3f81..815cdd7295 100755
> --- a/t/t4045-diff-relative.sh
> +++ b/t/t4045-diff-relative.sh
> @@ -25,7 +25,10 @@ check_diff () {
>         +other content
>         EOF
>         test_expect_success "-p $*" "
> -               git diff -p $* HEAD^ >actual &&
> +               (
> +                       test -z "$in_there" || cd "$in_there"
> +                       git diff -p $* HEAD^
> +               ) >actual &&
>                 test_cmp expected actual
>         "
>  }
> @@ -38,7 +41,10 @@ check_numstat () {
>         EOF
>         test_expect_success "--numstat $*" "
>                 echo '1 0       $expect' >expected &&
> -               git diff --numstat $* HEAD^ >actual &&
> +               (
> +                       test -z "$in_there" || cd "$in_there"
> +                       git diff --numstat $* HEAD^
> +               ) >actual &&
>                 test_cmp expected actual
>         "
>  }
> @@ -51,7 +57,10 @@ check_stat () {
>          1 file changed, 1 insertion(+)
>         EOF
>         test_expect_success "--stat $*" "
> -               git diff --stat $* HEAD^ >actual &&
> +               (
> +                       test -z "$in_there" || cd "$in_there"
> +                       git diff --stat $* HEAD^
> +               ) >actual &&
>                 test_i18ncmp expected actual
>         "
>  }
> @@ -63,15 +72,22 @@ check_raw () {
>         :000000 100644 0000000000000000000000000000000000000000 25c05ef3639d2d270e7fe765a67668f098092bc5 A      $expect
>         EOF
>         test_expect_success "--raw $*" "
> -               git diff --no-abbrev --raw $* HEAD^ >actual &&
> +               (
> +                       test -z "$in_there" || cd "$in_there"
> +                       git diff --no-abbrev --raw $* HEAD^ >actual
> +               ) &&

You could avoid the subshell by just passing $in_there to -C on the git commands. Same for the other tests. If you quote it, -C '$in_there', then it will work regardless of if in_there is set or not, (-C with an empty string doesn't cd anywhere). I think this is generally preferable for tests given it helps avoid unnecessary subshells when testing on Windows..?

Show 15 quoted lines
>                 test_cmp expected actual
>         "
>  }
>
>  for type in diff numstat stat raw
>  do
> +       in_there=
>         check_$type file2 --relative=subdir/
>         check_$type file2 --relative=subdir
> +       in_there=subdir
> +       check_$type file2 --relative
> +       in_there=
>         check_$type dir/file2 --relative=sub
>  done
>

This isn't quite what I had in mind for the directory parameter. I passed it as an extra argument, but I think this is probably more sensible.

> --
> 2.15.1-480-gbc5668f98a
>
Previous: Junio C HamanoNext: Junio C Hamano
Message 7 of 15 in “diff: add test showing regression to --relative”
  1. diff: add test showing regression to --relativeJacob Keller, Dec 7, 2017
  2. Jeff KingDec 7, 2017
  3. Jacob KellerDec 7, 2017
  4. 0/7 reroll of cc/skip-to-optional-valJunio C Hamano, Dec 7, 2017
  5. 6/7 t4045: reindent to make helpers readableJunio C Hamano, Dec 7, 2017
  6. 7/7 t4045: test 'diff --relative' for realJunio C Hamano, Dec 7, 2017
  7. Jacob KellerDec 7, 2017
  8. 5/7 diff: use skip-to-optional-val in parsing --relativeJunio C Hamano, Dec 7, 2017
  9. Jacob KellerDec 7, 2017
  10. Jeff KingDec 7, 2017
  11. Junio C HamanoDec 7, 2017
  12. Jeff KingDec 7, 2017
  13. Junio C HamanoDec 7, 2017
  14. Jeff KingDec 8, 2017
  15. Junio C HamanoDec 8, 2017

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.