(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 zeroth &&\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'>
        )
      }
    )
    (C {(test_expect_success)} {(SQ <'git diff --quiet -w  HEAD^^ HEAD^'>)} 
      {(SQ <'\n'> <'\tgit diff --quiet -w HEAD^^ HEAD^\n'>)}
    )
    (C {(test_expect_success)} {(SQ <'git diff --quiet HEAD^^ HEAD^'>)} 
      {(SQ <'\n'> <'\ttest_must_fail git diff --quiet HEAD^^ HEAD^\n'>)}
    )
    (C {(test_expect_success)} {(SQ <'git diff --quiet -w  HEAD^ HEAD'>)} 
      {(SQ <'\n'> <'\ttest_must_fail git diff --quiet -w HEAD^ HEAD\n'>)}
    )
    (C {(test_expect_success)} {(SQ <'git diff-tree HEAD^ HEAD'>)} 
      {(SQ <'\n'> <'\ttest_expect_code 1 git diff-tree --exit-code HEAD^ HEAD\n'>)}
    )
    (C {(test_expect_success)} {(SQ <'git diff-tree HEAD^ HEAD -- a'>)} 
      {(SQ <'\n'> <'\tgit diff-tree --exit-code HEAD^ HEAD -- a\n'>)}
    )
    (C {(test_expect_success)} {(SQ <'git diff-tree HEAD^ HEAD -- b'>)} 
      {(SQ <'\n'> <'\ttest_expect_code 1 git diff-tree --exit-code HEAD^ HEAD -- b\n'>)}
    )
    (C {(test_expect_success)} {(SQ <'echo HEAD | git diff-tree --stdin'>)} 
      {
        (SQ <'\n'> 
          <'\techo $(git rev-parse HEAD) | test_expect_code 1 git diff-tree --exit-code --stdin\n'>
        )
      }
    )
    (C {(test_expect_success)} {(SQ <'git diff-tree HEAD HEAD'>)} 
      {(SQ <'\n'> <'\tgit diff-tree --exit-code HEAD HEAD\n'>)}
    )
    (C {(test_expect_success)} {(SQ <'git diff-files'>)} {(SQ <'\n'> <'\tgit diff-files --exit-code\n'>)})
    (C {(test_expect_success)} {(SQ <'git diff-index --cached HEAD'>)} 
      {(SQ <'\n'> <'\tgit diff-index --exit-code --cached HEAD\n'>)}
    )
    (C {(test_expect_success)} {(SQ <'git diff-index --cached HEAD^'>)} 
      {(SQ <'\n'> <'\ttest_expect_code 1 git diff-index --exit-code --cached HEAD^\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 --exit-code --cached HEAD^\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 -p --exit-code -Stext HEAD^ HEAD -- b\n'>
        )
      }
    )
    (C {(test_expect_success)} {(SQ <'git diff-tree -Snot-found HEAD^ HEAD -- b'>)} 
      {(SQ <'\n'> <'\tgit diff-tree -p --exit-code -Snot-found HEAD^ HEAD -- b\n'>)}
    )
    (C {(test_expect_success)} {(SQ <'git diff-files'>)} 
      {(SQ <'\n'> <'\techo 3 >>c &&\n'> <'\ttest_expect_code 1 git diff-files --exit-code\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 --exit-code --cached HEAD\n'>
        )
      }
    )
    (C {(test_expect_success)} {(SQ <'--check --exit-code returns 0 for no difference'>)} 
      {(SQ <'\n'> <'\n'> <'\tgit diff --check --exit-code\n'> <'\n'>)}
    )
    (C {(test_expect_success)} {(SQ <'--check --exit-code returns 1 for a clean difference'>)} 
      {
        (SQ <'\n'> <'\n'> <'\techo "good" > a &&\n'> 
          <'\ttest_expect_code 1 git diff --check --exit-code\n'> <'\n'>
        )
      }
    )
    (C {(test_expect_success)} {(SQ <'--check --exit-code returns 3 for a dirty difference'>)} 
      {
        (SQ <'\n'> <'\n'> <'\techo "bad   " >> a &&\n'> 
          <'\ttest_expect_code 3 git diff --check --exit-code\n'> <'\n'>
        )
      }
    )
    (C {(test_expect_success)} {(SQ <'--check with --no-pager returns 2 for dirty difference'>)} 
      {(SQ <'\n'> <'\n'> <'\ttest_expect_code 2 git --no-pager diff --check\n'> <'\n'>)}
    )
    (C {(test_expect_success)} {(SQ <'check should test not just the last line'>)} 
      {
        (SQ <'\n'> <'\techo "" >>a &&\n'> <'\ttest_expect_code 2 git --no-pager diff --check\n'> <'\n'>)
      }
    )
    (C {(test_expect_success)} {(SQ <'check detects leftover conflict markers'>)} 
      {
        (SQ <'\n'> <'\tgit reset --hard &&\n'> <'\tgit checkout HEAD^ &&\n'> <'\techo binary >>b &&\n'> 
          <'\tgit commit -m "side" b &&\n'> <'\ttest_must_fail git merge master &&\n'> <'\tgit add b &&\n'> 
          <'\ttest_expect_code 2 git --no-pager diff --cached --check >test.out &&\n'> <'\ttest 3 = $(grep "conflict marker" test.out | wc -l) &&\n'> <'\tgit reset --hard\n'>
        )
      }
    )
    (C {(test_expect_success)} {(SQ <'check honors conflict marker length'>)} 
      {
        (SQ <'\n'> <'\tgit reset --hard &&\n'> <'\techo ">>>>>>> boo" >>b &&\n'> 
          <'\techo "======" >>a &&\n'> <'\tgit diff --check a &&\n'> <'\ttest_expect_code 2 git diff --check b &&\n'> 
          <'\tgit reset --hard &&\n'> <'\techo ">>>>>>>> boo" >>b &&\n'> <'\techo "========" >>a &&\n'> <'\tgit diff --check &&\n'> 
          <'\techo "b conflict-marker-size=8" >.gitattributes &&\n'> <'\ttest_expect_code 2 git diff --check b &&\n'> <'\tgit diff --check a &&\n'> <'\tgit reset --hard\n'>
        )
      }
    )
    (C {(test_done)})
  ]
)