(List (Com {[LIT_CHARS .]} {[LIT_CHARS ./test-lib.sh]}) (If (Com {[LIT_CHARS test]} {[LIT_CHARS -n]} {[DQ [VarSub NO_SVN_TESTS]]}) (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]}) ) ) (= scope= flags=0 words=[] bindings=[('GIT_DIR', {[VarSub PWD] [LIT_CHARS /.git]})]) (= scope= flags=0 words=[] bindings=[('GIT_SVN_DIR', {[VarSub GIT_DIR] [LIT_CHARS /svn/refs/remotes/git-svn]})]) (= scope= flags=0 words=[] bindings=[('SVN_TREE', {[VarSub GIT_SVN_DIR] [LIT_CHARS /svn-tree]})]) (Com {[LIT_CHARS svn]} < (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]}) ) ) (= scope= flags=0 words=[] bindings=[('svnrepo', {[VarSub PWD] [LIT_CHARS /svnrepo]})]) (= scope= flags=1 words=[{[LIT_CHARS svnrepo]}] bindings=[]) (= scope= flags=0 words=[] bindings=[('svnconf', {[VarSub PWD] [LIT_CHARS /svnconf]})]) (= scope= flags=1 words=[{[LIT_CHARS svnconf]}] bindings=[]) (Com {[LIT_CHARS perl]} {[LIT_CHARS -w]} {[LIT_CHARS -e]} {[DQ [LIT_CHARS "\n"][LIT_CHARS "use SVN::Core;\n"][LIT_CHARS "use SVN::Repos;\n"][\ LIT_ESCAPED_CHAR "\\$"][LIT_CHARS "SVN::Core::VERSION gt '1.1.0' or exit(42);\n"][LIT_CHARS "system(qw/svnadmin create --fs-type fsfs/, "][\ LIT_ESCAPED_CHAR "\\$"][LIT_CHARS "ENV{svnrepo}) == 0 or exit(41);\n"]]} < (DescriptorRedirectNode target={[LIT_CHARS 3]} &"> 1), (DescriptorRedirectNode target={[LIT_CHARS 4]} &"> 2), > ) (= scope= flags=0 words=[] bindings=[('x', {[VarSub ?]})]) (If (Com {[LIT_CHARS test]} {[VarSub x]} {[LIT_CHARS -ne]} {[LIT_CHARS 0]}) (List (If (Com {[LIT_CHARS test]} {[VarSub x]} {[LIT_CHARS -eq]} {[LIT_CHARS 42]}) (= scope= flags=0 words=[] bindings=[('skip_all', {[SQ = 1.1.0">]})]) (Com {[LIT_CHARS test]} {[VarSub x]} {[LIT_CHARS -eq]} {[LIT_CHARS 41]}) (= scope= flags=0 words=[] bindings=[('skip_all', {[SQ ]})]) (ElseTrue) (= scope= flags=0 words=[] bindings=[('skip_all', {[SQ ]})]) ) (Com {[LIT_CHARS test_done]}) ) ) (= scope= flags=0 words=[] bindings=[('rawsvnrepo', {[DQ [VarSub svnrepo]]})]) (= scope= flags=0 words=[] bindings=[('svnrepo', {[DQ [LIT_CHARS "file://"][VarSub svnrepo]]})]) (FunctionDef poke [] (Com {[LIT_CHARS test-chmtime]} {[LIT_OTHER "+"] [LIT_CHARS 1]} {[DQ [VarSub 1]]}) ) (FunctionDef svn_cmd [] (List (AndOr OP_OR_IF (Com {[LIT_OTHER "["]} {[LIT_CHARS -d]} {[DQ [VarSub svnconf]]} {[LIT_OTHER "]"]}) (Com {[LIT_CHARS mkdir]} {[DQ [VarSub svnconf]]}) ) (= scope= flags=0 words=[] bindings=[('orig_svncmd', {[DQ [VarSub 1]]})]) (Com {[LIT_CHARS shift]}) (If (Com {[LIT_OTHER "["]} {[LIT_CHARS -z]} {[DQ [VarSub orig_svncmd]]} {[LIT_OTHER "]"]}) (List (Com {[LIT_CHARS svn]}) (Com {[LIT_CHARS return]}) ) ) (Com {[LIT_CHARS svn]} {[DQ [VarSub orig_svncmd]]} {[LIT_CHARS --config-dir]} {[DQ [VarSub svnconf]]} {[DQ [VarSub @]]}) ) ) (FunctionDef maybe_start_httpd [] (List (= scope= flags=0 words=[] bindings=[('loc', {[VarSub 1 test_op=VS_TEST_HYPHEN {[LIT_CHARS svn]}]})]) (Com {[LIT_CHARS test_tristate]} {[LIT_CHARS GIT_SVN_TEST_HTTPD]}) (Case to_match={[VarSub GIT_SVN_TEST_HTTPD]}, pat_word_list=[[{[LIT_CHARS true]}], [{[LIT_OTHER "*"]}]] (List (Com {[LIT_CHARS .]} {[DQ [VarSub TEST_DIRECTORY]] [LIT_CHARS /lib-httpd.sh]}) (= scope= flags=0 words=[] bindings=[('LIB_HTTPD_SVN', {[DQ [VarSub loc]]})]) (Com {[LIT_CHARS start_httpd]}) ) (FunctionDef stop_httpd [] (Com {[LIT_OTHER ":"]} {[LIT_CHARS noop]}) ) ) ) ) (FunctionDef convert_to_rev_db [] (Com {[LIT_CHARS perl]} {[LIT_CHARS -w]} {[LIT_CHARS --]} {[LIT_CHARS -]} {[DQ [VarSub @]]} < (HereDocRedirectNode here_end='EOF' do_expansion=False body_word={[LIT_CHARS "use strict;\n"] [LIT_CHARS "@ARGV == 2 or die \"usage: convert_to_rev_db \";\n"] [LIT_CHARS "open my $wr, '+>', $ARGV[1] or die \"$!: couldn't open: $ARGV[1]\";\n"] [LIT_CHARS "open my $rd, '<', $ARGV[0] or die \"$!: couldn't open: $ARGV[0]\";\n"] [LIT_CHARS "my $size = (stat($rd))[7];\n"] [LIT_CHARS "($size % 24) == 0 or die \"Inconsistent size: $size\";\n"] [LIT_CHARS "while (sysread($rd, my $buf, 24) == 24) {\n"] [LIT_CHARS "\tmy ($r, $c) = unpack('NH40', $buf);\n"] [LIT_CHARS "\tmy $offset = $r * 41;\n"] [LIT_CHARS "\tseek $wr, 0, 2 or die $!;\n"] [LIT_CHARS "\tmy $pos = tell $wr;\n"] [LIT_CHARS "\tif ($pos < $offset) {\n"] [LIT_CHARS "\t\tfor (1 .. (($offset - $pos) / 41)) {\n"] [LIT_CHARS "\t\t\tprint $wr (('0' x 40),\"\\n\") or die $!;\n"] [LIT_CHARS "\t\t}\n"] [LIT_CHARS "\t}\n"] [LIT_CHARS "\tseek $wr, $offset, 0 or die $!;\n"] [LIT_CHARS "\tprint $wr $c,\"\\n\" or die $!;\n"] [LIT_CHARS "}\n"] [LIT_CHARS "close $wr or die $!;\n"] [LIT_CHARS "close $rd or die $!;\n"]} 0), > ) ) (FunctionDef require_svnserve [] (If (Com {[LIT_CHARS test]} {[LIT_CHARS -z]} {[DQ [VarSub SVNSERVE_PORT]]}) (List (= scope= flags=0 words=[] bindings=[('skip_all', {[SQ ]})]) (Com {[LIT_CHARS test_done]}) ) ) ) (FunctionDef start_svnserve [] (Fork (Com {[LIT_CHARS svnserve]} {[LIT_CHARS --listen-port]} {[VarSub SVNSERVE_PORT]} {[LIT_CHARS --root]} {[DQ [VarSub rawsvnrepo]]} {[LIT_CHARS --listen-once]} {[LIT_CHARS --listen-host]} {[LIT_CHARS 127.0.0.1]}) ) ) (FunctionDef prepare_a_utf8_locale [] (List (= scope= flags=0 words=[] bindings=[('a_utf8_locale', {[ComSub (Pipeline (Com {[LIT_CHARS locale]} {[LIT_CHARS -a]}) (Com {[LIT_CHARS sed]} {[LIT_CHARS -n]} {[SQ ]}) )]})]) (If (Com {[LIT_CHARS test]} {[LIT_CHARS -n]} {[DQ [VarSub a_utf8_locale]]}) (Com {[LIT_CHARS test_set_prereq]} {[LIT_CHARS UTF8]}) (ElseTrue) (Com {[LIT_CHARS say]} {[DQ [LIT_CHARS "# UTF-8 locale not available, some tests are skipped"]]}) ) ) ) )