(List (= scope= flags=0 words=[] bindings=[('test_description', {[SQ ]})]) (Com {[LIT_CHARS .]} {[LIT_CHARS ./test-lib.sh]}) (FunctionDef check_start_tree [] (List (Com {[LIT_CHARS rm]} {[LIT_CHARS -f]} {[DQ [VarSub WORKDIR][LIT_CHARS /list.expected]]}) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "start "][VarSub 1]]} < (FilenameRedirectNode filename={[DQ [VarSub WORKDIR][LIT_CHARS /check.log]]} >"> 1), > ) ) ) (FunctionDef check_file [] (List (= scope= flags=0 words=[] bindings=[('sandbox', {[DQ [VarSub 1]]})]) (= scope= flags=0 words=[] bindings=[('file', {[DQ [VarSub 2]]})]) (= scope= flags=0 words=[] bindings=[('ver', {[DQ [VarSub 3]]})]) (Com {[LIT_CHARS git]} {[LIT_CHARS show]} {[DQ [VarSub ver][LIT_CHARS ":"][VarSub file]]} < (FilenameRedirectNode filename={[DQ [VarSub WORKDIR][LIT_CHARS /check.got]]} "> 1), (FilenameRedirectNode filename={[DQ [VarSub WORKDIR][LIT_CHARS /check.stderr]]} "> 2), > more_env=[('GIT_DIR', {[VarSub SERVERDIR]})] ) (Com {[LIT_CHARS test_cmp]} {[DQ [VarSub WORKDIR][LIT_CHARS /check.got]]} {[DQ [VarSub sandbox][LIT_CHARS /][VarSub file]]}) (= scope= flags=0 words=[] bindings=[('stat', {[VarSub ?]})]) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "check_file "][VarSub sandbox][LIT_CHARS " "][VarSub file][LIT_CHARS " "][VarSub ver][LIT_CHARS " : "][VarSub stat]]} < (FilenameRedirectNode filename={[DQ [VarSub WORKDIR][LIT_CHARS /check.log]]} >"> 1), > ) (Com {[LIT_CHARS echo]} {[DQ [VarSub file]]} < (FilenameRedirectNode filename={[DQ [VarSub WORKDIR][LIT_CHARS /list.expected]]} >"> 1), > ) (Com {[LIT_CHARS return]} {[VarSub stat]}) ) ) (FunctionDef check_end_tree [] (AndOr OP_AND_IF (= scope= flags=0 words=[] bindings=[('sandbox', {[DQ [VarSub 1]]})]) (AndOr OP_AND_IF (Com {[LIT_CHARS find]} {[DQ [VarSub sandbox]]} {[LIT_CHARS -name]} {[LIT_CHARS CVS]} {[LIT_CHARS -prune]} {[LIT_CHARS -o]} {[LIT_CHARS -type]} {[LIT_CHARS f]} {[LIT_CHARS -print]} < (FilenameRedirectNode filename={[DQ [VarSub WORKDIR][LIT_CHARS /list.actual]]} "> 1), > ) (AndOr OP_AND_IF (Com {[LIT_CHARS sort]} < (FilenameRedirectNode filename={[DQ [VarSub WORKDIR][LIT_CHARS /list.expected]]} 0), (FilenameRedirectNode filename={[LIT_CHARS expected]} "> 1), > ) (AndOr OP_AND_IF (Pipeline (Com {[LIT_CHARS sort]} < (FilenameRedirectNode filename={[DQ [VarSub WORKDIR][LIT_CHARS /list.actual]]} 0), > ) (Com {[LIT_CHARS sed]} {[LIT_CHARS -e]} {[DQ [LIT_CHARS "s%cvswork/%%"]]} < (FilenameRedirectNode filename={[LIT_CHARS actual]} "> 1), > ) ) (AndOr OP_AND_IF (Com {[LIT_CHARS test_cmp]} {[LIT_CHARS expected]} {[LIT_CHARS actual]}) (Com {[LIT_CHARS rm]} {[LIT_CHARS expected]} {[LIT_CHARS actual]}) ) ) ) ) ) ) (FunctionDef check_end_full_tree [] (AndOr OP_AND_IF (= scope= flags=0 words=[] bindings=[('sandbox', {[DQ [VarSub 1]]})]) (AndOr OP_AND_IF (Com {[LIT_CHARS sort]} < (FilenameRedirectNode filename={[DQ [VarSub WORKDIR][LIT_CHARS /list.expected]]} 0), (FilenameRedirectNode filename={[LIT_CHARS expected]} "> 1), > ) (AndOr OP_AND_IF (Pipeline (Com {[LIT_CHARS find]} {[DQ [VarSub sandbox]]} {[LIT_CHARS -name]} {[LIT_CHARS CVS]} {[LIT_CHARS -prune]} {[LIT_CHARS -o]} {[LIT_CHARS -type]} {[LIT_CHARS f]} {[LIT_CHARS -print]}) (Com {[LIT_CHARS sed]} {[LIT_CHARS -e]} {[DQ [LIT_CHARS "s%"][VarSub sandbox][LIT_CHARS "/%%"]]}) (Com {[LIT_CHARS sort]} < (FilenameRedirectNode filename={[LIT_CHARS act1]} "> 1), > ) ) (AndOr OP_AND_IF (Com {[LIT_CHARS test_cmp]} {[LIT_CHARS expected]} {[LIT_CHARS act1]}) (AndOr OP_AND_IF (Pipeline (Com {[LIT_CHARS git]} {[LIT_CHARS ls-tree]} {[LIT_CHARS --name-only]} {[LIT_CHARS -r]} {[DQ [VarSub 2]]}) (Com {[LIT_CHARS sort]} < (FilenameRedirectNode filename={[LIT_CHARS act2]} "> 1), > ) ) (AndOr OP_AND_IF (Com {[LIT_CHARS test_cmp]} {[LIT_CHARS expected]} {[LIT_CHARS act2]}) (Com {[LIT_CHARS rm]} {[LIT_CHARS expected]} {[LIT_CHARS act1]} {[LIT_CHARS act2]}) ) ) ) ) ) ) ) (FunctionDef check_diff [] (List (= scope= flags=0 words=[] bindings=[('diffFile', {[DQ [VarSub 1]]})]) (= scope= flags=0 words=[] bindings=[('vOld', {[DQ [VarSub 2]]})]) (= scope= flags=0 words=[] bindings=[('vNew', {[DQ [VarSub 3]]})]) (Com {[LIT_CHARS rm]} {[LIT_CHARS -rf]} {[LIT_CHARS diffSandbox]}) (AndOr OP_AND_IF (Com {[LIT_CHARS git]} {[LIT_CHARS clone]} {[LIT_CHARS -q]} {[LIT_CHARS -n]} {[LIT_CHARS .]} {[LIT_CHARS diffSandbox]}) (Subshell (AndOr OP_AND_IF (Com {[LIT_CHARS cd]} {[LIT_CHARS diffSandbox]}) (AndOr OP_AND_IF (Com {[LIT_CHARS git]} {[LIT_CHARS checkout]} {[DQ [VarSub vOld]]}) (AndOr OP_AND_IF (Com {[LIT_CHARS git]} {[LIT_CHARS apply]} {[LIT_CHARS -p0]} {[LIT_CHARS --index]} < (FilenameRedirectNode filename={[DQ [LIT_CHARS ../][VarSub diffFile]]} 0), > ) (Com {[LIT_CHARS git]} {[LIT_CHARS diff]} {[LIT_CHARS --exit-code]} {[DQ [VarSub vNew]]}) ) ) ) ) ) ) ) (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]}) ) ) (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]}) ) ) (AndOr OP_OR_IF (Com {[LIT_CHARS perl]} {[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', {[VarSub PWD]})]) (= scope= flags=0 words=[] bindings=[('SERVERDIR', {[VarSub 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 [VarSub 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 textfile.c &&\n"> t2 &&\n"> adir/afile &&\n"> >adir/afile &&\n"> >adir/afile &&\n"> >adir/afile &&\n"> >adir/a2file &&\n"> adir/bdir/bfile &&\n"> >adir/bdir/bfile &&\n"> adir/bdir/b2file &&\n"> /dev/null 2>&1 &&\n"> ]}) (Com {[LIT_CHARS rm]} {[LIT_CHARS -rf]} {[LIT_CHARS cvswork]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ cvs.log 2>&1 &&\n"> ]}) (Com {[LIT_CHARS rm]} {[LIT_CHARS -rf]} {[LIT_CHARS cvswork]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ cvs.log 2>&1 &&\n"> ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ cvs.log 2>&1 &&\n"> ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ adir/afileNEW &&\n"> adir/afile5 &&\n"> \"$WORKDIR/cvswork3edit.diff\"\n"> ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ t3 &&\n"> adir/afileNEW &&\n"> >adir/a3file &&\n"> >adir/bdir/bfile &&\n"> adir/bdir/b3file &&\n"> cdir/cfile &&\n"> ] [LIT_CHARS v1.2] [SQ ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ cvs.log 2>&1 &&\n"> ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ cvs.log 2>&1 &&\n"> ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ cvs.log 2>&1 &&\n"> ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ cvs.log 2>&1 &&\n"> ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ cvs.log 2>&1 &&\n"> ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ cvs.log 2>&1 &&\n"> ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ cvs.log 2>&1 &&\n"> ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ >textfile.c &&\n"> \"$WORKDIR/cvsEdit1.diff\" &&\n"> cvsEdit1.log 2>&1\n">]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ../cvsEdit2-empty.diff &&\n"> \"$WORKDIR/cvsEdit2-N.diff\" &&\n"> cvsEdit2.log 2>&1\n">]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ adir/bdir/bfileNEW &&\n"> bdir/b4file &&\n"> \"$WORKDIR/cvsEdit3.diff\" &&\n"> \"$WORKDIR/cvsEdit3-v1.2.diff\" &&\n"> \"$WORKDIR/cvsEdit3-v1.2-v1.diff\"\n"> cvs.log 2>&1\n">]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ \"check_diff_apply.out\" 2>&1\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 cvs.log 2>&1 &&\n"> ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ cvs.log 2>&1 &&\n"> ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ cvs.log 2>&1 &&\n"> ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ cvs.log 2>&1 &&\n"> ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ cvs.log 2>&1 &&\n"> ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ cvs.log 2>&1 &&\n"> ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ cvs.log 2>&1 &&\n"> ]}) (= scope= flags=0 words=[] bindings=[('v1hash', {[ComSub (Com {[LIT_CHARS git]} {[LIT_CHARS rev-parse]} {[LIT_CHARS v1]})]})]) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ cvs.log 2>&1 &&\n"> ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ cvsDiff.out 2>cvs.log &&\n"> ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ cvsDiff.out 2>cvs.log &&\n"> check_diff.out 2>&1\n">]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ cvsDiff.out 2>cvs.log &&\n"> check_diff.out 2>&1\n">]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ \"$WORKDIR/cvsDiff.out\" 2>cvs.log &&\n"> check_diff.out 2>&1\n">]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ \"$WORKDIR/cvsDiff.out\"\n"> cvs.log 2>&1 &&\n"> ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ cvs.log 2>&1 &&\n"> check_diff_apply.out 2>&1\n">]}) (Com {[LIT_CHARS test_done]}) )