(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-merge with case-changing rename on case-insensitive file system'
                  span_id: 6
                )
              )
            }
          spids: [4]
        )
      ]
    )
    (C {(.)} {(./test-lib.sh)})
    (command.If
      arms: [
        (if_arm
          cond: [
            (command.Pipeline
              children: [(C {(test_have_prereq)} {(CASE_INSENSITIVE_FS)})]
              negated: T
            )
          ]
          action: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:skip_all)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (SQ 
                        (Token
                          id: Id.Lit_Chars
                          val: 'skipping case insensitive tests - case sensitive file system'
                          span_id: 28
                        )
                      )
                    }
                  spids: [26]
                )
              ]
            )
            (C {(test_done)})
          ]
          spids: [15 23]
        )
      ]
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'merge with case-changing rename' span_id:40))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:44) 
          (Token
            id: Id.Lit_Chars
            val: '\ttest $(git config core.ignorecase) = true &&\n'
            span_id: 45
          ) (Token id:Id.Lit_Chars val:'\t>TestCase &&\n' span_id:46) 
          (Token id:Id.Lit_Chars val:'\tgit add TestCase &&\n' span_id:47) (Token id:Id.Lit_Chars val:'\tgit commit -m "add TestCase" &&\n' span_id:48) 
          (Token id:Id.Lit_Chars val:'\tgit tag baseline &&\n' span_id:49) (Token id:Id.Lit_Chars val:'\tgit checkout -b with-camel &&\n' span_id:50) 
          (Token id:Id.Lit_Chars val:'\t>foo &&\n' span_id:51) (Token id:Id.Lit_Chars val:'\tgit add foo &&\n' span_id:52) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit commit -m "intervening commit" &&\n'
            span_id: 53
          ) (Token id:Id.Lit_Chars val:'\tgit checkout master &&\n' span_id:54) 
          (Token id:Id.Lit_Chars val:'\tgit rm TestCase &&\n' span_id:55) (Token id:Id.Lit_Chars val:'\t>testcase &&\n' span_id:56) 
          (Token id:Id.Lit_Chars val:'\tgit add testcase &&\n' span_id:57) (Token id:Id.Lit_Chars val:'\tgit commit -m "rename to testcase" &&\n' span_id:58) 
          (Token id:Id.Lit_Chars val:'\tgit checkout with-camel &&\n' span_id:59) (Token id:Id.Lit_Chars val:'\tgit merge master -m "merge" &&\n' span_id:60) 
          (Token id:Id.Lit_Chars val:'\ttest_path_is_file testcase\n' span_id:61)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'merge with case-changing rename on both sides' span_id:68))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:72) 
          (Token id:Id.Lit_Chars val:'\tgit checkout master &&\n' span_id:73) (Token id:Id.Lit_Chars val:'\tgit reset --hard baseline &&\n' span_id:74) 
          (Token id:Id.Lit_Chars val:'\tgit branch -D with-camel &&\n' span_id:75) (Token id:Id.Lit_Chars val:'\tgit checkout -b with-camel &&\n' span_id:76) 
          (Token id:Id.Lit_Chars val:'\tgit mv TestCase testcase &&\n' span_id:77) (Token id:Id.Lit_Chars val:'\tgit commit -m "recase on branch" &&\n' span_id:78) 
          (Token id:Id.Lit_Chars val:'\t>foo &&\n' span_id:79) (Token id:Id.Lit_Chars val:'\tgit add foo &&\n' span_id:80) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit commit -m "intervening commit" &&\n'
            span_id: 81
          ) (Token id:Id.Lit_Chars val:'\tgit checkout master &&\n' span_id:82) 
          (Token id:Id.Lit_Chars val:'\tgit rm TestCase &&\n' span_id:83) (Token id:Id.Lit_Chars val:'\t>testcase &&\n' span_id:84) 
          (Token id:Id.Lit_Chars val:'\tgit add testcase &&\n' span_id:85) (Token id:Id.Lit_Chars val:'\tgit commit -m "rename to testcase" &&\n' span_id:86) 
          (Token id:Id.Lit_Chars val:'\tgit checkout with-camel &&\n' span_id:87) (Token id:Id.Lit_Chars val:'\tgit merge master -m "merge" &&\n' span_id:88) 
          (Token id:Id.Lit_Chars val:'\ttest_path_is_file testcase\n' span_id:89)
        )
      }
    )
    (C {(test_done)})
  ]
)