(List (= scope= flags=0 words=[] bindings=[('test_description', {[SQ ]})]) (Com {[LIT_CHARS .]} {[LIT_CHARS ./test-lib.sh]} ) (If (Pipeline! (Com {[LIT_CHARS test_have_prereq]} {[LIT_CHARS PERL]} ) ) (List (= scope= flags=0 words=[] bindings=[('skip_all', {[SQ ]})]) (Com {[LIT_CHARS test_done]} ) ) ) (Com {[LIT_CHARS cvs]} < (FilenameRedirectNode filename={[LIT_CHARS /dev/null]} "> 1), (DescriptorRedirectNode target={[LIT_CHARS 1]} &"> 2), > ) (If (Com {[LIT_CHARS test]} {[VarSub ?]} {[LIT_CHARS -ne]} {[LIT_CHARS 1]} ) (List (= scope= flags=0 words=[] bindings=[('skip_all', {[SQ ]})]) (Com {[LIT_CHARS test_done]} ) ) ) (AndOr OP_OR_IF (Com {[DQ [VarSub PERL_PATH]]} {[LIT_CHARS -e]} {[SQ ]} < (FilenameRedirectNode filename={[LIT_CHARS /dev/null]} "> 1), (DescriptorRedirectNode target={[LIT_CHARS 1]} &"> 2), > ) (List (= scope= flags=0 words=[] bindings=[('skip_all', {[SQ ]})]) (Com {[LIT_CHARS test_done]} ) ) ) (Com {[LIT_CHARS unset]} {[LIT_CHARS GIT_DIR]} {[LIT_CHARS GIT_CONFIG]} ) (= scope= flags=0 words=[] bindings=[('WORKDIR', {[ComSub (Com {[LIT_CHARS pwd]})]})]) (= scope= flags=0 words=[] bindings=[('SERVERDIR', {[ComSub (Com {[LIT_CHARS pwd]})] [LIT_CHARS /gitcvs.git]})]) (= scope= flags=0 words=[] bindings=[('git_config', {[DQ [VarSub SERVERDIR][LIT_CHARS /config]]})]) (= scope= flags=0 words=[] bindings=[('CVSROOT', {[DQ [LIT_CHARS ":fork:"][VarSub SERVERDIR]]})]) (= scope= flags=0 words=[] bindings=[('CVSWORK', {[DQ [ComSub (Com {[LIT_CHARS pwd]})][LIT_CHARS /cvswork]]})]) (= scope= flags=0 words=[] bindings=[('CVS_SERVER', {[LIT_CHARS git-cvsserver]})]) (= scope= flags=1 words=[{[LIT_CHARS CVSROOT]}, {[LIT_CHARS CVS_SERVER]}] bindings=[]) (Com {[LIT_CHARS rm]} {[LIT_CHARS -rf]} {[DQ [VarSub CVSWORK]]} {[DQ [VarSub SERVERDIR]]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ empty &&\n"> /dev/null 2>&1 &&\n"> \"$SERVERDIR/auth.db\"\n">]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ]} ) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS request-anonymous]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "BEGIN AUTH REQUEST\n"][VarSub SERVERDIR][LIT_CHARS "\n"][LIT_CHARS "anonymous\n"][LIT_CHARS "\n"][LIT_CHARS "END AUTH REQUEST\n"]]} 0), > ) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS request-git]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "BEGIN AUTH REQUEST\n"][VarSub SERVERDIR][LIT_CHARS "\n"][LIT_CHARS "git\n"][LIT_CHARS "\n"][LIT_CHARS "END AUTH REQUEST\n"]]} 0), > ) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS login-anonymous]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "BEGIN VERIFICATION REQUEST\n"][VarSub SERVERDIR][LIT_CHARS "\n"][LIT_CHARS "anonymous\n"][LIT_CHARS "\n"][LIT_CHARS "END VERIFICATION REQUEST\n"]]} 0), > ) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS login-git]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "BEGIN VERIFICATION REQUEST\n"][VarSub SERVERDIR][LIT_CHARS "\n"][LIT_CHARS "git\n"][LIT_CHARS "\n"][LIT_CHARS "END VERIFICATION REQUEST\n"]]} 0), > ) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS login-git-ok]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "BEGIN VERIFICATION REQUEST\n"][VarSub SERVERDIR][LIT_CHARS "\n"][LIT_CHARS "cvsuser\n"][LIT_CHARS "Ah 0), > ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ log 2>&1 &&\n"> ]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ log 2>&1\n"> ]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ log 2>&1 &&\n"> ]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ log 2>&1 &&\n"> ]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ log 2>&1\n"> ]} ) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS request-relative]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "BEGIN AUTH REQUEST\n"][LIT_CHARS "gitcvs.git\n"][LIT_CHARS "anonymous\n"][LIT_CHARS "\n"][LIT_CHARS "END AUTH REQUEST\n"]]} 0), > ) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS request-conflict]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "BEGIN AUTH REQUEST\n"][VarSub SERVERDIR][LIT_CHARS "\n"][LIT_CHARS "anonymous\n"][LIT_CHARS "\n"][LIT_CHARS "END AUTH REQUEST\n"][LIT_CHARS "Root "][VarSub WORKDIR][LIT_CHARS "\n"]]} 0), > ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ log 2>&1\n"> ]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ log 2>&1 &&\n"> ]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ log 2>&1 &&\n"> ]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ log 2>&1\n">]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ log 2>&1 &&\n"> ]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ log 2>&1\n">]} ) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS request-base]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "BEGIN AUTH REQUEST\n"][LIT_CHARS "/gitcvs.git\n"][LIT_CHARS "anonymous\n"][LIT_CHARS "\n"][LIT_CHARS "END AUTH REQUEST\n"][LIT_CHARS "Root /gitcvs.git\n"]]} 0), > ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ log 2>&1 &&\n"> ]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ log 2>&1\n">]} ) (AndOr OP_OR_IF (Com {[LIT_CHARS git]} {[LIT_CHARS config]} {[LIT_CHARS --bool]} {[LIT_CHARS gitcvs.enabled]} {[LIT_CHARS false]} more_env=[('GIT_DIR', {[DQ [VarSub SERVERDIR]]})] ) (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]} ) ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ log 2>&1 &&\n"> ]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ log 2>&1 || false)">]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ log 2>&1 &&\n"> ]} ) (AndOr OP_OR_IF (Com {[LIT_CHARS git]} {[LIT_CHARS config]} {[LIT_CHARS --bool]} {[LIT_CHARS gitcvs.enabled]} {[LIT_CHARS true]} more_env=[('GIT_DIR', {[DQ [VarSub SERVERDIR]]})] ) (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]} ) ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ cvs.log 2>&1\n"> ]} ) (Com {[LIT_CHARS rm]} {[LIT_CHARS -fr]} {[LIT_CHARS cvswork2]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ cvs.log 2>&1 &&\n"> ]} ) (Com {[LIT_CHARS rm]} {[LIT_CHARS -fr]} {[LIT_CHARS cvswork2]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ cvs.log 2>&1\n"> ]} ) (Com {[LIT_CHARS rm]} {[LIT_CHARS -fr]} {[LIT_CHARS cvswork2]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ cvs.log 2>&1 &&\n"> ]} ) (Com {[LIT_CHARS rm]} {[LIT_CHARS -fr]} {[LIT_CHARS cvswork2]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ cvs.log 2>&1 &&\n"> ]} ) (Com {[LIT_CHARS rm]} {[LIT_CHARS -fr]} {[DQ [VarSub SERVERDIR]]} ) (AndOr OP_AND_IF (Com {[LIT_CHARS cd]} {[DQ [VarSub WORKDIR]]} ) (AndOr OP_AND_IF (Com {[LIT_CHARS git]} {[LIT_CHARS clone]} {[LIT_CHARS -q]} {[LIT_CHARS --bare]} {[DQ [VarSub WORKDIR][LIT_CHARS /.git]]} {[DQ [VarSub SERVERDIR]]} < (FilenameRedirectNode filename={[LIT_CHARS /dev/null]} "> 1), (DescriptorRedirectNode target={[LIT_CHARS 1]} &"> 2), > ) (AndOr OP_AND_IF (Com {[LIT_CHARS git]} {[LIT_CHARS config]} {[LIT_CHARS --bool]} {[LIT_CHARS gitcvs.enabled]} {[LIT_CHARS true]} more_env=[('GIT_DIR', {[DQ [VarSub SERVERDIR]]})] ) (AndOr OP_OR_IF (Com {[LIT_CHARS git]} {[LIT_CHARS config]} {[LIT_CHARS gitcvs.logfile]} {[DQ [VarSub SERVERDIR][LIT_CHARS /gitcvs.log]]} more_env=[('GIT_DIR', {[DQ [VarSub SERVERDIR]]})] ) (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]} ) ) ) ) ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ testfile1 &&\n"> /dev/null &&\n"> ]} ) (Com {[LIT_CHARS cd]} {[DQ [VarSub WORKDIR]]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ >testfile1 &&\n"> /dev/null &&\n"> ]} ) (Com {[LIT_CHARS cd]} {[DQ [VarSub WORKDIR]]} ) (Com {[LIT_CHARS test_expect_failure]} {[DQ [LIT_CHARS "cvs update w/o -d doesn't create subdir (TODO)"]]} {[SQ test/empty &&\n"> /dev/null &&\n"> ]} ) (Com {[LIT_CHARS cd]} {[DQ [VarSub WORKDIR]]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ \"$dir/file_in_$(echo $dir|sed -e \"s#/# #g\")\" &&\n"> /dev/null &&\n"> failure\n"> ]} ) (Com {[LIT_CHARS cd]} {[DQ [VarSub WORKDIR]]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ /dev/null &&\n"> ]} ) (Com {[LIT_CHARS cd]} {[DQ [VarSub WORKDIR]]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ testfile1 &&\n"> /dev/null &&\n"> ]} ) (Com {[LIT_CHARS cd]} {[DQ [VarSub WORKDIR]]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ expected &&\n"> >merge\n"> >expected\n"> >expected &&\n"> /dev/null &&\n"> merge.tmp &&\n"> >merge &&\n"> /dev/null &&\n"> ]} ) (Com {[LIT_CHARS cd]} {[DQ [VarSub WORKDIR]]} ) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS expected.C]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "<<<<<<< merge.mine\n"][LIT_CHARS "Line 0\n"][LIT_CHARS "=======\n"][LIT_CHARS "LINE 0\n"][LIT_CHARS ">>>>>>> merge.3\n"]]} 0), > ) (For i [{[LIT_CHARS 1]}, {[LIT_CHARS 2]}, {[LIT_CHARS 3]}, {[LIT_CHARS 4]}, {[LIT_CHARS 5]}, {[LIT_CHARS 6]}, {[LIT_CHARS 7]}, {[LIT_CHARS 8]}]) (Com {[LIT_CHARS echo]} {[LIT_CHARS Line]} {[VarSub i]} < (FilenameRedirectNode filename={[LIT_CHARS expected.C]} >"> 1), > ) ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ merge.tmp &&\n"> /dev/null &&\n"> ]} ) (Com {[LIT_CHARS cd]} {[DQ [VarSub WORKDIR]]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ]} ) (Com {[LIT_CHARS cd]} {[DQ [VarSub WORKDIR]]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ >merge &&\n"> /dev/null &&\n"> ]} ) (Com {[LIT_CHARS cd]} {[DQ [VarSub WORKDIR]]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ no-lf &&\n"> > no-lf &&\n"> /dev/null &&\n"> $i.out\n"> >failures 2>&1\n"> ]} ) (Com {[LIT_CHARS cd]} {[DQ [VarSub WORKDIR]]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ out &&\n"> ] [\ LIT_ESCAPED_CHAR "\\'"] [SQ ]} ) (Com {[LIT_CHARS cd]} {[DQ [VarSub WORKDIR]]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ status.dir/status.file &&\n"> status.file &&\n"> /dev/null &&\n"> ../out &&\n"> ]} ) (Com {[LIT_CHARS cd]} {[DQ [VarSub WORKDIR]]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ../out &&\n"> ]} ) (Com {[LIT_CHARS cd]} {[DQ [VarSub WORKDIR]]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ../out &&\n"> ]} ) (Com {[LIT_CHARS cd]} {[DQ [VarSub WORKDIR]]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ out &&\n"> ]} ) (Com {[LIT_CHARS cd]} {[DQ [VarSub WORKDIR]]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ../out &&\n"> ../actual &&\n"> ../expect &&\n"> ]} ) (Com {[LIT_CHARS test_done]} ) )