(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 p4 wildcards' span_id:6))}
          spids: [4]
        )
      ]
    )
    (C {(.)} {(./lib-git-p4.sh)})
    (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'start p4d' span_id:18))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:22) 
          (Token id:Id.Lit_Chars val:'\tstart_p4d\n' span_id:23)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'add p4 files with wildcards in the names' span_id:30))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:34) (Token id:Id.Lit_Chars val:'\t(\n' span_id:35) 
          (Token id:Id.Lit_Chars val:'\t\tcd "$cli" &&\n' span_id:36) 
          (Token
            id: Id.Lit_Chars
            val: '\t\tprintf "file2\\nhas\\nsome\\nrandom\\ntext\\n" >file2 &&\n'
            span_id: 37
          ) (Token id:Id.Lit_Chars val:'\t\tp4 add file2 &&\n' span_id:38) 
          (Token
            id: Id.Lit_Chars
            val: '\t\techo file-wild-hash >file-wild#hash &&\n'
            span_id: 39
          ) (Token id:Id.Lit_Chars val:'\t\tif test_have_prereq !MINGW,!CYGWIN\n' span_id:40) 
          (Token id:Id.Lit_Chars val:'\t\tthen\n' span_id:41) (Token id:Id.Lit_Chars val:'\t\t\techo file-wild-star >file-wild\\*star\n' span_id:42) 
          (Token id:Id.Lit_Chars val:'\t\tfi &&\n' span_id:43) (Token id:Id.Lit_Chars val:'\t\techo file-wild-at >file-wild@at &&\n' span_id:44) 
          (Token
            id: Id.Lit_Chars
            val: '\t\techo file-wild-percent >file-wild%percent &&\n'
            span_id: 45
          ) (Token id:Id.Lit_Chars val:'\t\tp4 add -f file-wild* &&\n' span_id:46) 
          (Token id:Id.Lit_Chars val:'\t\tp4 submit -d "file wildcards"\n' span_id:47) (Token id:Id.Lit_Chars val:'\t)\n' span_id:48)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'wildcard files git p4 clone' span_id:55))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:59) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit p4 clone --dest="$git" //depot &&\n'
            span_id: 60
          ) (Token id:Id.Lit_Chars val:'\ttest_when_finished cleanup_git &&\n' span_id:61) 
          (Token id:Id.Lit_Chars val:'\t(\n' span_id:62) (Token id:Id.Lit_Chars val:'\t\tcd "$git" &&\n' span_id:63) 
          (Token id:Id.Lit_Chars val:'\t\ttest -f file-wild#hash &&\n' span_id:64) (Token id:Id.Lit_Chars val:'\t\tif test_have_prereq !MINGW,!CYGWIN\n' span_id:65) 
          (Token id:Id.Lit_Chars val:'\t\tthen\n' span_id:66) (Token id:Id.Lit_Chars val:'\t\t\ttest -f file-wild\\*star\n' span_id:67) 
          (Token id:Id.Lit_Chars val:'\t\tfi &&\n' span_id:68) (Token id:Id.Lit_Chars val:'\t\ttest -f file-wild@at &&\n' span_id:69) 
          (Token id:Id.Lit_Chars val:'\t\ttest -f file-wild%percent\n' span_id:70) (Token id:Id.Lit_Chars val:'\t)\n' span_id:71)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'wildcard files submit back to p4, add' span_id:78))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:82) 
          (Token id:Id.Lit_Chars val:'\ttest_when_finished cleanup_git &&\n' span_id:83) (Token id:Id.Lit_Chars val:'\tgit p4 clone --dest="$git" //depot &&\n' span_id:84) 
          (Token id:Id.Lit_Chars val:'\t(\n' span_id:85) (Token id:Id.Lit_Chars val:'\t\tcd "$git" &&\n' span_id:86) 
          (Token
            id: Id.Lit_Chars
            val: '\t\techo git-wild-hash >git-wild#hash &&\n'
            span_id: 87
          ) (Token id:Id.Lit_Chars val:'\t\tif test_have_prereq !MINGW,!CYGWIN\n' span_id:88) 
          (Token id:Id.Lit_Chars val:'\t\tthen\n' span_id:89) (Token id:Id.Lit_Chars val:'\t\t\techo git-wild-star >git-wild\\*star\n' span_id:90) 
          (Token id:Id.Lit_Chars val:'\t\tfi &&\n' span_id:91) (Token id:Id.Lit_Chars val:'\t\techo git-wild-at >git-wild@at &&\n' span_id:92) 
          (Token
            id: Id.Lit_Chars
            val: '\t\techo git-wild-percent >git-wild%percent &&\n'
            span_id: 93
          ) (Token id:Id.Lit_Chars val:'\t\tgit add git-wild* &&\n' span_id:94) 
          (Token
            id: Id.Lit_Chars
            val: '\t\tgit commit -m "add some wildcard filenames" &&\n'
            span_id: 95
          ) (Token id:Id.Lit_Chars val:'\t\tgit config git-p4.skipSubmitEdit true &&\n' span_id:96) 
          (Token id:Id.Lit_Chars val:'\t\tgit p4 submit\n' span_id:97) (Token id:Id.Lit_Chars val:'\t) &&\n' span_id:98) (Token id:Id.Lit_Chars val:'\t(\n' span_id:99) 
          (Token id:Id.Lit_Chars val:'\t\tcd "$cli" &&\n' span_id:100) (Token id:Id.Lit_Chars val:'\t\ttest_path_is_file git-wild#hash &&\n' span_id:101) 
          (Token
            id: Id.Lit_Chars
            val: '\t\tif test_have_prereq !MINGW,!CYGWIN\n'
            span_id: 102
          ) (Token id:Id.Lit_Chars val:'\t\tthen\n' span_id:103) 
          (Token
            id: Id.Lit_Chars
            val: '\t\t\ttest_path_is_file git-wild\\*star\n'
            span_id: 104
          ) (Token id:Id.Lit_Chars val:'\t\tfi &&\n' span_id:105) 
          (Token id:Id.Lit_Chars val:'\t\ttest_path_is_file git-wild@at &&\n' span_id:106) (Token id:Id.Lit_Chars val:'\t\ttest_path_is_file git-wild%percent\n' span_id:107) 
          (Token id:Id.Lit_Chars val:'\t)\n' span_id:108)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'wildcard files submit back to p4, modify' span_id:115))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:119) 
          (Token id:Id.Lit_Chars val:'\ttest_when_finished cleanup_git &&\n' span_id:120) (Token id:Id.Lit_Chars val:'\tgit p4 clone --dest="$git" //depot &&\n' span_id:121) 
          (Token id:Id.Lit_Chars val:'\t(\n' span_id:122) (Token id:Id.Lit_Chars val:'\t\tcd "$git" &&\n' span_id:123) 
          (Token id:Id.Lit_Chars val:'\t\techo new-line >>git-wild#hash &&\n' span_id:124) (Token id:Id.Lit_Chars val:'\t\tif test_have_prereq !MINGW,!CYGWIN\n' span_id:125) 
          (Token id:Id.Lit_Chars val:'\t\tthen\n' span_id:126) (Token id:Id.Lit_Chars val:'\t\t\techo new-line >>git-wild\\*star\n' span_id:127) 
          (Token id:Id.Lit_Chars val:'\t\tfi &&\n' span_id:128) (Token id:Id.Lit_Chars val:'\t\techo new-line >>git-wild@at &&\n' span_id:129) 
          (Token
            id: Id.Lit_Chars
            val: '\t\techo new-line >>git-wild%percent &&\n'
            span_id: 130
          ) (Token id:Id.Lit_Chars val:'\t\tgit add git-wild* &&\n' span_id:131) 
          (Token
            id: Id.Lit_Chars
            val: '\t\tgit commit -m "modify the wildcard files" &&\n'
            span_id: 132
          ) (Token id:Id.Lit_Chars val:'\t\tgit config git-p4.skipSubmitEdit true &&\n' span_id:133) 
          (Token id:Id.Lit_Chars val:'\t\tgit p4 submit\n' span_id:134) (Token id:Id.Lit_Chars val:'\t) &&\n' span_id:135) (Token id:Id.Lit_Chars val:'\t(\n' span_id:136) 
          (Token id:Id.Lit_Chars val:'\t\tcd "$cli" &&\n' span_id:137) (Token id:Id.Lit_Chars val:'\t\ttest_line_count = 2 git-wild#hash &&\n' span_id:138) 
          (Token
            id: Id.Lit_Chars
            val: '\t\tif test_have_prereq !MINGW,!CYGWIN\n'
            span_id: 139
          ) (Token id:Id.Lit_Chars val:'\t\tthen\n' span_id:140) 
          (Token
            id: Id.Lit_Chars
            val: '\t\t\ttest_line_count = 2 git-wild\\*star\n'
            span_id: 141
          ) (Token id:Id.Lit_Chars val:'\t\tfi &&\n' span_id:142) 
          (Token
            id: Id.Lit_Chars
            val: '\t\ttest_line_count = 2 git-wild@at &&\n'
            span_id: 143
          ) (Token id:Id.Lit_Chars val:'\t\ttest_line_count = 2 git-wild%percent\n' span_id:144) 
          (Token id:Id.Lit_Chars val:'\t)\n' span_id:145)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'wildcard files submit back to p4, copy' span_id:152))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:156) 
          (Token id:Id.Lit_Chars val:'\ttest_when_finished cleanup_git &&\n' span_id:157) (Token id:Id.Lit_Chars val:'\tgit p4 clone --dest="$git" //depot &&\n' span_id:158) 
          (Token id:Id.Lit_Chars val:'\t(\n' span_id:159) (Token id:Id.Lit_Chars val:'\t\tcd "$git" &&\n' span_id:160) 
          (Token id:Id.Lit_Chars val:'\t\tcp file2 git-wild-cp#hash &&\n' span_id:161) (Token id:Id.Lit_Chars val:'\t\tgit add git-wild-cp#hash &&\n' span_id:162) 
          (Token id:Id.Lit_Chars val:'\t\tcp git-wild#hash file-wild-3 &&\n' span_id:163) (Token id:Id.Lit_Chars val:'\t\tgit add file-wild-3 &&\n' span_id:164) 
          (Token
            id: Id.Lit_Chars
            val: '\t\tgit commit -m "wildcard copies" &&\n'
            span_id: 165
          ) (Token id:Id.Lit_Chars val:'\t\tgit config git-p4.detectCopies true &&\n' span_id:166) 
          (Token
            id: Id.Lit_Chars
            val: '\t\tgit config git-p4.detectCopiesHarder true &&\n'
            span_id: 167
          ) (Token id:Id.Lit_Chars val:'\t\tgit config git-p4.skipSubmitEdit true &&\n' span_id:168) 
          (Token id:Id.Lit_Chars val:'\t\tgit p4 submit\n' span_id:169) (Token id:Id.Lit_Chars val:'\t) &&\n' span_id:170) (Token id:Id.Lit_Chars val:'\t(\n' span_id:171) 
          (Token id:Id.Lit_Chars val:'\t\tcd "$cli" &&\n' span_id:172) (Token id:Id.Lit_Chars val:'\t\ttest_path_is_file git-wild-cp#hash &&\n' span_id:173) 
          (Token id:Id.Lit_Chars val:'\t\ttest_path_is_file file-wild-3\n' span_id:174) (Token id:Id.Lit_Chars val:'\t)\n' span_id:175)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'wildcard files submit back to p4, rename' span_id:182))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:186) 
          (Token id:Id.Lit_Chars val:'\ttest_when_finished cleanup_git &&\n' span_id:187) (Token id:Id.Lit_Chars val:'\tgit p4 clone --dest="$git" //depot &&\n' span_id:188) 
          (Token id:Id.Lit_Chars val:'\t(\n' span_id:189) (Token id:Id.Lit_Chars val:'\t\tcd "$git" &&\n' span_id:190) 
          (Token id:Id.Lit_Chars val:'\t\tgit mv git-wild@at file-wild-4 &&\n' span_id:191) (Token id:Id.Lit_Chars val:'\t\tgit mv file-wild-3 git-wild-cp%percent &&\n' span_id:192) 
          (Token
            id: Id.Lit_Chars
            val: '\t\tgit commit -m "wildcard renames" &&\n'
            span_id: 193
          ) (Token id:Id.Lit_Chars val:'\t\tgit config git-p4.detectRenames true &&\n' span_id:194) 
          (Token
            id: Id.Lit_Chars
            val: '\t\tgit config git-p4.skipSubmitEdit true &&\n'
            span_id: 195
          ) (Token id:Id.Lit_Chars val:'\t\tgit p4 submit\n' span_id:196) 
          (Token id:Id.Lit_Chars val:'\t) &&\n' span_id:197) (Token id:Id.Lit_Chars val:'\t(\n' span_id:198) 
          (Token id:Id.Lit_Chars val:'\t\tcd "$cli" &&\n' span_id:199) (Token id:Id.Lit_Chars val:'\t\ttest_path_is_missing git-wild@at &&\n' span_id:200) 
          (Token
            id: Id.Lit_Chars
            val: '\t\ttest_path_is_file git-wild-cp%percent\n'
            span_id: 201
          ) (Token id:Id.Lit_Chars val:'\t)\n' span_id:202)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'wildcard files submit back to p4, delete' span_id:209))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:213) 
          (Token id:Id.Lit_Chars val:'\ttest_when_finished cleanup_git &&\n' span_id:214) (Token id:Id.Lit_Chars val:'\tgit p4 clone --dest="$git" //depot &&\n' span_id:215) 
          (Token id:Id.Lit_Chars val:'\t(\n' span_id:216) (Token id:Id.Lit_Chars val:'\t\tcd "$git" &&\n' span_id:217) 
          (Token id:Id.Lit_Chars val:'\t\tgit rm git-wild* &&\n' span_id:218) (Token id:Id.Lit_Chars val:'\t\tgit commit -m "delete the wildcard files" &&\n' span_id:219) 
          (Token
            id: Id.Lit_Chars
            val: '\t\tgit config git-p4.skipSubmitEdit true &&\n'
            span_id: 220
          ) (Token id:Id.Lit_Chars val:'\t\tgit p4 submit\n' span_id:221) 
          (Token id:Id.Lit_Chars val:'\t) &&\n' span_id:222) (Token id:Id.Lit_Chars val:'\t(\n' span_id:223) 
          (Token id:Id.Lit_Chars val:'\t\tcd "$cli" &&\n' span_id:224) (Token id:Id.Lit_Chars val:'\t\ttest_path_is_missing git-wild#hash &&\n' span_id:225) 
          (Token
            id: Id.Lit_Chars
            val: '\t\tif test_have_prereq !MINGW,!CYGWIN\n'
            span_id: 226
          ) (Token id:Id.Lit_Chars val:'\t\tthen\n' span_id:227) 
          (Token
            id: Id.Lit_Chars
            val: '\t\t\ttest_path_is_missing git-wild\\*star\n'
            span_id: 228
          ) (Token id:Id.Lit_Chars val:'\t\tfi &&\n' span_id:229) 
          (Token
            id: Id.Lit_Chars
            val: '\t\ttest_path_is_missing git-wild@at &&\n'
            span_id: 230
          ) (Token id:Id.Lit_Chars val:'\t\ttest_path_is_missing git-wild%percent\n' span_id:231) 
          (Token id:Id.Lit_Chars val:'\t)\n' span_id:232)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'p4 deleted a wildcard file' span_id:239))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:243) 
          (Token id:Id.Lit_Chars val:'\t(\n' span_id:244) (Token id:Id.Lit_Chars val:'\t\tcd "$cli" &&\n' span_id:245) 
          (Token
            id: Id.Lit_Chars
            val: '\t\techo "wild delete test" >wild@delete &&\n'
            span_id: 246
          ) (Token id:Id.Lit_Chars val:'\t\tp4 add -f wild@delete &&\n' span_id:247) 
          (Token id:Id.Lit_Chars val:'\t\tp4 submit -d "add wild@delete"\n' span_id:248) (Token id:Id.Lit_Chars val:'\t) &&\n' span_id:249) 
          (Token id:Id.Lit_Chars val:'\ttest_when_finished cleanup_git &&\n' span_id:250) (Token id:Id.Lit_Chars val:'\tgit p4 clone --dest="$git" //depot &&\n' span_id:251) 
          (Token id:Id.Lit_Chars val:'\t(\n' span_id:252) (Token id:Id.Lit_Chars val:'\t\tcd "$git" &&\n' span_id:253) 
          (Token id:Id.Lit_Chars val:'\t\ttest_path_is_file wild@delete\n' span_id:254) (Token id:Id.Lit_Chars val:'\t) &&\n' span_id:255) (Token id:Id.Lit_Chars val:'\t(\n' span_id:256) 
          (Token id:Id.Lit_Chars val:'\t\tcd "$cli" &&\n' span_id:257) (Token id:Id.Lit_Chars val:'\t\t# must use its encoded name\n' span_id:258) 
          (Token id:Id.Lit_Chars val:'\t\tp4 delete wild%40delete &&\n' span_id:259) (Token id:Id.Lit_Chars val:'\t\tp4 submit -d "delete wild@delete"\n' span_id:260) 
          (Token id:Id.Lit_Chars val:'\t) &&\n' span_id:261) (Token id:Id.Lit_Chars val:'\t(\n' span_id:262) 
          (Token id:Id.Lit_Chars val:'\t\tcd "$git" &&\n' span_id:263) (Token id:Id.Lit_Chars val:'\t\tgit p4 sync &&\n' span_id:264) 
          (Token id:Id.Lit_Chars val:'\t\tgit merge --ff-only p4/master &&\n' span_id:265) (Token id:Id.Lit_Chars val:'\t\ttest_path_is_missing wild@delete\n' span_id:266) 
          (Token id:Id.Lit_Chars val:'\t)\n' span_id:267)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'wildcard files requiring keyword scrub' span_id:274))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:278) 
          (Token id:Id.Lit_Chars val:'\t(\n' span_id:279) (Token id:Id.Lit_Chars val:'\t\tcd "$cli" &&\n' span_id:280) 
          (Token id:Id.Lit_Chars val:'\t\tcat <<-\\EOF >scrub@wild &&\n' span_id:281) (Token id:Id.Lit_Chars val:'\t\t$Id$\n' span_id:282) 
          (Token id:Id.Lit_Chars val:'\t\tline2\n' span_id:283) (Token id:Id.Lit_Chars val:'\t\tEOF\n' span_id:284) 
          (Token id:Id.Lit_Chars val:'\t\tp4 add -t text+k -f scrub@wild &&\n' span_id:285) (Token id:Id.Lit_Chars val:'\t\tp4 submit -d "scrub at wild"\n' span_id:286) 
          (Token id:Id.Lit_Chars val:'\t) &&\n' span_id:287) (Token id:Id.Lit_Chars val:'\ttest_when_finished cleanup_git &&\n' span_id:288) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit p4 clone --dest="$git" //depot &&\n'
            span_id: 289
          ) (Token id:Id.Lit_Chars val:'\t(\n' span_id:290) 
          (Token id:Id.Lit_Chars val:'\t\tcd "$git" &&\n' span_id:291) (Token id:Id.Lit_Chars val:'\t\tgit config git-p4.skipSubmitEdit true &&\n' span_id:292) 
          (Token
            id: Id.Lit_Chars
            val: '\t\tgit config git-p4.attemptRCSCleanup true &&\n'
            span_id: 293
          ) 
          (Token
            id: Id.Lit_Chars
            val: '\t\tsed "s/^line2/line2 edit/" <scrub@wild >scrub@wild.tmp &&\n'
            span_id: 294
          ) (Token id:Id.Lit_Chars val:'\t\tmv -f scrub@wild.tmp scrub@wild &&\n' span_id:295) 
          (Token
            id: Id.Lit_Chars
            val: '\t\tgit commit -m "scrub at wild line2 edit" scrub@wild &&\n'
            span_id: 296
          ) (Token id:Id.Lit_Chars val:'\t\tgit p4 submit\n' span_id:297) 
          (Token id:Id.Lit_Chars val:'\t)\n' span_id:298)
        )
      }
    )
    (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'kill p4d' span_id:305))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:309) 
          (Token id:Id.Lit_Chars val:'\tkill_p4d\n' span_id:310)
        )
      }
    )
    (C {(test_done)})
  ]
)