(CommandList
  children: [
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:test_description)
          op: Equal
          rhs: {(SQ <"git p4 support for file type change">)}
          spids: [4]
        )
      ]
      spids: [4]
    )
    (C {(.)} {(./lib-git-p4.sh)})
    (C {(test_expect_success)} {(SQ <"start p4d">)} {(SQ <"\n"> <"\tstart_p4d\n">)})
    (C {(test_expect_success)} {(SQ <"create files">)} 
      {
        (SQ <"\n"> <"\t(\n"> <"\t\tcd \"$cli\" &&\n"> 
          <"\t\tp4 client -o | sed \"/LineEnd/s/:.*/:unix/\" | p4 client -i &&\n"> <"\t\tcat >file1 <<-EOF &&\n"> <"\t\ttext without any funny substitution business\n"> <"\t\tEOF\n"> 
          <"\t\tcat >file2 <<-EOF &&\n"> <"\t\tsecond file whose type will change\n"> <"\t\tEOF\n"> <"\t\tp4 add file1 file2 &&\n"> 
          <"\t\tp4 submit -d \"add files\"\n"> <"\t)\n">
        )
      }
    )
    (C {(test_expect_success)} {(SYMLINKS)} {(SQ <"change file to symbolic link">)} 
      {
        (SQ <"\n"> <"\tgit p4 clone --dest=\"$git\" //depot@all &&\n"> 
          <"\ttest_when_finished cleanup_git &&\n"> <"\t(\n"> <"\t\tcd \"$git\" &&\n"> <"\t\tgit config git-p4.skipSubmitEdit true &&\n"> <"\n"> 
          <"\t\trm file2 &&\n"> <"\t\tln -s file1 file2 &&\n"> <"\t\tgit add file2 &&\n"> 
          <"\t\tgit commit -m \"symlink file1 to file2\" &&\n"> <"\t\tgit p4 submit &&\n"> <"\t\tp4 filelog -m 1 //depot/file2 >filelog &&\n"> 
          <"\t\tgrep \"(symlink)\" filelog\n"> <"\t)\n">
        )
      }
    )
    (C {(test_expect_success)} {(SYMLINKS)} {(SQ <"change symbolic link to file">)} 
      {
        (SQ <"\n"> <"\tgit p4 clone --dest=\"$git\" //depot@all &&\n"> 
          <"\ttest_when_finished cleanup_git &&\n"> <"\t(\n"> <"\t\tcd \"$git\" &&\n"> <"\t\tgit config git-p4.skipSubmitEdit true &&\n"> <"\n"> 
          <"\t\trm file2 &&\n"> <"\t\tcat >file2 <<-EOF &&\n"> <"\t\tThis is another content for the second file.\n"> <"\t\tEOF\n"> 
          <"\t\tgit add file2 &&\n"> <"\t\tgit commit -m \"re-write file2\" &&\n"> <"\t\tgit p4 submit &&\n"> 
          <"\t\tp4 filelog -m 1 //depot/file2 >filelog &&\n"> <"\t\tgrep \"(text)\" filelog\n"> <"\t)\n">
        )
      }
    )
    (C {(test_expect_success)} {(SQ <"kill p4d">)} {(SQ <"\n"> <"\tkill_p4d\n">)})
    (C {(test_done)})
  ]
)