(command.CommandList
  children: [
    (command.Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (lhs_expr.LhsName name:test_description)
          op: Equal
          rhs: {(SQ <'interaction with P4 case-folding'>)}
        )
      ]
    )
    (C {(.)} {(./lib-git-p4.sh)})
    (command.If
      arms: [
        (if_arm
          cond: [(C {(test_have_prereq)} {(CASE_INSENSITIVE_FS)})]
          action: [
            (command.Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (lhs_expr.LhsName name:skip_all)
                  op: Equal
                  rhs: {(SQ <'skipping P4 case-folding tests; case insensitive file system detected'>)}
                )
              ]
            )
            (C {(test_done)})
          ]
        )
      ]
    )
    (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)})
  ]
)