(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: 'combined diff show only paths that are different to all parents'
                  span_id: 6
                )
              )
            }
          spids: [4]
        )
      ]
    )
    (C {(.)} {(./test-lib.sh)})
    (command.ShFunction
      name: diffc_verify
      body: 
        (command.BraceGroup
          children: [
            (command.AndOr
              ops: [Id.Op_DAmp]
              children: [
                (command.Simple
                  words: [
                    {(git)}
                    {(diff)}
                    {(-c)}
                    {(--name-only)}
                    {(HEAD)}
                    {(HEAD) (Id.Lit_Other '^')}
                    {(HEAD) (Id.Lit_Other '^') (2)}
                  ]
                  redirects: [
                    (redir.Redir
                      op: (Token id:Id.Redir_Great val:'>' span_id:46)
                      fd: -1
                      arg_word: {(diffc.actual)}
                    )
                  ]
                )
                (C {(test_cmp)} {(diffc.expect)} {(diffc.actual)})
              ]
            )
          ]
        )
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'trivial merge - combine-diff empty' span_id:64))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:68) 
          (Token id:Id.Lit_Chars val:'\tfor i in $(test_seq 1 9)\n' span_id:69) (Token id:Id.Lit_Chars val:'\tdo\n' span_id:70) 
          (Token id:Id.Lit_Chars val:'\t\techo $i >$i.txt\t&&\n' span_id:71) (Token id:Id.Lit_Chars val:'\t\tgit add $i.txt\n' span_id:72) 
          (Token id:Id.Lit_Chars val:'\tdone &&\n' span_id:73) (Token id:Id.Lit_Chars val:'\tgit commit -m "init" &&\n' span_id:74) 
          (Token id:Id.Lit_Chars val:'\tgit checkout -b side &&\n' span_id:75) (Token id:Id.Lit_Chars val:'\tfor i in $(test_seq 2 9)\n' span_id:76) 
          (Token id:Id.Lit_Chars val:'\tdo\n' span_id:77) (Token id:Id.Lit_Chars val:'\t\techo $i/2 >>$i.txt\n' span_id:78) 
          (Token id:Id.Lit_Chars val:'\tdone &&\n' span_id:79) (Token id:Id.Lit_Chars val:'\tgit commit -a -m "side 2-9" &&\n' span_id:80) 
          (Token id:Id.Lit_Chars val:'\tgit checkout master &&\n' span_id:81) (Token id:Id.Lit_Chars val:'\techo 1/2 >1.txt &&\n' span_id:82) 
          (Token id:Id.Lit_Chars val:'\tgit commit -a -m "master 1" &&\n' span_id:83) (Token id:Id.Lit_Chars val:'\tgit merge side &&\n' span_id:84) 
          (Token id:Id.Lit_Chars val:'\t>diffc.expect &&\n' span_id:85) (Token id:Id.Lit_Chars val:'\tdiffc_verify\n' span_id:86)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'only one trully conflicting path' span_id:94))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:98) 
          (Token id:Id.Lit_Chars val:'\tgit checkout side &&\n' span_id:99) (Token id:Id.Lit_Chars val:'\tfor i in $(test_seq 2 9)\n' span_id:100) 
          (Token id:Id.Lit_Chars val:'\tdo\n' span_id:101) (Token id:Id.Lit_Chars val:'\t\techo $i/3 >>$i.txt\n' span_id:102) 
          (Token id:Id.Lit_Chars val:'\tdone &&\n' span_id:103) (Token id:Id.Lit_Chars val:'\techo "4side" >>4.txt &&\n' span_id:104) 
          (Token id:Id.Lit_Chars val:'\tgit commit -a -m "side 2-9 +4" &&\n' span_id:105) (Token id:Id.Lit_Chars val:'\tgit checkout master &&\n' span_id:106) 
          (Token id:Id.Lit_Chars val:'\tfor i in $(test_seq 1 9)\n' span_id:107) (Token id:Id.Lit_Chars val:'\tdo\n' span_id:108) 
          (Token id:Id.Lit_Chars val:'\t\techo $i/3 >>$i.txt\n' span_id:109) (Token id:Id.Lit_Chars val:'\tdone &&\n' span_id:110) 
          (Token id:Id.Lit_Chars val:'\techo "4master" >>4.txt &&\n' span_id:111) (Token id:Id.Lit_Chars val:'\tgit commit -a -m "master 1-9 +4" &&\n' span_id:112) 
          (Token id:Id.Lit_Chars val:'\ttest_must_fail git merge side &&\n' span_id:113) (Token id:Id.Lit_Chars val:'\tcat <<-\\EOF >4.txt &&\n' span_id:114) 
          (Token id:Id.Lit_Chars val:'\t4\n' span_id:115) (Token id:Id.Lit_Chars val:'\t4/2\n' span_id:116) (Token id:Id.Lit_Chars val:'\t4/3\n' span_id:117) 
          (Token id:Id.Lit_Chars val:'\t4master\n' span_id:118) (Token id:Id.Lit_Chars val:'\t4side\n' span_id:119) (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:120) 
          (Token id:Id.Lit_Chars val:'\tgit add 4.txt &&\n' span_id:121) (Token id:Id.Lit_Chars val:'\tgit commit -m "merge side (2)" &&\n' span_id:122) 
          (Token id:Id.Lit_Chars val:'\techo 4.txt >diffc.expect &&\n' span_id:123) (Token id:Id.Lit_Chars val:'\tdiffc_verify\n' span_id:124)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'merge introduces new file' span_id:131))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:135) 
          (Token id:Id.Lit_Chars val:'\tgit checkout side &&\n' span_id:136) (Token id:Id.Lit_Chars val:'\tfor i in $(test_seq 5 9)\n' span_id:137) 
          (Token id:Id.Lit_Chars val:'\tdo\n' span_id:138) (Token id:Id.Lit_Chars val:'\t\techo $i/4 >>$i.txt\n' span_id:139) 
          (Token id:Id.Lit_Chars val:'\tdone &&\n' span_id:140) (Token id:Id.Lit_Chars val:'\tgit commit -a -m "side 5-9" &&\n' span_id:141) 
          (Token id:Id.Lit_Chars val:'\tgit checkout master &&\n' span_id:142) (Token id:Id.Lit_Chars val:'\tfor i in $(test_seq 1 3)\n' span_id:143) 
          (Token id:Id.Lit_Chars val:'\tdo\n' span_id:144) (Token id:Id.Lit_Chars val:'\t\techo $i/4 >>$i.txt\n' span_id:145) 
          (Token id:Id.Lit_Chars val:'\tdone &&\n' span_id:146) (Token id:Id.Lit_Chars val:'\tgit commit -a -m "master 1-3 +4hello" &&\n' span_id:147) 
          (Token id:Id.Lit_Chars val:'\tgit merge side &&\n' span_id:148) (Token id:Id.Lit_Chars val:'\techo "Hello World" >4hello.txt &&\n' span_id:149) 
          (Token id:Id.Lit_Chars val:'\tgit add 4hello.txt &&\n' span_id:150) (Token id:Id.Lit_Chars val:'\tgit commit --amend &&\n' span_id:151) 
          (Token id:Id.Lit_Chars val:'\techo 4hello.txt >diffc.expect &&\n' span_id:152) (Token id:Id.Lit_Chars val:'\tdiffc_verify\n' span_id:153)
        )
      }
    )
    (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'merge removed a file' span_id:160))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:164) 
          (Token id:Id.Lit_Chars val:'\tgit checkout side &&\n' span_id:165) (Token id:Id.Lit_Chars val:'\tfor i in $(test_seq 5 9)\n' span_id:166) 
          (Token id:Id.Lit_Chars val:'\tdo\n' span_id:167) (Token id:Id.Lit_Chars val:'\t\techo $i/5 >>$i.txt\n' span_id:168) 
          (Token id:Id.Lit_Chars val:'\tdone &&\n' span_id:169) (Token id:Id.Lit_Chars val:'\tgit commit -a -m "side 5-9" &&\n' span_id:170) 
          (Token id:Id.Lit_Chars val:'\tgit checkout master &&\n' span_id:171) (Token id:Id.Lit_Chars val:'\tfor i in $(test_seq 1 3)\n' span_id:172) 
          (Token id:Id.Lit_Chars val:'\tdo\n' span_id:173) (Token id:Id.Lit_Chars val:'\t\techo $i/4 >>$i.txt\n' span_id:174) 
          (Token id:Id.Lit_Chars val:'\tdone &&\n' span_id:175) (Token id:Id.Lit_Chars val:'\tgit commit -a -m "master 1-3" &&\n' span_id:176) 
          (Token id:Id.Lit_Chars val:'\tgit merge side &&\n' span_id:177) (Token id:Id.Lit_Chars val:'\tgit rm 4.txt &&\n' span_id:178) 
          (Token id:Id.Lit_Chars val:'\tgit commit --amend &&\n' span_id:179) (Token id:Id.Lit_Chars val:'\techo 4.txt >diffc.expect &&\n' span_id:180) 
          (Token id:Id.Lit_Chars val:'\tdiffc_verify\n' span_id:181)
        )
      }
    )
    (C {(test_done)})
  ]
)