(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:'git apply with rejects\n' span_id:15) 
                (Token id:Id.Lit_Chars val:'\n' span_id:16)
              )
            }
          spids: [13]
        )
      ]
    )
    (C {(.)} {(./test-lib.sh)})
    (C {(test_expect_success)} {(setup)} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:30) 
          (Token
            id: Id.Lit_Chars
            val: '\tfor i in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21\n'
            span_id: 31
          ) (Token id:Id.Lit_Chars val:'\tdo\n' span_id:32) (Token id:Id.Lit_Chars val:'\t\techo $i\n' span_id:33) 
          (Token id:Id.Lit_Chars val:'\tdone >file1 &&\n' span_id:34) (Token id:Id.Lit_Chars val:'\tcat file1 >saved.file1 &&\n' span_id:35) 
          (Token id:Id.Lit_Chars val:'\tgit update-index --add file1 &&\n' span_id:36) (Token id:Id.Lit_Chars val:'\tgit commit -m initial &&\n' span_id:37) 
          (Token id:Id.Lit_Chars val:'\n' span_id:38) 
          (Token
            id: Id.Lit_Chars
            val: '\tfor i in 1 2 A B 4 5 6 7 8 9 10 11 12 C 13 14 15 16 17 18 19 20 D 21\n'
            span_id: 39
          ) (Token id:Id.Lit_Chars val:'\tdo\n' span_id:40) (Token id:Id.Lit_Chars val:'\t\techo $i\n' span_id:41) 
          (Token id:Id.Lit_Chars val:'\tdone >file1 &&\n' span_id:42) (Token id:Id.Lit_Chars val:'\tgit diff >patch.1 &&\n' span_id:43) 
          (Token id:Id.Lit_Chars val:'\tcat file1 >clean &&\n' span_id:44) (Token id:Id.Lit_Chars val:'\n' span_id:45) 
          (Token
            id: Id.Lit_Chars
            val: '\tfor i in 1 E 2 3 4 5 6 7 8 9 10 11 12 C 13 14 15 16 17 18 19 20 F 21\n'
            span_id: 46
          ) (Token id:Id.Lit_Chars val:'\tdo\n' span_id:47) (Token id:Id.Lit_Chars val:'\t\techo $i\n' span_id:48) 
          (Token id:Id.Lit_Chars val:'\tdone >expected &&\n' span_id:49) (Token id:Id.Lit_Chars val:'\n' span_id:50) 
          (Token id:Id.Lit_Chars val:'\tmv file1 file2 &&\n' span_id:51) (Token id:Id.Lit_Chars val:'\tgit update-index --add --remove file1 file2 &&\n' span_id:52) 
          (Token id:Id.Lit_Chars val:'\tgit diff -M HEAD >patch.2 &&\n' span_id:53) (Token id:Id.Lit_Chars val:'\n' span_id:54) 
          (Token id:Id.Lit_Chars val:'\trm -f file1 file2 &&\n' span_id:55) (Token id:Id.Lit_Chars val:'\tmv saved.file1 file1 &&\n' span_id:56) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit update-index --add --remove file1 file2 &&\n'
            span_id: 57
          ) (Token id:Id.Lit_Chars val:'\n' span_id:58) 
          (Token
            id: Id.Lit_Chars
            val: '\tfor i in 1 E 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 F 21\n'
            span_id: 59
          ) (Token id:Id.Lit_Chars val:'\tdo\n' span_id:60) (Token id:Id.Lit_Chars val:'\t\techo $i\n' span_id:61) 
          (Token id:Id.Lit_Chars val:'\tdone >file1 &&\n' span_id:62) (Token id:Id.Lit_Chars val:'\n' span_id:63) 
          (Token id:Id.Lit_Chars val:'\tcat file1 >saved.file1\n' span_id:64)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'apply --reject is incompatible with --3way' span_id:71))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:75) 
          (Token
            id: Id.Lit_Chars
            val: '\ttest_when_finished "cat saved.file1 >file1" &&\n'
            span_id: 76
          ) (Token id:Id.Lit_Chars val:'\tgit diff >patch.0 &&\n' span_id:77) 
          (Token id:Id.Lit_Chars val:'\tgit checkout file1 &&\n' span_id:78) (Token id:Id.Lit_Chars val:'\ttest_must_fail git apply --reject --3way patch.0 &&\n' span_id:79) 
          (Token id:Id.Lit_Chars val:'\tgit diff --exit-code\n' span_id:80)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'apply without --reject should fail' span_id:87))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:91) (Token id:Id.Lit_Chars val:'\n' span_id:92) 
          (Token id:Id.Lit_Chars val:'\ttest_must_fail git apply patch.1 &&\n' span_id:93) (Token id:Id.Lit_Chars val:'\ttest_cmp file1 saved.file1\n' span_id:94)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'apply without --reject should fail' span_id:101))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:105) (Token id:Id.Lit_Chars val:'\n' span_id:106) 
          (Token
            id: Id.Lit_Chars
            val: '\ttest_must_fail git apply --verbose patch.1 &&\n'
            span_id: 107
          ) (Token id:Id.Lit_Chars val:'\ttest_cmp file1 saved.file1\n' span_id:108)
        )
      }
    )
    (C {(test_expect_success)} 
      {
        (SQ 
          (Token
            id: Id.Lit_Chars
            val: 'apply with --reject should fail but update the file'
            span_id: 115
          )
        )
      } 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:119) (Token id:Id.Lit_Chars val:'\n' span_id:120) 
          (Token id:Id.Lit_Chars val:'\tcat saved.file1 >file1 &&\n' span_id:121) (Token id:Id.Lit_Chars val:'\trm -f file1.rej file2.rej &&\n' span_id:122) 
          (Token id:Id.Lit_Chars val:'\n' span_id:123) (Token id:Id.Lit_Chars val:'\ttest_must_fail git apply --reject patch.1 &&\n' span_id:124) 
          (Token id:Id.Lit_Chars val:'\ttest_cmp file1 expected &&\n' span_id:125) (Token id:Id.Lit_Chars val:'\n' span_id:126) 
          (Token id:Id.Lit_Chars val:'\tcat file1.rej &&\n' span_id:127) (Token id:Id.Lit_Chars val:'\ttest_path_is_missing file2.rej\n' span_id:128)
        )
      }
    )
    (C {(test_expect_success)} 
      {
        (SQ 
          (Token
            id: Id.Lit_Chars
            val: 'apply with --reject should fail but update the file'
            span_id: 135
          )
        )
      } 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:139) (Token id:Id.Lit_Chars val:'\n' span_id:140) 
          (Token id:Id.Lit_Chars val:'\tcat saved.file1 >file1 &&\n' span_id:141) (Token id:Id.Lit_Chars val:'\trm -f file1.rej file2.rej file2 &&\n' span_id:142) 
          (Token id:Id.Lit_Chars val:'\n' span_id:143) (Token id:Id.Lit_Chars val:'\ttest_must_fail git apply --reject patch.2 >rejects &&\n' span_id:144) 
          (Token id:Id.Lit_Chars val:'\ttest_path_is_missing file1 &&\n' span_id:145) (Token id:Id.Lit_Chars val:'\ttest_cmp file2 expected &&\n' span_id:146) 
          (Token id:Id.Lit_Chars val:'\n' span_id:147) (Token id:Id.Lit_Chars val:'\tcat file2.rej &&\n' span_id:148) 
          (Token id:Id.Lit_Chars val:'\ttest_path_is_missing file1.rej\n' span_id:149) (Token id:Id.Lit_Chars val:'\n' span_id:150)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'the same test with --verbose' span_id:157))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:161) (Token id:Id.Lit_Chars val:'\n' span_id:162) 
          (Token id:Id.Lit_Chars val:'\tcat saved.file1 >file1 &&\n' span_id:163) (Token id:Id.Lit_Chars val:'\trm -f file1.rej file2.rej file2 &&\n' span_id:164) 
          (Token id:Id.Lit_Chars val:'\n' span_id:165) 
          (Token
            id: Id.Lit_Chars
            val: '\ttest_must_fail git apply --reject --verbose patch.2 >rejects &&\n'
            span_id: 166
          ) (Token id:Id.Lit_Chars val:'\ttest_path_is_missing file1 &&\n' span_id:167) 
          (Token id:Id.Lit_Chars val:'\ttest_cmp file2 expected &&\n' span_id:168) (Token id:Id.Lit_Chars val:'\n' span_id:169) 
          (Token id:Id.Lit_Chars val:'\tcat file2.rej &&\n' span_id:170) (Token id:Id.Lit_Chars val:'\ttest_path_is_missing file1.rej\n' span_id:171) 
          (Token id:Id.Lit_Chars val:'\n' span_id:172)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'apply cleanly with --verbose' span_id:179))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:183) (Token id:Id.Lit_Chars val:'\n' span_id:184) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit cat-file -p HEAD:file1 >file1 &&\n'
            span_id: 185
          ) (Token id:Id.Lit_Chars val:'\trm -f file?.rej file2 &&\n' span_id:186) 
          (Token id:Id.Lit_Chars val:'\n' span_id:187) (Token id:Id.Lit_Chars val:'\tgit apply --verbose patch.1 &&\n' span_id:188) 
          (Token id:Id.Lit_Chars val:'\n' span_id:189) (Token id:Id.Lit_Chars val:'\ttest_cmp file1 clean\n' span_id:190)
        )
      }
    )
    (C {(test_done)})
  ]
)