(CommandList
  children: [
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:test_description)
          op: Equal
          rhs: {(SQ <'Return value of diffs'>)}
          spids: [4]
        )
      ]
      spids: [4]
    )
    (C {(.)} {(./test-lib.sh)})
    (C {(test_expect_success)} {(SQ <setup>)} 
      {
        (SQ <'\n'> <'\techo 1 >a &&\n'> <'\tgit add . &&\n'> <'\tgit commit -m first &&\n'> 
          <'\techo 2 >b &&\n'> <'\tgit add . &&\n'> <'\tgit commit -a -m second &&\n'> <'\tmkdir -p test-outside/repo && (\n'> 
          <'\t\tcd test-outside/repo &&\n'> <'\t\tgit init &&\n'> <'\t\techo "1 1" >a &&\n'> <'\t\tgit add . &&\n'> <'\t\tgit commit -m 1\n'> 
          <'\t) &&\n'> <'\tmkdir -p test-outside/non/git && (\n'> <'\t\tcd test-outside/non/git &&\n'> 
          <'\t\techo "1 1" >a &&\n'> <'\t\techo "1 1" >matching-file &&\n'> <'\t\techo "1 1 " >trailing-space &&\n'> 
          <'\t\techo "1   1" >extra-space &&\n'> <'\t\techo "2" >never-match\n'> <'\t)\n'>
        )
      }
    )
    (C {(test_expect_success)} {(SQ <'git diff-tree HEAD^ HEAD'>)} 
      {
        (SQ <'\n'> <'\ttest_expect_code 1 git diff-tree --quiet HEAD^ HEAD >cnt &&\n'> 
          <'\ttest_line_count = 0 cnt\n'>
        )
      }
    )
    (C {(test_expect_success)} {(SQ <'git diff-tree HEAD^ HEAD -- a'>)} 
      {
        (SQ <'\n'> <'\ttest_expect_code 0 git diff-tree --quiet HEAD^ HEAD -- a >cnt &&\n'> 
          <'\ttest_line_count = 0 cnt\n'>
        )
      }
    )
    (C {(test_expect_success)} {(SQ <'git diff-tree HEAD^ HEAD -- b'>)} 
      {
        (SQ <'\n'> <'\ttest_expect_code 1 git diff-tree --quiet HEAD^ HEAD -- b >cnt &&\n'> 
          <'\ttest_line_count = 0 cnt\n'>
        )
      }
    )
    (C {(test_expect_success)} {(SQ <'echo HEAD | git diff-tree --stdin'>)} 
      {
        (SQ <'\n'> <'\techo $(git rev-parse HEAD) |\n'> 
          <'\ttest_expect_code 1 git diff-tree --quiet --stdin >cnt &&\n'> <'\ttest_line_count = 1 cnt\n'>
        )
      }
    )
    (C {(test_expect_success)} {(SQ <'git diff-tree HEAD HEAD'>)} 
      {
        (SQ <'\n'> <'\ttest_expect_code 0 git diff-tree --quiet HEAD HEAD >cnt &&\n'> 
          <'\ttest_line_count = 0 cnt\n'>
        )
      }
    )
    (C {(test_expect_success)} {(SQ <'git diff-files'>)} 
      {
        (SQ <'\n'> <'\ttest_expect_code 0 git diff-files --quiet >cnt &&\n'> 
          <'\ttest_line_count = 0 cnt\n'>
        )
      }
    )
    (C {(test_expect_success)} {(SQ <'git diff-index --cached HEAD'>)} 
      {
        (SQ <'\n'> <'\ttest_expect_code 0 git diff-index --quiet --cached HEAD >cnt &&\n'> 
          <'\ttest_line_count = 0 cnt\n'>
        )
      }
    )
    (C {(test_expect_success)} {(SQ <'git diff-index --cached HEAD^'>)} 
      {
        (SQ <'\n'> <'\ttest_expect_code 1 git diff-index --quiet --cached HEAD^ >cnt &&\n'> 
          <'\ttest_line_count = 0 cnt\n'>
        )
      }
    )
    (C {(test_expect_success)} {(SQ <'git diff-index --cached HEAD^'>)} 
      {
        (SQ <'\n'> <'\techo text >>b &&\n'> <'\techo 3 >c &&\n'> <'\tgit add . &&\n'> 
          <'\ttest_expect_code 1 git diff-index --quiet --cached HEAD^ >cnt &&\n'> <'\ttest_line_count = 0 cnt\n'>
        )
      }
    )
    (C {(test_expect_success)} {(SQ <'git diff-tree -Stext HEAD^ HEAD -- b'>)} 
      {
        (SQ <'\n'> <'\tgit commit -m "text in b" &&\n'> 
          <'\ttest_expect_code 1 git diff-tree --quiet -Stext HEAD^ HEAD -- b >cnt &&\n'> <'\ttest_line_count = 0 cnt\n'>
        )
      }
    )
    (C {(test_expect_success)} {(SQ <'git diff-tree -Snot-found HEAD^ HEAD -- b'>)} 
      {
        (SQ <'\n'> 
          <'\ttest_expect_code 0 git diff-tree --quiet -Snot-found HEAD^ HEAD -- b >cnt &&\n'> <'\ttest_line_count = 0 cnt\n'>
        )
      }
    )
    (C {(test_expect_success)} {(SQ <'git diff-files'>)} 
      {
        (SQ <'\n'> <'\techo 3 >>c &&\n'> <'\ttest_expect_code 1 git diff-files --quiet >cnt &&\n'> 
          <'\ttest_line_count = 0 cnt\n'>
        )
      }
    )
    (C {(test_expect_success)} {(SQ <'git diff-index --cached HEAD'>)} 
      {
        (SQ <'\n'> <'\tgit update-index c &&\n'> 
          <'\ttest_expect_code 1 git diff-index --quiet --cached HEAD >cnt &&\n'> <'\ttest_line_count = 0 cnt\n'>
        )
      }
    )
    (C {(test_expect_success)} {(SQ <'git diff, one file outside repo'>)} 
      {
        (SQ <'\n'> <'\t(\n'> <'\t\tcd test-outside/repo &&\n'> 
          <'\t\ttest_expect_code 0 git diff --quiet a ../non/git/matching-file &&\n'> <'\t\ttest_expect_code 1 git diff --quiet a ../non/git/extra-space\n'> <'\t)\n'>
        )
      }
    )
    (C {(test_expect_success)} {(SQ <'git diff, both files outside repo'>)} 
      {
        (SQ <'\n'> <'\t(\n'> <'\t\tGIT_CEILING_DIRECTORIES="$TRASH_DIRECTORY/test-outside" &&\n'> 
          <'\t\texport GIT_CEILING_DIRECTORIES &&\n'> <'\t\tcd test-outside/non/git &&\n'> <'\t\ttest_expect_code 0 git diff --quiet a matching-file &&\n'> 
          <'\t\ttest_expect_code 1 git diff --quiet a extra-space\n'> <'\t)\n'>
        )
      }
    )
    (C {(test_expect_success)} {(SQ <'git diff --ignore-space-at-eol, one file outside repo'>)} 
      {
        (SQ <'\n'> <'\t(\n'> <'\t\tcd test-outside/repo &&\n'> 
          <
'\t\ttest_expect_code 0 git diff --quiet --ignore-space-at-eol a ../non/git/trailing-space &&\n'
          > <'\t\ttest_expect_code 1 git diff --quiet --ignore-space-at-eol a ../non/git/extra-space\n'> <'\t)\n'>
        )
      }
    )
    (C {(test_expect_success)} {(SQ <'git diff --ignore-space-at-eol, both files outside repo'>)} 
      {
        (SQ <'\n'> <'\t(\n'> <'\t\tGIT_CEILING_DIRECTORIES="$TRASH_DIRECTORY/test-outside" &&\n'> 
          <'\t\texport GIT_CEILING_DIRECTORIES &&\n'> <'\t\tcd test-outside/non/git &&\n'> 
          <'\t\ttest_expect_code 0 git diff --quiet --ignore-space-at-eol a trailing-space &&\n'> <'\t\ttest_expect_code 1 git diff --quiet --ignore-space-at-eol a extra-space\n'> <'\t)\n'>
        )
      }
    )
    (C {(test_expect_success)} {(SQ <'git diff --ignore-all-space, one file outside repo'>)} 
      {
        (SQ <'\n'> <'\t(\n'> <'\t\tcd test-outside/repo &&\n'> 
          <
'\t\ttest_expect_code 0 git diff --quiet --ignore-all-space a ../non/git/trailing-space &&\n'
          > <'\t\ttest_expect_code 0 git diff --quiet --ignore-all-space a ../non/git/extra-space &&\n'> 
          <'\t\ttest_expect_code 1 git diff --quiet --ignore-all-space a ../non/git/never-match\n'> <'\t)\n'>
        )
      }
    )
    (C {(test_expect_success)} {(SQ <'git diff --ignore-all-space, both files outside repo'>)} 
      {
        (SQ <'\n'> <'\t(\n'> <'\t\tGIT_CEILING_DIRECTORIES="$TRASH_DIRECTORY/test-outside" &&\n'> 
          <'\t\texport GIT_CEILING_DIRECTORIES &&\n'> <'\t\tcd test-outside/non/git &&\n'> 
          <'\t\ttest_expect_code 0 git diff --quiet --ignore-all-space a trailing-space &&\n'> <'\t\ttest_expect_code 0 git diff --quiet --ignore-all-space a extra-space &&\n'> 
          <'\t\ttest_expect_code 1 git diff --quiet --ignore-all-space a never-match\n'> <'\t)\n'>
        )
      }
    )
    (C {(test_expect_success)} {(SQ <'git diff --quiet ignores stat-change only entries'>)} 
      {
        (SQ <'\n'> <'\ttest-chmtime +10 a &&\n'> <'\techo modified >>b &&\n'> 
          <'\ttest_expect_code 1 git diff --quiet\n'>
        )
      }
    )
    (C {(test_done)})
  ]
)