(command.CommandList
  children: [
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:test_description)
          op: assign_op.Equal
          rhs: {(SQ (Token id:Id.Lit_Chars val:'Return value of diffs' span_id:6))}
          spids: [4]
        )
      ]
    )
    (C {(.)} {(./test-lib.sh)})
    (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:setup span_id:18))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:22) 
          (Token id:Id.Lit_Chars val:'\techo "1 " >a &&\n' span_id:23) (Token id:Id.Lit_Chars val:'\tgit add . &&\n' span_id:24) 
          (Token id:Id.Lit_Chars val:'\tgit commit -m zeroth &&\n' span_id:25) (Token id:Id.Lit_Chars val:'\techo 1 >a &&\n' span_id:26) 
          (Token id:Id.Lit_Chars val:'\tgit add . &&\n' span_id:27) (Token id:Id.Lit_Chars val:'\tgit commit -m first &&\n' span_id:28) 
          (Token id:Id.Lit_Chars val:'\techo 2 >b &&\n' span_id:29) (Token id:Id.Lit_Chars val:'\tgit add . &&\n' span_id:30) 
          (Token id:Id.Lit_Chars val:'\tgit commit -a -m second\n' span_id:31)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'git diff --quiet -w  HEAD^^ HEAD^' span_id:38))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:42) 
          (Token id:Id.Lit_Chars val:'\tgit diff --quiet -w HEAD^^ HEAD^\n' span_id:43)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'git diff --quiet HEAD^^ HEAD^' span_id:50))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:54) 
          (Token
            id: Id.Lit_Chars
            val: '\ttest_must_fail git diff --quiet HEAD^^ HEAD^\n'
            span_id: 55
          )
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'git diff --quiet -w  HEAD^ HEAD' span_id:62))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:66) 
          (Token
            id: Id.Lit_Chars
            val: '\ttest_must_fail git diff --quiet -w HEAD^ HEAD\n'
            span_id: 67
          )
        )
      }
    )
    (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'git diff-tree HEAD^ HEAD' span_id:74))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:78) 
          (Token
            id: Id.Lit_Chars
            val: '\ttest_expect_code 1 git diff-tree --exit-code HEAD^ HEAD\n'
            span_id: 79
          )
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'git diff-tree HEAD^ HEAD -- a' span_id:85))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:89) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit diff-tree --exit-code HEAD^ HEAD -- a\n'
            span_id: 90
          )
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'git diff-tree HEAD^ HEAD -- b' span_id:96))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:100) 
          (Token
            id: Id.Lit_Chars
            val: '\ttest_expect_code 1 git diff-tree --exit-code HEAD^ HEAD -- b\n'
            span_id: 101
          )
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'echo HEAD | git diff-tree --stdin' span_id:107))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:111) 
          (Token
            id: Id.Lit_Chars
            val: 
'\techo $(git rev-parse HEAD) | test_expect_code 1 git diff-tree --exit-code --stdin\n'
            span_id: 112
          )
        )
      }
    )
    (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'git diff-tree HEAD HEAD' span_id:118))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:122) 
          (Token id:Id.Lit_Chars val:'\tgit diff-tree --exit-code HEAD HEAD\n' span_id:123)
        )
      }
    )
    (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'git diff-files' span_id:129))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:133) 
          (Token id:Id.Lit_Chars val:'\tgit diff-files --exit-code\n' span_id:134)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'git diff-index --cached HEAD' span_id:140))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:144) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit diff-index --exit-code --cached HEAD\n'
            span_id: 145
          )
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'git diff-index --cached HEAD^' span_id:151))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:155) 
          (Token
            id: Id.Lit_Chars
            val: '\ttest_expect_code 1 git diff-index --exit-code --cached HEAD^\n'
            span_id: 156
          )
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'git diff-index --cached HEAD^' span_id:162))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:166) 
          (Token id:Id.Lit_Chars val:'\techo text >>b &&\n' span_id:167) (Token id:Id.Lit_Chars val:'\techo 3 >c &&\n' span_id:168) 
          (Token id:Id.Lit_Chars val:'\tgit add . &&\n' span_id:169) 
          (Token
            id: Id.Lit_Chars
            val: '\ttest_expect_code 1 git diff-index --exit-code --cached HEAD^\n'
            span_id: 170
          )
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'git diff-tree -Stext HEAD^ HEAD -- b' span_id:176))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:180) 
          (Token id:Id.Lit_Chars val:'\tgit commit -m "text in b" &&\n' span_id:181) 
          (Token
            id: Id.Lit_Chars
            val: '\ttest_expect_code 1 git diff-tree -p --exit-code -Stext HEAD^ HEAD -- b\n'
            span_id: 182
          )
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'git diff-tree -Snot-found HEAD^ HEAD -- b' span_id:188))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:192) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit diff-tree -p --exit-code -Snot-found HEAD^ HEAD -- b\n'
            span_id: 193
          )
        )
      }
    )
    (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'git diff-files' span_id:199))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:203) 
          (Token id:Id.Lit_Chars val:'\techo 3 >>c &&\n' span_id:204) (Token id:Id.Lit_Chars val:'\ttest_expect_code 1 git diff-files --exit-code\n' span_id:205)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'git diff-index --cached HEAD' span_id:211))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:215) 
          (Token id:Id.Lit_Chars val:'\tgit update-index c &&\n' span_id:216) 
          (Token
            id: Id.Lit_Chars
            val: '\ttest_expect_code 1 git diff-index --exit-code --cached HEAD\n'
            span_id: 217
          )
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'--check --exit-code returns 0 for no difference' span_id:224))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:228) (Token id:Id.Lit_Chars val:'\n' span_id:229) 
          (Token id:Id.Lit_Chars val:'\tgit diff --check --exit-code\n' span_id:230) (Token id:Id.Lit_Chars val:'\n' span_id:231)
        )
      }
    )
    (C {(test_expect_success)} 
      {
        (SQ 
          (Token
            id: Id.Lit_Chars
            val: '--check --exit-code returns 1 for a clean difference'
            span_id: 238
          )
        )
      } 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:242) (Token id:Id.Lit_Chars val:'\n' span_id:243) 
          (Token id:Id.Lit_Chars val:'\techo "good" > a &&\n' span_id:244) (Token id:Id.Lit_Chars val:'\ttest_expect_code 1 git diff --check --exit-code\n' span_id:245) 
          (Token id:Id.Lit_Chars val:'\n' span_id:246)
        )
      }
    )
    (C {(test_expect_success)} 
      {
        (SQ 
          (Token
            id: Id.Lit_Chars
            val: '--check --exit-code returns 3 for a dirty difference'
            span_id: 253
          )
        )
      } 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:257) (Token id:Id.Lit_Chars val:'\n' span_id:258) 
          (Token id:Id.Lit_Chars val:'\techo "bad   " >> a &&\n' span_id:259) (Token id:Id.Lit_Chars val:'\ttest_expect_code 3 git diff --check --exit-code\n' span_id:260) 
          (Token id:Id.Lit_Chars val:'\n' span_id:261)
        )
      }
    )
    (C {(test_expect_success)} 
      {
        (SQ 
          (Token
            id: Id.Lit_Chars
            val: '--check with --no-pager returns 2 for dirty difference'
            span_id: 268
          )
        )
      } 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:272) (Token id:Id.Lit_Chars val:'\n' span_id:273) 
          (Token
            id: Id.Lit_Chars
            val: '\ttest_expect_code 2 git --no-pager diff --check\n'
            span_id: 274
          ) (Token id:Id.Lit_Chars val:'\n' span_id:275)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'check should test not just the last line' span_id:282))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:286) 
          (Token id:Id.Lit_Chars val:'\techo "" >>a &&\n' span_id:287) (Token id:Id.Lit_Chars val:'\ttest_expect_code 2 git --no-pager diff --check\n' span_id:288) 
          (Token id:Id.Lit_Chars val:'\n' span_id:289)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'check detects leftover conflict markers' span_id:296))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:300) 
          (Token id:Id.Lit_Chars val:'\tgit reset --hard &&\n' span_id:301) (Token id:Id.Lit_Chars val:'\tgit checkout HEAD^ &&\n' span_id:302) 
          (Token id:Id.Lit_Chars val:'\techo binary >>b &&\n' span_id:303) (Token id:Id.Lit_Chars val:'\tgit commit -m "side" b &&\n' span_id:304) 
          (Token id:Id.Lit_Chars val:'\ttest_must_fail git merge master &&\n' span_id:305) (Token id:Id.Lit_Chars val:'\tgit add b &&\n' span_id:306) 
          (Token
            id: Id.Lit_Chars
            val: '\ttest_expect_code 2 git --no-pager diff --cached --check >test.out &&\n'
            span_id: 307
          ) (Token id:Id.Lit_Chars val:'\ttest 3 = $(grep "conflict marker" test.out | wc -l) &&\n' span_id:308) 
          (Token id:Id.Lit_Chars val:'\tgit reset --hard\n' span_id:309)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'check honors conflict marker length' span_id:316))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:320) 
          (Token id:Id.Lit_Chars val:'\tgit reset --hard &&\n' span_id:321) (Token id:Id.Lit_Chars val:'\techo ">>>>>>> boo" >>b &&\n' span_id:322) 
          (Token id:Id.Lit_Chars val:'\techo "======" >>a &&\n' span_id:323) (Token id:Id.Lit_Chars val:'\tgit diff --check a &&\n' span_id:324) 
          (Token
            id: Id.Lit_Chars
            val: '\ttest_expect_code 2 git diff --check b &&\n'
            span_id: 325
          ) (Token id:Id.Lit_Chars val:'\tgit reset --hard &&\n' span_id:326) 
          (Token id:Id.Lit_Chars val:'\techo ">>>>>>>> boo" >>b &&\n' span_id:327) (Token id:Id.Lit_Chars val:'\techo "========" >>a &&\n' span_id:328) 
          (Token id:Id.Lit_Chars val:'\tgit diff --check &&\n' span_id:329) (Token id:Id.Lit_Chars val:'\techo "b conflict-marker-size=8" >.gitattributes &&\n' span_id:330) 
          (Token
            id: Id.Lit_Chars
            val: '\ttest_expect_code 2 git diff --check b &&\n'
            span_id: 331
          ) (Token id:Id.Lit_Chars val:'\tgit diff --check a &&\n' span_id:332) 
          (Token id:Id.Lit_Chars val:'\tgit reset --hard\n' span_id:333)
        )
      }
    )
    (C {(test_done)})
  ]
)