(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 label tests' 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:'basic p4 labels' span_id:45))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:49) (Token id:Id.Lit_Chars val:'\ttest_when_finished cleanup_git &&\n' span_id:50) (Token id:Id.Lit_Chars val:'\t(\n' span_id:51) (Token id:Id.Lit_Chars val:'\t\tcd "$cli" &&\n' span_id:52) (Token id:Id.Lit_Chars val:'\t\tmkdir -p main &&\n' span_id:53) (Token id:Id.Lit_Chars val:'\n' span_id:54) (Token id:Id.Lit_Chars val:'\t\techo f1 >main/f1 &&\n' span_id:55) (Token id:Id.Lit_Chars val:'\t\tp4 add main/f1 &&\n' span_id:56) (Token id:Id.Lit_Chars val:'\t\tp4 submit -d "main/f1" &&\n' span_id:57) (Token id:Id.Lit_Chars val:'\n' span_id:58) (Token id:Id.Lit_Chars val:'\t\techo f2 >main/f2 &&\n' span_id:59) (Token id:Id.Lit_Chars val:'\t\tp4 add main/f2 &&\n' span_id:60) (Token id:Id.Lit_Chars val:'\t\tp4 submit -d "main/f2" &&\n' span_id:61) (Token id:Id.Lit_Chars val:'\n' span_id:62) (Token id:Id.Lit_Chars val:'\t\techo f3 >main/file_with_\\$metachar &&\n' span_id:63) (Token id: Id.Lit_Chars val: '\t\tp4 add main/file_with_\\$metachar &&\n' span_id: 64 ) (Token id:Id.Lit_Chars val:'\t\tp4 submit -d "file with metachar" &&\n' span_id:65) (Token id:Id.Lit_Chars val:'\n' span_id:66) (Token id:Id.Lit_Chars val:'\t\tp4 tag -l tag_f1_only main/f1 &&\n' span_id:67) (Token id: Id.Lit_Chars val: '\t\tp4 tag -l tag_with\\$_shell_char main/... &&\n' span_id: 68 ) (Token id:Id.Lit_Chars val:'\n' span_id:69) (Token id:Id.Lit_Chars val:'\t\techo f4 >main/f4 &&\n' span_id:70) (Token id:Id.Lit_Chars val:'\t\tp4 add main/f4 &&\n' span_id:71) (Token id:Id.Lit_Chars val:'\t\tp4 submit -d "main/f4" &&\n' span_id:72) (Token id:Id.Lit_Chars val:'\n' span_id:73) (Token id:Id.Lit_Chars val:'\t\tp4 label -i <<-EOF &&\n' span_id:74) (Token id:Id.Lit_Chars val:'\t\tLabel: long_label\n' span_id:75) (Token id:Id.Lit_Chars val:'\t\tDescription:\n' span_id:76) (Token id:Id.Lit_Chars val:'\t\t A Label first line\n' span_id:77) (Token id:Id.Lit_Chars val:'\t\t A Label second line\n' span_id:78) (Token id:Id.Lit_Chars val:'\t\tView:\t//depot/...\n' span_id:79) (Token id:Id.Lit_Chars val:'\t\tEOF\n' span_id:80) (Token id:Id.Lit_Chars val:'\n' span_id:81) (Token id:Id.Lit_Chars val:'\t\tp4 tag -l long_label ... &&\n' span_id:82) (Token id:Id.Lit_Chars val:'\n' span_id:83) (Token id:Id.Lit_Chars val:'\t\tp4 labels ... &&\n' span_id:84) (Token id:Id.Lit_Chars val:'\n' span_id:85) (Token id: Id.Lit_Chars val: '\t\tgit p4 clone --dest="$git" --detect-labels //depot@all &&\n' span_id: 86 ) (Token id:Id.Lit_Chars val:'\t\tcd "$git" &&\n' span_id:87) (Token id:Id.Lit_Chars val:'\n' span_id:88) (Token id:Id.Lit_Chars val:'\t\tgit tag &&\n' span_id:89) (Token id:Id.Lit_Chars val:'\t\tgit tag >taglist &&\n' span_id:90) (Token id:Id.Lit_Chars val:'\t\ttest_line_count = 3 taglist &&\n' span_id:91) (Token id:Id.Lit_Chars val:'\n' span_id:92) (Token id:Id.Lit_Chars val:'\t\tcd main &&\n' span_id:93) (Token id:Id.Lit_Chars val:'\t\tgit checkout tag_tag_f1_only &&\n' span_id:94) (Token id:Id.Lit_Chars val:'\t\t! test -f f2 &&\n' span_id:95) (Token id: Id.Lit_Chars val: '\t\tgit checkout tag_tag_with\\$_shell_char &&\n' span_id: 96 ) (Token id: Id.Lit_Chars val: '\t\ttest -f f1 && test -f f2 && test -f file_with_\\$metachar &&\n' span_id: 97 ) (Token id:Id.Lit_Chars val:'\n' span_id:98) (Token id: Id.Lit_Chars val: '\t\tgit show tag_long_label | grep -q "A Label second line"\n' span_id: 99 ) (Token id:Id.Lit_Chars val:'\t)\n' span_id:100) ) } ) (C {(test_expect_failure)} {(SQ (Token id:Id.Lit_Chars val:'two labels on the same changelist' span_id:123))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:127) (Token id:Id.Lit_Chars val:'\ttest_when_finished cleanup_git &&\n' span_id:128) (Token id:Id.Lit_Chars val:'\t(\n' span_id:129) (Token id:Id.Lit_Chars val:'\t\tcd "$cli" &&\n' span_id:130) (Token id:Id.Lit_Chars val:'\t\tmkdir -p main &&\n' span_id:131) (Token id:Id.Lit_Chars val:'\n' span_id:132) (Token id:Id.Lit_Chars val:'\t\tp4 edit main/f1 main/f2 &&\n' span_id:133) (Token id:Id.Lit_Chars val:'\t\techo "hello world" >main/f1 &&\n' span_id:134) (Token id:Id.Lit_Chars val:'\t\techo "not in the tag" >main/f2 &&\n' span_id:135) (Token id: Id.Lit_Chars val: '\t\tp4 submit -d "main/f[12]: testing two labels" &&\n' span_id: 136 ) (Token id:Id.Lit_Chars val:'\n' span_id:137) (Token id:Id.Lit_Chars val:'\t\tp4 tag -l tag_f1_1 main/... &&\n' span_id:138) (Token id:Id.Lit_Chars val:'\t\tp4 tag -l tag_f1_2 main/... &&\n' span_id:139) (Token id:Id.Lit_Chars val:'\n' span_id:140) (Token id:Id.Lit_Chars val:'\t\tp4 labels ... &&\n' span_id:141) (Token id:Id.Lit_Chars val:'\n' span_id:142) (Token id: Id.Lit_Chars val: '\t\tgit p4 clone --dest="$git" --detect-labels //depot@all &&\n' span_id: 143 ) (Token id:Id.Lit_Chars val:'\t\tcd "$git" &&\n' span_id:144) (Token id:Id.Lit_Chars val:'\n' span_id:145) (Token id:Id.Lit_Chars val:'\t\tgit tag | grep tag_f1 &&\n' span_id:146) (Token id:Id.Lit_Chars val:'\t\tgit tag | grep -q tag_f1_1 &&\n' span_id:147) (Token id:Id.Lit_Chars val:'\t\tgit tag | grep -q tag_f1_2 &&\n' span_id:148) (Token id:Id.Lit_Chars val:'\n' span_id:149) (Token id:Id.Lit_Chars val:'\t\tcd main &&\n' span_id:150) (Token id:Id.Lit_Chars val:'\n' span_id:151) (Token id:Id.Lit_Chars val:'\t\tgit checkout tag_tag_f1_1 &&\n' span_id:152) (Token id:Id.Lit_Chars val:'\t\tls &&\n' span_id:153) (Token id:Id.Lit_Chars val:'\t\ttest -f f1 &&\n' span_id:154) (Token id:Id.Lit_Chars val:'\n' span_id:155) (Token id:Id.Lit_Chars val:'\t\tgit checkout tag_tag_f1_2 &&\n' span_id:156) (Token id:Id.Lit_Chars val:'\t\tls &&\n' span_id:157) (Token id:Id.Lit_Chars val:'\t\ttest -f f1\n' span_id:158) (Token id:Id.Lit_Chars val:'\t)\n' span_id:159) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'kill p4d' span_id:166))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:170) (Token id:Id.Lit_Chars val:'\tkill_p4d\n' span_id:171) ) } ) (C {(test_done)}) ] )