(List (= scope= flags=0 words=[] bindings=[('test_description', {[SQ ]})]) (Com {[LIT_CHARS .]} {[LIT_CHARS ./test-lib.sh]}) (Com {[LIT_CHARS .]} {[DQ [VarSub TEST_DIRECTORY]] [LIT_CHARS /lib-gpg.sh]}) (FunctionDef tag_exists [] (Com {[LIT_CHARS git]} {[LIT_CHARS show-ref]} {[LIT_CHARS --quiet]} {[LIT_CHARS --verify]} {[LIT_CHARS refs/tags/] [DQ [VarSub 1]]}) ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ foo &&\n"> ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ expect &&\n"> actual &&\n"> ]}) (Com {[LIT_CHARS git]} {[LIT_CHARS tag]} {[LIT_CHARS -d]} {[LIT_CHARS newtag]} {[LIT_CHARS forcetag]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ]}) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS expect]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "myhead\n"][LIT_CHARS "mytag\n"]]} 0), > ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ actual && test_cmp expect actual &&\n"> actual && test_cmp expect actual\n">]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ]}) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS expect]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "a1\n"][LIT_CHARS "aa1\n"][LIT_CHARS "cba\n"][LIT_CHARS "t210\n"][LIT_CHARS "t211\n"][LIT_CHARS "v0.2.1\n"][LIT_CHARS "v1.0\n"][LIT_CHARS "v1.0.1\n"][LIT_CHARS "v1.1.3\n"]]} 0), > ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ actual &&\n"> actual &&\n"> ]}) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS expect]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "a1\n"][LIT_CHARS "aa1\n"][LIT_CHARS "cba\n"]]} 0), > ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ current &&\n"> ]}) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS expect]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "v0.2.1\n"][LIT_CHARS "v1.0.1\n"]]} 0), > ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ actual &&\n"> ]}) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS expect]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "t210\n"][LIT_CHARS "t211\n"]]} 0), > ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ actual &&\n"> ]}) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS expect]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "a1\n"]]} 0), > ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ actual &&\n"> ]}) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS expect]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "v1.0\n"]]} 0), > ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ actual &&\n"> ]}) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS expect]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "v1.0.1\n"][LIT_CHARS "v1.1.3\n"]]} 0), > ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ actual &&\n"> ]}) (Com < (FilenameRedirectNode filename={[LIT_CHARS expect]} "> 1), > ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ actual &&\n"> ]}) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS expect]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "v0.2.1\n"][LIT_CHARS "v1.0\n"][LIT_CHARS "v1.0.1\n"][LIT_CHARS "v1.1.3\n"]]} 0), > ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ actual &&\n"> ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ actual &&\n"> ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ actual &&\n"> expected <<\\EOF &&\n"> ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ actual &&\n"> expected <<\\EOF &&\n"> ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ actual &&\n"> expected <<\\EOF &&\n"> ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ]}) (FunctionDef get_tag_msg [] (Pipeline (Com {[LIT_CHARS git]} {[LIT_CHARS cat-file]} {[LIT_CHARS tag]} {[DQ [VarSub 1]]}) (Com {[LIT_CHARS sed]} {[LIT_CHARS -e]} {[DQ [LIT_CHARS "/BEGIN PGP/q"]]}) ) ) (FunctionDef get_tag_header [] (Com {[LIT_CHARS cat]} < (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "object "][VarSub 2][LIT_CHARS "\n"][LIT_CHARS "type "][VarSub 3][LIT_CHARS "\n"][LIT_CHARS "tag "][VarSub 1][LIT_CHARS "\n"][LIT_CHARS "tagger C O Mitter "][VarSub 4][LIT_CHARS " -0700\n"][LIT_CHARS "\n"]]} 0), > ) ) (= scope= flags=0 words=[] bindings=[('commit', {[ComSub (Com {[LIT_CHARS git]} {[LIT_CHARS rev-parse]} {[LIT_CHARS HEAD]})]})]) (= scope= flags=0 words=[] bindings=[('time', {[VarSub test_tick]})]) (Com {[LIT_CHARS get_tag_header]} {[LIT_CHARS annotated-tag]} {[VarSub commit]} {[LIT_CHARS commit]} {[VarSub time]} < (FilenameRedirectNode filename={[LIT_CHARS expect]} "> 1), > ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "A message"]]} < (FilenameRedirectNode filename={[LIT_CHARS expect]} >"> 1), > ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ actual &&\n"> ]}) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS msgfile]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "Another message\n"][LIT_CHARS "in a file.\n"]]} 0), > ) (Com {[LIT_CHARS get_tag_header]} {[LIT_CHARS file-annotated-tag]} {[VarSub commit]} {[LIT_CHARS commit]} {[VarSub time]} < (FilenameRedirectNode filename={[LIT_CHARS expect]} "> 1), > ) (Com {[LIT_CHARS cat]} {[LIT_CHARS msgfile]} < (FilenameRedirectNode filename={[LIT_CHARS expect]} >"> 1), > ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ actual &&\n"> ]}) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS inputmsg]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "A message from the\n"][LIT_CHARS "standard input\n"]]} 0), > ) (Com {[LIT_CHARS get_tag_header]} {[LIT_CHARS stdin-annotated-tag]} {[VarSub commit]} {[LIT_CHARS commit]} {[VarSub time]} < (FilenameRedirectNode filename={[LIT_CHARS expect]} "> 1), > ) (Com {[LIT_CHARS cat]} {[LIT_CHARS inputmsg]} < (FilenameRedirectNode filename={[LIT_CHARS expect]} >"> 1), > ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ actual &&\n"> ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ msgfile1 &&\n"> msgfile2 &&\n"> ]}) (Com {[LIT_CHARS get_tag_header]} {[LIT_CHARS empty-annotated-tag]} {[VarSub commit]} {[LIT_CHARS commit]} {[VarSub time]} < (FilenameRedirectNode filename={[LIT_CHARS expect]} "> 1), > ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ actual &&\n"> ]}) (Com < (FilenameRedirectNode filename={[LIT_CHARS emptyfile]} "> 1), > ) (Com {[LIT_CHARS get_tag_header]} {[LIT_CHARS emptyfile-annotated-tag]} {[VarSub commit]} {[LIT_CHARS commit]} {[VarSub time]} < (FilenameRedirectNode filename={[LIT_CHARS expect]} "> 1), > ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ actual &&\n"> ]}) (Com {[LIT_CHARS printf]} {[SQ ]} < (FilenameRedirectNode filename={[LIT_CHARS blanksfile]} "> 1), > ) (Com {[LIT_CHARS printf]} {[SQ ]} < (FilenameRedirectNode filename={[LIT_CHARS blanksfile]} >"> 1), > ) (Com {[LIT_CHARS printf]} {[SQ ]} < (FilenameRedirectNode filename={[LIT_CHARS blanksfile]} >"> 1), > ) (Com {[LIT_CHARS printf]} {[SQ ]} < (FilenameRedirectNode filename={[LIT_CHARS blanksfile]} >"> 1), > ) (Com {[LIT_CHARS get_tag_header]} {[LIT_CHARS blanks-annotated-tag]} {[VarSub commit]} {[LIT_CHARS commit]} {[VarSub time]} < (FilenameRedirectNode filename={[LIT_CHARS expect]} "> 1), > ) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS expect]} >"> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "Leading blank lines\n"][LIT_CHARS "\n"][LIT_CHARS "Repeated blank lines\n"][LIT_CHARS "\n"][LIT_CHARS "Trailing spaces\n"][LIT_CHARS "\n"][LIT_CHARS "Trailing blank lines\n"]]} 0), > ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ actual &&\n"> ]}) (Com {[LIT_CHARS get_tag_header]} {[LIT_CHARS blank-annotated-tag]} {[VarSub commit]} {[LIT_CHARS commit]} {[VarSub time]} < (FilenameRedirectNode filename={[LIT_CHARS expect]} "> 1), > ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ actual &&\n"> ]}) (Com {[LIT_CHARS echo]} {[SQ ]} < (FilenameRedirectNode filename={[LIT_CHARS blankfile]} "> 1), > ) (Com {[LIT_CHARS echo]} {[SQ ]} < (FilenameRedirectNode filename={[LIT_CHARS blankfile]} >"> 1), > ) (Com {[LIT_CHARS echo]} {[SQ ]} < (FilenameRedirectNode filename={[LIT_CHARS blankfile]} >"> 1), > ) (Com {[LIT_CHARS get_tag_header]} {[LIT_CHARS blankfile-annotated-tag]} {[VarSub commit]} {[LIT_CHARS commit]} {[VarSub time]} < (FilenameRedirectNode filename={[LIT_CHARS expect]} "> 1), > ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ actual &&\n"> ]}) (Com {[LIT_CHARS printf]} {[SQ ]} < (FilenameRedirectNode filename={[LIT_CHARS blanknonlfile]} "> 1), > ) (Com {[LIT_CHARS get_tag_header]} {[LIT_CHARS blanknonlfile-annotated-tag]} {[VarSub commit]} {[LIT_CHARS commit]} {[VarSub time]} < (FilenameRedirectNode filename={[LIT_CHARS expect]} "> 1), > ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ actual &&\n"> ]}) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS commentsfile]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "# A comment\n"][LIT_CHARS "\n"][LIT_CHARS "############\n"][LIT_CHARS "The message.\n"][LIT_CHARS "############\n"][LIT_CHARS "One line.\n"][LIT_CHARS "\n"][LIT_CHARS "\n"][LIT_CHARS "# commented lines\n"][LIT_CHARS "# commented lines\n"][LIT_CHARS "\n"][LIT_CHARS "Another line.\n"][LIT_CHARS "# comments\n"][LIT_CHARS "\n"][LIT_CHARS "Last line.\n"]]} 0), > ) (Com {[LIT_CHARS get_tag_header]} {[LIT_CHARS comments-annotated-tag]} {[VarSub commit]} {[LIT_CHARS commit]} {[VarSub time]} < (FilenameRedirectNode filename={[LIT_CHARS expect]} "> 1), > ) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS expect]} >"> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "The message.\n"][LIT_CHARS "One line.\n"][LIT_CHARS "\n"][LIT_CHARS "Another line.\n"][LIT_CHARS "\n"][LIT_CHARS "Last line.\n"]]} 0), > ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ actual &&\n"> ]}) (Com {[LIT_CHARS get_tag_header]} {[LIT_CHARS comment-annotated-tag]} {[VarSub commit]} {[LIT_CHARS commit]} {[VarSub time]} < (FilenameRedirectNode filename={[LIT_CHARS expect]} "> 1), > ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ actual &&\n"> ]}) (Com {[LIT_CHARS echo]} {[SQ ]} < (FilenameRedirectNode filename={[LIT_CHARS commentfile]} "> 1), > ) (Com {[LIT_CHARS echo]} {[SQ ]} < (FilenameRedirectNode filename={[LIT_CHARS commentfile]} >"> 1), > ) (Com {[LIT_CHARS echo]} {[SQ ]} < (FilenameRedirectNode filename={[LIT_CHARS commentfile]} >"> 1), > ) (Com {[LIT_CHARS get_tag_header]} {[LIT_CHARS commentfile-annotated-tag]} {[VarSub commit]} {[LIT_CHARS commit]} {[VarSub time]} < (FilenameRedirectNode filename={[LIT_CHARS expect]} "> 1), > ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ actual &&\n"> ]}) (Com {[LIT_CHARS printf]} {[SQ ]} < (FilenameRedirectNode filename={[LIT_CHARS commentnonlfile]} "> 1), > ) (Com {[LIT_CHARS get_tag_header]} {[LIT_CHARS commentnonlfile-annotated-tag]} {[VarSub commit]} {[LIT_CHARS commit]} {[VarSub time]} < (FilenameRedirectNode filename={[LIT_CHARS expect]} "> 1), > ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ actual &&\n"> ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ expect &&\n"> actual &&\n"> actual &&\n"> actual &&\n"> expect &&\n"> actual &&\n"> actual &&\n"> actual &&\n"> actual &&\n"> actual &&\n"> ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ expect &&\n"> actual &&\n"> actual &&\n"> actual &&\n"> expect &&\n"> actual &&\n"> actual &&\n"> actual &&\n"> actual &&\n"> actual &&\n"> ]}) (Com {[LIT_CHARS echo]} {[SQ ]} < (FilenameRedirectNode filename={[LIT_CHARS annotagmsg]} "> 1), > ) (Com {[LIT_CHARS echo]} {[SQ ]} < (FilenameRedirectNode filename={[LIT_CHARS annotagmsg]} >"> 1), > ) (Com {[LIT_CHARS echo]} {[SQ ]} < (FilenameRedirectNode filename={[LIT_CHARS annotagmsg]} >"> 1), > ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ expect &&\n"> actual &&\n"> actual &&\n"> actual &&\n"> expect &&\n"> actual &&\n"> actual &&\n"> actual &&\n"> >expect &&\n"> actual &&\n"> actual &&\n"> >expect &&\n"> actual &&\n"> actual &&\n"> actual &&\n"> actual &&\n"> actual &&\n"> actual &&\n"> ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ expect &&\n"> actual &&\n"> ]}) (Com {[LIT_CHARS test_expect_success]} {[LIT_CHARS GPG]} {[SQ ]} {[SQ ]}) (Com {[LIT_CHARS test_expect_success]} {[LIT_CHARS GPG]} {[SQ ]} {[SQ ]}) (Com {[LIT_CHARS test_expect_success]} {[LIT_CHARS GPG]} {[SQ ]} {[SQ ]}) (Com {[LIT_CHARS get_tag_header]} {[LIT_CHARS signed-tag]} {[VarSub commit]} {[LIT_CHARS commit]} {[VarSub time]} < (FilenameRedirectNode filename={[LIT_CHARS expect]} "> 1), > ) (Com {[LIT_CHARS echo]} {[SQ ]} < (FilenameRedirectNode filename={[LIT_CHARS expect]} >"> 1), > ) (Com {[LIT_CHARS echo]} {[SQ ]} < (FilenameRedirectNode filename={[LIT_CHARS expect]} >"> 1), > ) (Com {[LIT_CHARS test_expect_success]} {[LIT_CHARS GPG]} {[SQ ]} {[SQ actual &&\n"> ]}) (Com {[LIT_CHARS get_tag_header]} {[LIT_CHARS u-signed-tag]} {[VarSub commit]} {[LIT_CHARS commit]} {[VarSub time]} < (FilenameRedirectNode filename={[LIT_CHARS expect]} "> 1), > ) (Com {[LIT_CHARS echo]} {[SQ ]} < (FilenameRedirectNode filename={[LIT_CHARS expect]} >"> 1), > ) (Com {[LIT_CHARS echo]} {[SQ ]} < (FilenameRedirectNode filename={[LIT_CHARS expect]} >"> 1), > ) (Com {[LIT_CHARS test_expect_success]} {[LIT_CHARS GPG]} {[SQ ]} {[SQ actual &&\n"> ]}) (Com {[LIT_CHARS test_expect_success]} {[LIT_CHARS GPG]} {[SQ ]} {[SQ ]}) (Com {[LIT_CHARS test_expect_success]} {[LIT_CHARS GPG]} {[SQ ]} {[SQ ]}) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS fakeeditor]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=False body_word={[LIT_CHARS "#!/bin/sh\n"] [LIT_CHARS "test -n \"$1\" && exec >\"$1\"\n"] [LIT_CHARS "echo A signed tag message\n"] [LIT_CHARS "echo from a fake editor.\n"]} 0), > ) (Com {[LIT_CHARS chmod]} {[LIT_OTHER "+"] [LIT_CHARS x]} {[LIT_CHARS fakeeditor]}) (Com {[LIT_CHARS get_tag_header]} {[LIT_CHARS implied-sign]} {[VarSub commit]} {[LIT_CHARS commit]} {[VarSub time]} < (FilenameRedirectNode filename={[LIT_CHARS expect]} "> 1), > ) (Com {[LIT_CHARS ./fakeeditor]} < (FilenameRedirectNode filename={[LIT_CHARS expect]} >"> 1), > ) (Com {[LIT_CHARS echo]} {[SQ ]} < (FilenameRedirectNode filename={[LIT_CHARS expect]} >"> 1), > ) (Com {[LIT_CHARS test_expect_success]} {[LIT_CHARS GPG]} {[SQ ]} {[SQ actual &&\n"> ]}) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS sigmsgfile]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "Another signed tag\n"][LIT_CHARS "message in a file.\n"]]} 0), > ) (Com {[LIT_CHARS get_tag_header]} {[LIT_CHARS file-signed-tag]} {[VarSub commit]} {[LIT_CHARS commit]} {[VarSub time]} < (FilenameRedirectNode filename={[LIT_CHARS expect]} "> 1), > ) (Com {[LIT_CHARS cat]} {[LIT_CHARS sigmsgfile]} < (FilenameRedirectNode filename={[LIT_CHARS expect]} >"> 1), > ) (Com {[LIT_CHARS echo]} {[SQ ]} < (FilenameRedirectNode filename={[LIT_CHARS expect]} >"> 1), > ) (Com {[LIT_CHARS test_expect_success]} {[LIT_CHARS GPG]} {[SQ ]} {[SQ actual &&\n"> ]}) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS siginputmsg]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "A signed tag message from\n"][LIT_CHARS "the standard input\n"]]} 0), > ) (Com {[LIT_CHARS get_tag_header]} {[LIT_CHARS stdin-signed-tag]} {[VarSub commit]} {[LIT_CHARS commit]} {[VarSub time]} < (FilenameRedirectNode filename={[LIT_CHARS expect]} "> 1), > ) (Com {[LIT_CHARS cat]} {[LIT_CHARS siginputmsg]} < (FilenameRedirectNode filename={[LIT_CHARS expect]} >"> 1), > ) (Com {[LIT_CHARS echo]} {[SQ ]} < (FilenameRedirectNode filename={[LIT_CHARS expect]} >"> 1), > ) (Com {[LIT_CHARS test_expect_success]} {[LIT_CHARS GPG]} {[SQ ]} {[SQ actual &&\n"> ]}) (Com {[LIT_CHARS get_tag_header]} {[LIT_CHARS implied-annotate]} {[VarSub commit]} {[LIT_CHARS commit]} {[VarSub time]} < (FilenameRedirectNode filename={[LIT_CHARS expect]} "> 1), > ) (Com {[LIT_CHARS ./fakeeditor]} < (FilenameRedirectNode filename={[LIT_CHARS expect]} >"> 1), > ) (Com {[LIT_CHARS echo]} {[SQ ]} < (FilenameRedirectNode filename={[LIT_CHARS expect]} >"> 1), > ) (Com {[LIT_CHARS test_expect_success]} {[LIT_CHARS GPG]} {[SQ ]} {[SQ actual &&\n"> ]}) (Com {[LIT_CHARS get_tag_header]} {[LIT_CHARS forcesignannotated-implied-sign]} {[VarSub commit]} {[LIT_CHARS commit]} {[VarSub time]} < (FilenameRedirectNode filename={[LIT_CHARS expect]} "> 1), > ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "A message"]]} < (FilenameRedirectNode filename={[LIT_CHARS expect]} >"> 1), > ) (Com {[LIT_CHARS echo]} {[SQ ]} < (FilenameRedirectNode filename={[LIT_CHARS expect]} >"> 1), > ) (Com {[LIT_CHARS test_expect_success]} {[LIT_CHARS GPG]} {[SQ ]} {[SQ actual &&\n"> ]}) (Com {[LIT_CHARS test_expect_success]} {[LIT_CHARS GPG]} {[SQ ]} {[SQ ]}) (Com {[LIT_CHARS get_tag_header]} {[LIT_CHARS forcesignannotated-annotate]} {[VarSub commit]} {[LIT_CHARS commit]} {[VarSub time]} < (FilenameRedirectNode filename={[LIT_CHARS expect]} "> 1), > ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "A message"]]} < (FilenameRedirectNode filename={[LIT_CHARS expect]} >"> 1), > ) (Com {[LIT_CHARS test_expect_success]} {[LIT_CHARS GPG]} {[SQ ]} {[SQ actual &&\n"> ]}) (Com {[LIT_CHARS get_tag_header]} {[LIT_CHARS forcesignannotated-disabled]} {[VarSub commit]} {[LIT_CHARS commit]} {[VarSub time]} < (FilenameRedirectNode filename={[LIT_CHARS expect]} "> 1), > ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "A message"]]} < (FilenameRedirectNode filename={[LIT_CHARS expect]} >"> 1), > ) (Com {[LIT_CHARS echo]} {[SQ ]} < (FilenameRedirectNode filename={[LIT_CHARS expect]} >"> 1), > ) (Com {[LIT_CHARS test_expect_success]} {[LIT_CHARS GPG]} {[SQ ]} {[SQ actual &&\n"> ]}) (Com {[LIT_CHARS test_expect_success]} {[LIT_CHARS GPG]} {[SQ ]} {[SQ ]}) (Com {[LIT_CHARS test_expect_success]} {[LIT_CHARS GPG]} {[SQ ]} {[SQ ]}) (Com {[LIT_CHARS test_expect_success]} {[LIT_CHARS GPG]} {[SQ ]} {[SQ ]}) (Com {[LIT_CHARS test_expect_success]} {[LIT_CHARS GPG]} {[SQ ]} {[SQ ]}) (Com {[LIT_CHARS test_expect_success]} {[LIT_CHARS GPG]} {[SQ ]} {[SQ ]}) (Com {[LIT_CHARS get_tag_header]} {[LIT_CHARS empty-signed-tag]} {[VarSub commit]} {[LIT_CHARS commit]} {[VarSub time]} < (FilenameRedirectNode filename={[LIT_CHARS expect]} "> 1), > ) (Com {[LIT_CHARS echo]} {[SQ ]} < (FilenameRedirectNode filename={[LIT_CHARS expect]} >"> 1), > ) (Com {[LIT_CHARS test_expect_success]} {[LIT_CHARS GPG]} {[SQ ]} {[SQ actual &&\n"> ]}) (Com < (FilenameRedirectNode filename={[LIT_CHARS sigemptyfile]} "> 1), > ) (Com {[LIT_CHARS get_tag_header]} {[LIT_CHARS emptyfile-signed-tag]} {[VarSub commit]} {[LIT_CHARS commit]} {[VarSub time]} < (FilenameRedirectNode filename={[LIT_CHARS expect]} "> 1), > ) (Com {[LIT_CHARS echo]} {[SQ ]} < (FilenameRedirectNode filename={[LIT_CHARS expect]} >"> 1), > ) (Com {[LIT_CHARS test_expect_success]} {[LIT_CHARS GPG]} {[SQ ]} {[SQ actual &&\n"> ]}) (Com {[LIT_CHARS printf]} {[SQ ]} < (FilenameRedirectNode filename={[LIT_CHARS sigblanksfile]} "> 1), > ) (Com {[LIT_CHARS printf]} {[SQ ]} < (FilenameRedirectNode filename={[LIT_CHARS sigblanksfile]} >"> 1), > ) (Com {[LIT_CHARS printf]} {[SQ ]} < (FilenameRedirectNode filename={[LIT_CHARS sigblanksfile]} >"> 1), > ) (Com {[LIT_CHARS printf]} {[SQ ]} < (FilenameRedirectNode filename={[LIT_CHARS sigblanksfile]} >"> 1), > ) (Com {[LIT_CHARS get_tag_header]} {[LIT_CHARS blanks-signed-tag]} {[VarSub commit]} {[LIT_CHARS commit]} {[VarSub time]} < (FilenameRedirectNode filename={[LIT_CHARS expect]} "> 1), > ) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS expect]} >"> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "Leading blank lines\n"][LIT_CHARS "\n"][LIT_CHARS "Repeated blank lines\n"][LIT_CHARS "\n"][LIT_CHARS "Trailing spaces\n"][LIT_CHARS "\n"][LIT_CHARS "Trailing blank lines\n"]]} 0), > ) (Com {[LIT_CHARS echo]} {[SQ ]} < (FilenameRedirectNode filename={[LIT_CHARS expect]} >"> 1), > ) (Com {[LIT_CHARS test_expect_success]} {[LIT_CHARS GPG]} {[SQ ]} {[SQ actual &&\n"> ]}) (Com {[LIT_CHARS get_tag_header]} {[LIT_CHARS blank-signed-tag]} {[VarSub commit]} {[LIT_CHARS commit]} {[VarSub time]} < (FilenameRedirectNode filename={[LIT_CHARS expect]} "> 1), > ) (Com {[LIT_CHARS echo]} {[SQ ]} < (FilenameRedirectNode filename={[LIT_CHARS expect]} >"> 1), > ) (Com {[LIT_CHARS test_expect_success]} {[LIT_CHARS GPG]} {[SQ ]} {[SQ actual &&\n"> ]}) (Com {[LIT_CHARS echo]} {[SQ ]} < (FilenameRedirectNode filename={[LIT_CHARS sigblankfile]} "> 1), > ) (Com {[LIT_CHARS echo]} {[SQ ]} < (FilenameRedirectNode filename={[LIT_CHARS sigblankfile]} >"> 1), > ) (Com {[LIT_CHARS echo]} {[SQ ]} < (FilenameRedirectNode filename={[LIT_CHARS sigblankfile]} >"> 1), > ) (Com {[LIT_CHARS get_tag_header]} {[LIT_CHARS blankfile-signed-tag]} {[VarSub commit]} {[LIT_CHARS commit]} {[VarSub time]} < (FilenameRedirectNode filename={[LIT_CHARS expect]} "> 1), > ) (Com {[LIT_CHARS echo]} {[SQ ]} < (FilenameRedirectNode filename={[LIT_CHARS expect]} >"> 1), > ) (Com {[LIT_CHARS test_expect_success]} {[LIT_CHARS GPG]} {[SQ ]} {[SQ actual &&\n"> ]}) (Com {[LIT_CHARS printf]} {[SQ ]} < (FilenameRedirectNode filename={[LIT_CHARS sigblanknonlfile]} "> 1), > ) (Com {[LIT_CHARS get_tag_header]} {[LIT_CHARS blanknonlfile-signed-tag]} {[VarSub commit]} {[LIT_CHARS commit]} {[VarSub time]} < (FilenameRedirectNode filename={[LIT_CHARS expect]} "> 1), > ) (Com {[LIT_CHARS echo]} {[SQ ]} < (FilenameRedirectNode filename={[LIT_CHARS expect]} >"> 1), > ) (Com {[LIT_CHARS test_expect_success]} {[LIT_CHARS GPG]} {[SQ ]} {[SQ actual &&\n"> ]}) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS sigcommentsfile]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "# A comment\n"][LIT_CHARS "\n"][LIT_CHARS "############\n"][LIT_CHARS "The message.\n"][LIT_CHARS "############\n"][LIT_CHARS "One line.\n"][LIT_CHARS "\n"][LIT_CHARS "\n"][LIT_CHARS "# commented lines\n"][LIT_CHARS "# commented lines\n"][LIT_CHARS "\n"][LIT_CHARS "Another line.\n"][LIT_CHARS "# comments\n"][LIT_CHARS "\n"][LIT_CHARS "Last line.\n"]]} 0), > ) (Com {[LIT_CHARS get_tag_header]} {[LIT_CHARS comments-signed-tag]} {[VarSub commit]} {[LIT_CHARS commit]} {[VarSub time]} < (FilenameRedirectNode filename={[LIT_CHARS expect]} "> 1), > ) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS expect]} >"> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "The message.\n"][LIT_CHARS "One line.\n"][LIT_CHARS "\n"][LIT_CHARS "Another line.\n"][LIT_CHARS "\n"][LIT_CHARS "Last line.\n"]]} 0), > ) (Com {[LIT_CHARS echo]} {[SQ ]} < (FilenameRedirectNode filename={[LIT_CHARS expect]} >"> 1), > ) (Com {[LIT_CHARS test_expect_success]} {[LIT_CHARS GPG]} {[SQ ]} {[SQ actual &&\n"> ]}) (Com {[LIT_CHARS get_tag_header]} {[LIT_CHARS comment-signed-tag]} {[VarSub commit]} {[LIT_CHARS commit]} {[VarSub time]} < (FilenameRedirectNode filename={[LIT_CHARS expect]} "> 1), > ) (Com {[LIT_CHARS echo]} {[SQ ]} < (FilenameRedirectNode filename={[LIT_CHARS expect]} >"> 1), > ) (Com {[LIT_CHARS test_expect_success]} {[LIT_CHARS GPG]} {[SQ ]} {[SQ actual &&\n"> ]}) (Com {[LIT_CHARS echo]} {[SQ ]} < (FilenameRedirectNode filename={[LIT_CHARS sigcommentfile]} "> 1), > ) (Com {[LIT_CHARS echo]} {[SQ ]} < (FilenameRedirectNode filename={[LIT_CHARS sigcommentfile]} >"> 1), > ) (Com {[LIT_CHARS echo]} {[SQ ]} < (FilenameRedirectNode filename={[LIT_CHARS sigcommentfile]} >"> 1), > ) (Com {[LIT_CHARS get_tag_header]} {[LIT_CHARS commentfile-signed-tag]} {[VarSub commit]} {[LIT_CHARS commit]} {[VarSub time]} < (FilenameRedirectNode filename={[LIT_CHARS expect]} "> 1), > ) (Com {[LIT_CHARS echo]} {[SQ ]} < (FilenameRedirectNode filename={[LIT_CHARS expect]} >"> 1), > ) (Com {[LIT_CHARS test_expect_success]} {[LIT_CHARS GPG]} {[SQ ]} {[SQ actual &&\n"> ]}) (Com {[LIT_CHARS printf]} {[SQ ]} < (FilenameRedirectNode filename={[LIT_CHARS sigcommentnonlfile]} "> 1), > ) (Com {[LIT_CHARS get_tag_header]} {[LIT_CHARS commentnonlfile-signed-tag]} {[VarSub commit]} {[LIT_CHARS commit]} {[VarSub time]} < (FilenameRedirectNode filename={[LIT_CHARS expect]} "> 1), > ) (Com {[LIT_CHARS echo]} {[SQ ]} < (FilenameRedirectNode filename={[LIT_CHARS expect]} >"> 1), > ) (Com {[LIT_CHARS test_expect_success]} {[LIT_CHARS GPG]} {[SQ ]} {[SQ actual &&\n"> ]}) (Com {[LIT_CHARS test_expect_success]} {[LIT_CHARS GPG]} {[SQ ]} {[SQ expect &&\n"> actual &&\n"> actual &&\n"> actual &&\n"> expect &&\n"> actual &&\n"> actual &&\n"> actual &&\n"> actual &&\n"> actual &&\n"> ]}) (Com {[LIT_CHARS test_expect_success]} {[LIT_CHARS GPG]} {[SQ ]} {[SQ expect &&\n"> actual &&\n"> actual &&\n"> actual &&\n"> expect &&\n"> actual &&\n"> actual &&\n"> actual &&\n"> actual &&\n"> actual &&\n"> ]}) (Com {[LIT_CHARS echo]} {[SQ ]} < (FilenameRedirectNode filename={[LIT_CHARS sigtagmsg]} "> 1), > ) (Com {[LIT_CHARS echo]} {[SQ ]} < (FilenameRedirectNode filename={[LIT_CHARS sigtagmsg]} >"> 1), > ) (Com {[LIT_CHARS echo]} {[SQ ]} < (FilenameRedirectNode filename={[LIT_CHARS sigtagmsg]} >"> 1), > ) (Com {[LIT_CHARS test_expect_success]} {[LIT_CHARS GPG]} {[SQ ]} {[SQ expect &&\n"> actual &&\n"> actual &&\n"> actual &&\n"> expect &&\n"> actual &&\n"> actual &&\n"> actual &&\n"> >expect &&\n"> actual &&\n"> actual &&\n"> >expect &&\n"> actual &&\n"> actual &&\n"> actual &&\n"> actual &&\n"> actual &&\n"> actual &&\n"> ]}) (= scope= flags=0 words=[] bindings=[('tree', {[ComSub (Com {[LIT_CHARS git]} {[LIT_CHARS rev-parse]} {[LIT_CHARS HEAD] [LIT_OTHER "^"] [LIT_LBRACE "{"] [LIT_CHARS tree] [LIT_RBRACE "}"]})]})]) (= scope= flags=0 words=[] bindings=[('blob', {[ComSub (Com {[LIT_CHARS git]} {[LIT_CHARS rev-parse]} {[LIT_CHARS HEAD] [LIT_OTHER ":"] [LIT_CHARS foo]})]})]) (= scope= flags=0 words=[] bindings=[('tag', {[ComSub (Com redirects=[(FilenameRedirectNode filename={[LIT_CHARS /dev/null]} "> 2)]{[LIT_CHARS git]} {[LIT_CHARS rev-parse]} {[LIT_CHARS signed-tag]})]})]) (Com {[LIT_CHARS get_tag_header]} {[LIT_CHARS tree-signed-tag]} {[VarSub tree]} {[LIT_CHARS tree]} {[VarSub time]} < (FilenameRedirectNode filename={[LIT_CHARS expect]} "> 1), > ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "A message for a tree"]]} < (FilenameRedirectNode filename={[LIT_CHARS expect]} >"> 1), > ) (Com {[LIT_CHARS echo]} {[SQ ]} < (FilenameRedirectNode filename={[LIT_CHARS expect]} >"> 1), > ) (Com {[LIT_CHARS test_expect_success]} {[LIT_CHARS GPG]} {[SQ ]} {[SQ actual &&\n"> ]}) (Com {[LIT_CHARS get_tag_header]} {[LIT_CHARS blob-signed-tag]} {[VarSub blob]} {[LIT_CHARS blob]} {[VarSub time]} < (FilenameRedirectNode filename={[LIT_CHARS expect]} "> 1), > ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "A message for a blob"]]} < (FilenameRedirectNode filename={[LIT_CHARS expect]} >"> 1), > ) (Com {[LIT_CHARS echo]} {[SQ ]} < (FilenameRedirectNode filename={[LIT_CHARS expect]} >"> 1), > ) (Com {[LIT_CHARS test_expect_success]} {[LIT_CHARS GPG]} {[SQ ]} {[SQ actual &&\n"> ]}) (Com {[LIT_CHARS get_tag_header]} {[LIT_CHARS tag-signed-tag]} {[VarSub tag]} {[LIT_CHARS tag]} {[VarSub time]} < (FilenameRedirectNode filename={[LIT_CHARS expect]} "> 1), > ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "A message for another tag"]]} < (FilenameRedirectNode filename={[LIT_CHARS expect]} >"> 1), > ) (Com {[LIT_CHARS echo]} {[SQ ]} < (FilenameRedirectNode filename={[LIT_CHARS expect]} >"> 1), > ) (Com {[LIT_CHARS test_expect_success]} {[LIT_CHARS GPG]} {[SQ ]} {[SQ actual &&\n"> ]}) (Com {[LIT_CHARS get_tag_header]} {[LIT_CHARS rfc1991-signed-tag]} {[VarSub commit]} {[LIT_CHARS commit]} {[VarSub time]} < (FilenameRedirectNode filename={[LIT_CHARS expect]} "> 1), > ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "RFC1991 signed tag"]]} < (FilenameRedirectNode filename={[LIT_CHARS expect]} >"> 1), > ) (Com {[LIT_CHARS echo]} {[SQ ]} < (FilenameRedirectNode filename={[LIT_CHARS expect]} >"> 1), > ) (Com {[LIT_CHARS test_expect_success]} {[LIT_CHARS GPG] [LIT_COMMA ","] [LIT_CHARS RFC1991]} {[SQ ]} {[SQ gpghome/gpg.conf &&\n"> actual &&\n"> ]}) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS fakeeditor]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=False body_word={[LIT_CHARS "#!/bin/sh\n"] [LIT_CHARS "cp \"$1\" actual\n"]} 0), > ) (Com {[LIT_CHARS chmod]} {[LIT_OTHER "+"] [LIT_CHARS x]} {[LIT_CHARS fakeeditor]}) (Com {[LIT_CHARS test_expect_success]} {[LIT_CHARS GPG] [LIT_COMMA ","] [LIT_CHARS RFC1991]} {[SQ ]} {[SQ gpghome/gpg.conf &&\n"> expect &&\n"> ]}) (Com {[LIT_CHARS test_expect_success]} {[LIT_CHARS GPG] [LIT_COMMA ","] [LIT_CHARS RFC1991]} {[SQ ]} {[SQ gpghome/gpg.conf &&\n"> ]}) (Com {[LIT_CHARS test_expect_success]} {[LIT_CHARS GPG] [LIT_COMMA ","] [LIT_CHARS RFC1991]} {[SQ ]} {[SQ gpghome/gpg.conf &&\n"> expect &&\n"> actual &&\n"> actual &&\n"> actual &&\n"> ]}) (Com {[LIT_CHARS rm]} {[LIT_CHARS -f]} {[LIT_CHARS gpghome/gpg.conf]}) (Com {[LIT_CHARS test_expect_success]} {[LIT_CHARS GPG] [LIT_COMMA ","] [LIT_CHARS RFC1991]} {[SQ ]} {[SQ ]}) (Com {[LIT_CHARS test_expect_success]} {[LIT_CHARS GPG] [LIT_COMMA ","] [LIT_CHARS RFC1991]} {[SQ ]} {[SQ expect &&\n"> actual &&\n"> actual &&\n"> actual &&\n"> ]}) (Com {[LIT_CHARS test_expect_success]} {[LIT_CHARS GPG] [LIT_COMMA ","] [LIT_CHARS RFC1991]} {[SQ ]} {[SQ expect &&\n"> ]}) (Com {[LIT_CHARS git]} {[LIT_CHARS config]} {[LIT_CHARS user.signingkey]} {[LIT_CHARS BobTheMouse]}) (Com {[LIT_CHARS test_expect_success]} {[LIT_CHARS GPG]} {[SQ ]} {[SQ ]}) (Com {[LIT_CHARS git]} {[LIT_CHARS config]} {[LIT_CHARS --unset]} {[LIT_CHARS user.signingkey]}) (Com {[LIT_CHARS test_expect_success]} {[LIT_CHARS GPG]} {[SQ ]} {[SQ ]}) (Com {[LIT_CHARS rm]} {[LIT_CHARS -rf]} {[LIT_CHARS gpghome]}) (Com {[LIT_CHARS test_expect_success]} {[LIT_CHARS GPG]} {[SQ ]} {[SQ ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ actual)\n">]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ first.expect &&\n"> first.actual &&\n"> ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ rest.expect &&\n"> rest.actual &&\n"> ]}) (Com {[LIT_CHARS get_tag_header]} {[LIT_CHARS reuse]} {[VarSub commit]} {[LIT_CHARS commit]} {[VarSub time]} < (FilenameRedirectNode filename={[LIT_CHARS expect]} "> 1), > ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "An annotation to be reused"]]} < (FilenameRedirectNode filename={[LIT_CHARS expect]} >"> 1), > ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ actual &&\n"> ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ msgfile-5 &&\n"> subdir/msgfile-5 &&\n"> ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ subdir/msgfile-6 &&\n"> ]}) (= scope= flags=0 words=[] bindings=[('hash1', {[ComSub (Com {[LIT_CHARS git]} {[LIT_CHARS rev-parse]} {[LIT_CHARS HEAD]})]})]) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ foo &&\n"> ]}) (= scope= flags=0 words=[] bindings=[('hash2', {[ComSub (Com {[LIT_CHARS git]} {[LIT_CHARS rev-parse]} {[LIT_CHARS HEAD]})]})]) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ foo &&\n"> ]}) (= scope= flags=0 words=[] bindings=[('hash3', {[ComSub (Com {[LIT_CHARS git]} {[LIT_CHARS rev-parse]} {[LIT_CHARS HEAD]})]})]) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS expected]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "v0.2.1\n"][LIT_CHARS "v1.0\n"][LIT_CHARS "v1.0.1\n"][LIT_CHARS "v1.1.3\n"][LIT_CHARS "v2.0\n"]]} 0), > ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[DQ [LIT_CHARS "\n"][LIT_CHARS "\tgit tag -l --contains "][VarSub hash1][LIT_CHARS " v* >actual &&\n"][LIT_CHARS "\ttest_cmp expected actual\n"]]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[DQ [LIT_CHARS "\n"][LIT_CHARS "\tgit tag -l --contains v1.0 v* >actual &&\n"][LIT_CHARS "\ttest_cmp expected actual\n"]]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[DQ [LIT_CHARS "\n"][LIT_CHARS "\tgit tag -l --contains HEAD~2 v* >actual &&\n"][LIT_CHARS "\ttest_cmp expected actual\n"]]}) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS expected]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "v2.0\n"]]} 0), > ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[DQ [LIT_CHARS "\n"][LIT_CHARS "\tgit tag -l --contains "][VarSub hash2][LIT_CHARS " v* >actual &&\n"][LIT_CHARS "\ttest_cmp expected actual\n"]]}) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS expected]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ ]} 0), > ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[DQ [LIT_CHARS "\n"][LIT_CHARS "\tgit tag -l --contains "][VarSub hash3][LIT_CHARS " v* >actual &&\n"][LIT_CHARS "\ttest_cmp expected actual\n"]]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ foo &&\n"> ]}) (= scope= flags=0 words=[] bindings=[('hash4', {[ComSub (Com {[LIT_CHARS git]} {[LIT_CHARS rev-parse]} {[LIT_CHARS HEAD]})]})]) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS expected]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "v3.0\n"]]} 0), > ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[DQ [LIT_CHARS "\n"][LIT_CHARS "\tgit tag -l --contains "][VarSub hash4][LIT_CHARS " v* >actual &&\n"][LIT_CHARS "\ttest_cmp expected actual\n"]]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ]}) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS expected]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "v4.0\n"]]} 0), > ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[DQ [LIT_CHARS "\n"][LIT_CHARS "\tgit tag -l --contains "][VarSub hash3][LIT_CHARS " v* >actual &&\n"][LIT_CHARS "\ttest_cmp expected actual\n"]]}) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS expected]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "v0.2.1\n"][LIT_CHARS "v1.0\n"][LIT_CHARS "v1.0.1\n"][LIT_CHARS "v1.1.3\n"][LIT_CHARS "v2.0\n"][LIT_CHARS "v3.0\n"][LIT_CHARS "v4.0\n"]]} 0), > ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[DQ [LIT_CHARS "\n"][LIT_CHARS "\tgit tag -l --contains "][VarSub hash1][LIT_CHARS " v* >actual &&\n"][LIT_CHARS "\ttest_cmp expected actual\n"]]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ expect &&\n"> actual &&\n"> ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ expect &&\n"> actual &&\n"> ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ expect <<-\\EOF &&\n"> actual &&\n"> ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ expect <<-\\EOF &&\n"> actual &&\n"> ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ actual &&\n"> expect <<-\\EOF &&\n"> ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ actual &&\n"> expect <<-\\EOF &&\n"> ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ actual &&\n"> expect <<-\\EOF &&\n"> ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ actual &&\n"> expect <<-\\EOF &&\n"> ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ actual &&\n"> expect <<-\\EOF &&\n"> ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ actual &&\n"> expect <<-\\EOF &&\n"> ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ actual\n">]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ actual &&\n"> expect <<-\\EOF &&\n"> ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ actual &&\n"> expect <<-\\EOF &&\n"> ]}) (FunctionDef run_with_limited_stack [] (Subshell (AndOr OP_AND_IF (Com {[LIT_CHARS ulimit]} {[LIT_CHARS -s]} {[LIT_CHARS 128]}) (Com {[DQ [VarSub @]]}) ) ) ) (Com {[LIT_CHARS test_lazy_prereq]} {[LIT_CHARS ULIMIT_STACK_SIZE]} {[SQ ]}) (Com {[LIT_CHARS test_expect_success]} {[LIT_CHARS ULIMIT_STACK_SIZE]} {[SQ ]} {[SQ expect &&\n"> $((1000000000 + $i * 100)) +0200\n"> actual &&\n"> ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ expect <<-\\EOF &&\n"> actual &&\n"> ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ expect <<-\\EOF &&\n"> actual &&\n"> ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ expect <<-\\EOF &&\n"> actual &&\n"> ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ expect &&\n"> actual &&\n"> ]}) (Com {[LIT_CHARS test_done]}) )