(command.CommandList
  children: [
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:test_description)
          op: assign_op.Equal
          rhs: {(SQ <'interaction with P4 case-folding'>)}
          spids: [4]
        )
      ]
    )
    (C {<.>} {<'./lib-git-p4.sh'>})
    (command.If
      arms: [
        (if_arm
          cond: (condition.Shell commands:[(C {<test_have_prereq>} {<CASE_INSENSITIVE_FS>})])
          action: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:skip_all)
                  op: assign_op.Equal
                  rhs: {(SQ <'skipping P4 case-folding tests; case insensitive file system detected'>)}
                  spids: [24]
                )
              ]
            )
            (C {<test_done>})
          ]
          spids: [15 21]
        )
      ]
    )
    (C {<test_expect_success>} {(SQ <'start p4d with case folding enabled'>)} 
      {(SQ <'\n'> <'\tstart_p4d -C1\n'>)}
    )
    (C {<test_expect_success>} {(SQ <'Create a repo, name is lowercase'>)} 
      {
        (SQ <'\n'> <'\t(\n'> <'\t\tclient_view "//depot/... //client/..." &&\n'> <'\t\tcd "$cli" &&\n'> 
          <'\t\tmkdir -p lc UC &&\n'> <'\t\t>lc/file.txt && >UC/file.txt &&\n'> <'\t\tp4 add lc/file.txt UC/file.txt &&\n'> 
          <'\t\tp4 submit -d "Add initial lc and UC repos"\n'> <'\t)\n'>
        )
      }
    )
    (C {<test_expect_success>} {(SQ <'Check p4 is in case-folding mode'>)} 
      {
        (SQ <'\n'> <'\t(\n'> <'\t\tcd "$cli" &&\n'> <'\t\t>lc/FILE.TXT &&\n'> 
          <'\t\tp4 add lc/FILE.TXT &&\n'> <'\t\ttest_must_fail p4 submit -d "Cannot add file differing only in case" lc/FILE.TXT\n'> <'\t)\n'>
        )
      }
    )
    (C {<test_expect_success>} {(SQ <'Clone lc repo using lc name'>)} 
      {
        (SQ <'\n'> <'\tgit p4 clone //depot/lc/... &&\n'> <'\ttest_path_is_file lc/file.txt &&\n'> 
          <'\tgit p4 clone //depot/UC/... &&\n'> <'\ttest_path_is_file UC/file.txt\n'>
        )
      }
    )
    (C {<test_expect_failure>} {(SQ <'Clone lc repo using uc name'>)} 
      {(SQ <'\n'> <'\ttest_must_fail git p4 clone //depot/LC/...\n'>)}
    )
    (C {<test_expect_failure>} {(SQ <'Clone UC repo with lc name'>)} 
      {(SQ <'\n'> <'\ttest_must_fail git p4 clone //depot/uc/...\n'>)}
    )
    (C {<test_expect_success>} {(SQ <'kill p4d'>)} {(SQ <'\n'> <'\tkill_p4d\n'>)})
    (C {<test_done>})
  ]
)