(CommandList children: [ (C {(.)} {(./test-lib.sh)}) (If arms: [ (if_arm cond: [(C {(test)} {(-n)} {(DQ ($ VSub_Name "$NO_SVN_TESTS"))})] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:skip_all) op: Equal rhs: {(SQ <"skipping git svn tests, NO_SVN_TESTS defined">)} spids: [18] ) ] spids: [18] ) (C {(test_done)}) ] spids: [-1 15] ) ] spids: [-1 26] ) (If arms: [ (if_arm cond: [ (Sentence child: (Pipeline children:[(C {(test_have_prereq)} {(PERL)})] negated:True) terminator: <Op_Semi ";"> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:skip_all) op: Equal rhs: {(SQ <"skipping git svn tests, perl not available">)} spids: [40] ) ] spids: [40] ) (C {(test_done)}) ] spids: [-1 37] ) ] spids: [-1 48] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:GIT_DIR) op: Equal rhs: {($ VSub_Name "$PWD") (/.git)} spids: [51] ) ] spids: [51] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:GIT_SVN_DIR) op: Equal rhs: {($ VSub_Name "$GIT_DIR") (/svn/refs/remotes/git-svn)} spids: [55] ) ] spids: [55] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:SVN_TREE) op: Equal rhs: {($ VSub_Name "$GIT_SVN_DIR") (/svn-tree)} spids: [59] ) ] spids: [59] ) (SimpleCommand words: [{(svn)}] redirects: [ (Redir op_id:Redir_Great fd:-1 arg_word:{(/dev/null)} spids:[66]) (Redir op_id:Redir_GreatAnd fd:2 arg_word:{(1)} spids:[69]) ] ) (If arms: [ (if_arm cond: [(C {(test)} {($ VSub_QMark "$?")} {(-ne)} {(1)})] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:skip_all) op: Equal rhs: {(SQ <"skipping git svn tests, svn not found">)} spids: [85] ) ] spids: [85] ) (C {(test_done)}) ] spids: [-1 82] ) ] spids: [-1 93] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:svnrepo) op: Equal rhs: {($ VSub_Name "$PWD") (/svnrepo)} spids: [96] ) ] spids: [96] ) (C {(export)} {(svnrepo)}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:svnconf) op: Equal rhs: {($ VSub_Name "$PWD") (/svnconf)} spids: [104] ) ] spids: [104] ) (C {(export)} {(svnconf)}) (SimpleCommand words: [ {(perl)} {(-w)} {(-e)} { (DQ ("\n") ("use SVN::Core;\n") ("use SVN::Repos;\n") (EscapedLiteralPart token:<Lit_EscapedChar "\\$">) ("SVN::Core::VERSION gt '1.1.0' or exit(42);\n") ("system(qw/svnadmin create --fs-type fsfs/, ") (EscapedLiteralPart token:<Lit_EscapedChar "\\$">) ("ENV{svnrepo}) == 0 or exit(41);\n") ) } ] redirects: [ (Redir op_id:Redir_GreatAnd fd:-1 arg_word:{(3)} spids:[130]) (Redir op_id:Redir_GreatAnd fd:2 arg_word:{(4)} spids:[133]) ] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:x) op:Equal rhs:{($ VSub_QMark "$?")} spids:[136])] spids: [136] ) (If arms: [ (if_arm cond: [(C {(test)} {($ VSub_Name "$x")} {(-ne)} {(0)})] action: [ (If arms: [ (if_arm cond: [ (Sentence child: (C {(test)} {($ VSub_Name "$x")} {(-eq)} {(42)}) terminator: <Op_Semi ";"> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:skip_all) op: Equal rhs: {(SQ <"Perl SVN libraries must be >= 1.1.0">)} spids: [166] ) ] spids: [166] ) ] spids: [-1 163] ) (if_arm cond: [ (Sentence child: (C {(test)} {($ VSub_Name "$x")} {(-eq)} {(41)}) terminator: <Op_Semi ";"> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:skip_all) op: Equal rhs: {(SQ <"svnadmin failed to create fsfs repository">)} spids: [186] ) ] spids: [186] ) ] spids: [172 183] ) ] else_action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:skip_all) op: Equal rhs: {(SQ <"Perl SVN libraries not found or unusable">)} spids: [195] ) ] spids: [195] ) ] spids: [192 201] ) (C {(test_done)}) ] spids: [-1 149] ) ] spids: [-1 206] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:rawsvnrepo) op: Equal rhs: {(DQ ($ VSub_Name "$svnrepo"))} spids: [209] ) ] spids: [209] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:svnrepo) op: Equal rhs: {(DQ ("file://") ($ VSub_Name "$svnrepo"))} spids: [214] ) ] spids: [214] ) (FuncDef name: poke body: (BraceGroup children: [(C {(test-chmtime)} {(Lit_Other "+") (1)} {(DQ ($ VSub_Number "$1"))})] spids: [225] ) spids: [221 224] ) (FuncDef name: svn_cmd body: (BraceGroup children: [ (AndOr children: [ (C {(Lit_Other "[")} {(-d)} {(DQ ($ VSub_Name "$svnconf"))} {(Lit_Other "]")}) (C {(mkdir)} {(DQ ($ VSub_Name "$svnconf"))}) ] op_id: Op_DPipe ) (Sentence child: (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:orig_svncmd) op: Equal rhs: {(DQ ($ VSub_Number "$1"))} spids: [276] ) ] spids: [276] ) terminator: <Op_Semi ";"> ) (C {(shift)}) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other "[")} {(-z)} {(DQ ($ VSub_Name "$orig_svncmd"))} {(Lit_Other "]")}) terminator: <Op_Semi ";"> ) ] action: [(C {(svn)}) (ControlFlow token:<ControlFlow_Return return>)] spids: [-1 298] ) ] spids: [-1 307] ) (C {(svn)} {(DQ ($ VSub_Name "$orig_svncmd"))} {(--config-dir)} {(DQ ($ VSub_Name "$svnconf"))} {(DQ ($ VSub_At "$@"))} ) ] spids: [254] ) spids: [249 253] ) (FuncDef name: maybe_start_httpd body: (BraceGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:loc) op: Equal rhs: { (BracedVarSub token: <VSub_Number 1> suffix_op: (StringUnary op_id:VTest_Hyphen arg_word:{(svn)}) spids: [338 342] ) } spids: [337] ) ] spids: [337] ) (C {(test_tristate)} {(GIT_SVN_TEST_HTTPD)}) (Case to_match: {($ VSub_Name "$GIT_SVN_TEST_HTTPD")} arms: [ (case_arm pat_list: [{(true)}] action: [ (C {(.)} {(DQ ($ VSub_Name "$TEST_DIRECTORY")) (/lib-httpd.sh)}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:LIB_HTTPD_SVN) op: Equal rhs: {(DQ ($ VSub_Name "$loc"))} spids: [370] ) ] spids: [370] ) (C {(start_httpd)}) ] spids: [358 359 379 -1] ) (case_arm pat_list: [{(Lit_Other "*")}] action: [ (FuncDef name: stop_httpd body: (BraceGroup children:[(C {(Lit_Other ":")} {(noop)})] spids:[391]) spids: [386 390] ) ] spids: [382 383 402 -1] ) ] spids: [351 355 405] ) ] spids: [334] ) spids: [329 333] ) (FuncDef name: convert_to_rev_db body: (BraceGroup children: [ (SimpleCommand words: [{(perl)} {(-w)} {(--)} {(-)} {(DQ ($ VSub_At "$@"))}] redirects: [ (HereDoc op_id: Redir_DLess fd: -1 body: {("use strict;\n") ("@ARGV == 2 or die \"usage: convert_to_rev_db <input> <output>\";\n") ("open my $wr, '+>', $ARGV[1] or die \"$!: couldn't open: $ARGV[1]\";\n") ("open my $rd, '<', $ARGV[0] or die \"$!: couldn't open: $ARGV[0]\";\n") ("my $size = (stat($rd))[7];\n") ("($size % 24) == 0 or die \"Inconsistent size: $size\";\n") ("while (sysread($rd, my $buf, 24) == 24) {\n") ("\tmy ($r, $c) = unpack('NH40', $buf);\n") ("\tmy $offset = $r * 41;\n") ("\tseek $wr, 0, 2 or die $!;\n") ("\tmy $pos = tell $wr;\n") ("\tif ($pos < $offset) {\n") ("\t\tfor (1 .. (($offset - $pos) / 41)) {\n") ("\t\t\tprint $wr (('0' x 40),\"\\n\") or die $!;\n") ("\t\t}\n") ("\t}\n") ("\tseek $wr, $offset, 0 or die $!;\n") ("\tprint $wr $c,\"\\n\" or die $!;\n") ("}\n") ("close $wr or die $!;\n") ("close $rd or die $!;\n") } do_expansion: False here_end: EOF was_filled: True spids: [430] ) ] ) ] spids: [415] ) spids: [410 414] ) (FuncDef name: require_svnserve body: (BraceGroup children: [ (If arms: [ (if_arm cond: [(C {(test)} {(-z)} {(DQ ($ VSub_Name "$SVNSERVE_PORT"))})] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:skip_all) op: Equal rhs: {(SQ <"skipping svnserve test. (set $SVNSERVE_PORT to enable)">)} spids: [459] ) ] spids: [459] ) (C {(test_done)}) ] spids: [-1 456] ) ] spids: [-1 468] ) ] spids: [442] ) spids: [437 441] ) (FuncDef name: start_svnserve body: (BraceGroup children: [ (Sentence child: (C {(svnserve)} {(--listen-port)} {($ VSub_Name "$SVNSERVE_PORT")} {(--root)} {(DQ ($ VSub_Name "$rawsvnrepo"))} {(--listen-once)} {(--listen-host)} {(127.0.0.1)} ) terminator: <Op_Amp "&"> ) ] spids: [478] ) spids: [473 477] ) (FuncDef name: prepare_a_utf8_locale body: (BraceGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:a_utf8_locale) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(locale)} {(-a)}) (C {(sed)} {(-n)} {(SQ <"/\\.[uU][tT][fF]-*8$/{\n"> <"\tp\n"> <"\tq\n"> <"}">)} ) ] negated: False ) ] ) left_token: <Left_CommandSub "$("> spids: [519 536] ) } spids: [518] ) ] spids: [518] ) (If arms: [ (if_arm cond: [(C {(test)} {(-n)} {(DQ ($ VSub_Name "$a_utf8_locale"))})] action: [(C {(test_set_prereq)} {(UTF8)})] spids: [-1 550] ) ] else_action: [(C {(say)} {(DQ ("# UTF-8 locale not available, some tests are skipped"))})] spids: [558 568] ) ] spids: [515] ) spids: [510 514] ) ] )