(CommandList
  children: [
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:test_description)
          op: Equal
          rhs: {(SQ <'git p4 wildcards'>)}
          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 <'add p4 files with wildcards in the names'>)} 
      {
        (SQ <'\n'> <'\t(\n'> <'\t\tcd "$cli" &&\n'> 
          <'\t\tprintf "file2\\nhas\\nsome\\nrandom\\ntext\\n" >file2 &&\n'> <'\t\tp4 add file2 &&\n'> <'\t\techo file-wild-hash >file-wild#hash &&\n'> 
          <'\t\tif test_have_prereq !MINGW,!CYGWIN\n'> <'\t\tthen\n'> <'\t\t\techo file-wild-star >file-wild\\*star\n'> <'\t\tfi &&\n'> 
          <'\t\techo file-wild-at >file-wild@at &&\n'> <'\t\techo file-wild-percent >file-wild%percent &&\n'> <'\t\tp4 add -f file-wild* &&\n'> 
          <'\t\tp4 submit -d "file wildcards"\n'> <'\t)\n'>
        )
      }
    )
    (C {(test_expect_success)} {(SQ <'wildcard files git p4 clone'>)} 
      {
        (SQ <'\n'> <'\tgit p4 clone --dest="$git" //depot &&\n'> 
          <'\ttest_when_finished cleanup_git &&\n'> <'\t(\n'> <'\t\tcd "$git" &&\n'> <'\t\ttest -f file-wild#hash &&\n'> 
          <'\t\tif test_have_prereq !MINGW,!CYGWIN\n'> <'\t\tthen\n'> <'\t\t\ttest -f file-wild\\*star\n'> <'\t\tfi &&\n'> <'\t\ttest -f file-wild@at &&\n'> 
          <'\t\ttest -f file-wild%percent\n'> <'\t)\n'>
        )
      }
    )
    (C {(test_expect_success)} {(SQ <'wildcard files submit back to p4, add'>)} 
      {
        (SQ <'\n'> <'\ttest_when_finished cleanup_git &&\n'> 
          <'\tgit p4 clone --dest="$git" //depot &&\n'> <'\t(\n'> <'\t\tcd "$git" &&\n'> <'\t\techo git-wild-hash >git-wild#hash &&\n'> 
          <'\t\tif test_have_prereq !MINGW,!CYGWIN\n'> <'\t\tthen\n'> <'\t\t\techo git-wild-star >git-wild\\*star\n'> <'\t\tfi &&\n'> 
          <'\t\techo git-wild-at >git-wild@at &&\n'> <'\t\techo git-wild-percent >git-wild%percent &&\n'> <'\t\tgit add git-wild* &&\n'> 
          <'\t\tgit commit -m "add some wildcard filenames" &&\n'> <'\t\tgit config git-p4.skipSubmitEdit true &&\n'> <'\t\tgit p4 submit\n'> <'\t) &&\n'> <'\t(\n'> 
          <'\t\tcd "$cli" &&\n'> <'\t\ttest_path_is_file git-wild#hash &&\n'> <'\t\tif test_have_prereq !MINGW,!CYGWIN\n'> 
          <'\t\tthen\n'> <'\t\t\ttest_path_is_file git-wild\\*star\n'> <'\t\tfi &&\n'> 
          <'\t\ttest_path_is_file git-wild@at &&\n'> <'\t\ttest_path_is_file git-wild%percent\n'> <'\t)\n'>
        )
      }
    )
    (C {(test_expect_success)} {(SQ <'wildcard files submit back to p4, modify'>)} 
      {
        (SQ <'\n'> <'\ttest_when_finished cleanup_git &&\n'> 
          <'\tgit p4 clone --dest="$git" //depot &&\n'> <'\t(\n'> <'\t\tcd "$git" &&\n'> <'\t\techo new-line >>git-wild#hash &&\n'> 
          <'\t\tif test_have_prereq !MINGW,!CYGWIN\n'> <'\t\tthen\n'> <'\t\t\techo new-line >>git-wild\\*star\n'> <'\t\tfi &&\n'> 
          <'\t\techo new-line >>git-wild@at &&\n'> <'\t\techo new-line >>git-wild%percent &&\n'> <'\t\tgit add git-wild* &&\n'> 
          <'\t\tgit commit -m "modify the wildcard files" &&\n'> <'\t\tgit config git-p4.skipSubmitEdit true &&\n'> <'\t\tgit p4 submit\n'> <'\t) &&\n'> <'\t(\n'> 
          <'\t\tcd "$cli" &&\n'> <'\t\ttest_line_count = 2 git-wild#hash &&\n'> <'\t\tif test_have_prereq !MINGW,!CYGWIN\n'> 
          <'\t\tthen\n'> <'\t\t\ttest_line_count = 2 git-wild\\*star\n'> <'\t\tfi &&\n'> 
          <'\t\ttest_line_count = 2 git-wild@at &&\n'> <'\t\ttest_line_count = 2 git-wild%percent\n'> <'\t)\n'>
        )
      }
    )
    (C {(test_expect_success)} {(SQ <'wildcard files submit back to p4, copy'>)} 
      {
        (SQ <'\n'> <'\ttest_when_finished cleanup_git &&\n'> 
          <'\tgit p4 clone --dest="$git" //depot &&\n'> <'\t(\n'> <'\t\tcd "$git" &&\n'> <'\t\tcp file2 git-wild-cp#hash &&\n'> 
          <'\t\tgit add git-wild-cp#hash &&\n'> <'\t\tcp git-wild#hash file-wild-3 &&\n'> <'\t\tgit add file-wild-3 &&\n'> 
          <'\t\tgit commit -m "wildcard copies" &&\n'> <'\t\tgit config git-p4.detectCopies true &&\n'> 
          <'\t\tgit config git-p4.detectCopiesHarder true &&\n'> <'\t\tgit config git-p4.skipSubmitEdit true &&\n'> <'\t\tgit p4 submit\n'> <'\t) &&\n'> <'\t(\n'> 
          <'\t\tcd "$cli" &&\n'> <'\t\ttest_path_is_file git-wild-cp#hash &&\n'> <'\t\ttest_path_is_file file-wild-3\n'> <'\t)\n'>
        )
      }
    )
    (C {(test_expect_success)} {(SQ <'wildcard files submit back to p4, rename'>)} 
      {
        (SQ <'\n'> <'\ttest_when_finished cleanup_git &&\n'> 
          <'\tgit p4 clone --dest="$git" //depot &&\n'> <'\t(\n'> <'\t\tcd "$git" &&\n'> <'\t\tgit mv git-wild@at file-wild-4 &&\n'> 
          <'\t\tgit mv file-wild-3 git-wild-cp%percent &&\n'> <'\t\tgit commit -m "wildcard renames" &&\n'> <'\t\tgit config git-p4.detectRenames true &&\n'> 
          <'\t\tgit config git-p4.skipSubmitEdit true &&\n'> <'\t\tgit p4 submit\n'> <'\t) &&\n'> <'\t(\n'> <'\t\tcd "$cli" &&\n'> 
          <'\t\ttest_path_is_missing git-wild@at &&\n'> <'\t\ttest_path_is_file git-wild-cp%percent\n'> <'\t)\n'>
        )
      }
    )
    (C {(test_expect_success)} {(SQ <'wildcard files submit back to p4, delete'>)} 
      {
        (SQ <'\n'> <'\ttest_when_finished cleanup_git &&\n'> 
          <'\tgit p4 clone --dest="$git" //depot &&\n'> <'\t(\n'> <'\t\tcd "$git" &&\n'> <'\t\tgit rm git-wild* &&\n'> 
          <'\t\tgit commit -m "delete the wildcard files" &&\n'> <'\t\tgit config git-p4.skipSubmitEdit true &&\n'> <'\t\tgit p4 submit\n'> <'\t) &&\n'> <'\t(\n'> 
          <'\t\tcd "$cli" &&\n'> <'\t\ttest_path_is_missing git-wild#hash &&\n'> <'\t\tif test_have_prereq !MINGW,!CYGWIN\n'> 
          <'\t\tthen\n'> <'\t\t\ttest_path_is_missing git-wild\\*star\n'> <'\t\tfi &&\n'> 
          <'\t\ttest_path_is_missing git-wild@at &&\n'> <'\t\ttest_path_is_missing git-wild%percent\n'> <'\t)\n'>
        )
      }
    )
    (C {(test_expect_success)} {(SQ <'p4 deleted a wildcard file'>)} 
      {
        (SQ <'\n'> <'\t(\n'> <'\t\tcd "$cli" &&\n'> <'\t\techo "wild delete test" >wild@delete &&\n'> 
          <'\t\tp4 add -f wild@delete &&\n'> <'\t\tp4 submit -d "add wild@delete"\n'> <'\t) &&\n'> <'\ttest_when_finished cleanup_git &&\n'> 
          <'\tgit p4 clone --dest="$git" //depot &&\n'> <'\t(\n'> <'\t\tcd "$git" &&\n'> <'\t\ttest_path_is_file wild@delete\n'> <'\t) &&\n'> <'\t(\n'> 
          <'\t\tcd "$cli" &&\n'> <'\t\t# must use its encoded name\n'> <'\t\tp4 delete wild%40delete &&\n'> 
          <'\t\tp4 submit -d "delete wild@delete"\n'> <'\t) &&\n'> <'\t(\n'> <'\t\tcd "$git" &&\n'> <'\t\tgit p4 sync &&\n'> 
          <'\t\tgit merge --ff-only p4/master &&\n'> <'\t\ttest_path_is_missing wild@delete\n'> <'\t)\n'>
        )
      }
    )
    (C {(test_expect_success)} {(SQ <'wildcard files requiring keyword scrub'>)} 
      {
        (SQ <'\n'> <'\t(\n'> <'\t\tcd "$cli" &&\n'> <'\t\tcat <<-\\EOF >scrub@wild &&\n'> <'\t\t$Id$\n'> 
          <'\t\tline2\n'> <'\t\tEOF\n'> <'\t\tp4 add -t text+k -f scrub@wild &&\n'> <'\t\tp4 submit -d "scrub at wild"\n'> 
          <'\t) &&\n'> <'\ttest_when_finished cleanup_git &&\n'> <'\tgit p4 clone --dest="$git" //depot &&\n'> <'\t(\n'> 
          <'\t\tcd "$git" &&\n'> <'\t\tgit config git-p4.skipSubmitEdit true &&\n'> 
          <'\t\tgit config git-p4.attemptRCSCleanup true &&\n'> <'\t\tsed "s/^line2/line2 edit/" <scrub@wild >scrub@wild.tmp &&\n'> 
          <'\t\tmv -f scrub@wild.tmp scrub@wild &&\n'> <'\t\tgit commit -m "scrub at wild line2 edit" scrub@wild &&\n'> <'\t\tgit p4 submit\n'> <'\t)\n'>
        )
      }
    )
    (C {(test_expect_success)} {(SQ <'kill p4d'>)} {(SQ <'\n'> <'\tkill_p4d\n'>)})
    (C {(test_done)})
  ]
)