(CommandList children: [ (Case to_match: {(DQ ($ VSub_Name "$GIT_TEST_TEE_STARTED") (", ") ($ VSub_Star "$*") (" "))} arms: [ (case_arm pat_list: [{(KW_Done done) (Lit_Comma ",") (Lit_Other "*")}] spids: [72 75 82 -1] ) (case_arm pat_list: [ {(Lit_Other "*") (SQ <" --tee ">) (Lit_Other "*")} {(Lit_Other "*") (SQ <" --va">) (Lit_Other "*")} ] action: [ (C {(mkdir)} {(-p)} {(test-results)}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:BASE) op: Equal rhs: {(test-results/) (CommandSubPart command_list: (CommandList children: [(C {(basename)} {(DQ ($ VSub_Number "$0"))} {(.sh)})] ) left_token: <Left_CommandSub "$("> spids: [107 115] ) } spids: [105] ) ] spids: [105] ) (Pipeline children: [ (Subshell child: (CommandList children: [ (Sentence child: (SimpleCommand words: [ { (BracedVarSub token: <VSub_Name SHELL> suffix_op: (StringUnary op_id:VTest_Hyphen arg_word:{(sh)}) spids: [122 126] ) } {(DQ ($ VSub_Number "$0"))} {(DQ ($ VSub_At "$@"))} ] redirects: [ (Redir op_id: Redir_GreatAnd fd: 2 arg_word: {(1)} spids: [136] ) ] more_env: [ (env_pair name: GIT_TEST_TEE_STARTED val: {(KW_Done done)} spids: [119] ) ] ) terminator: <Op_Semi ";"> ) (SimpleCommand words: [{(echo)} {($ VSub_QMark "$?")}] redirects: [ (Redir op_id: Redir_Great fd: -1 arg_word: {($ VSub_Name "$BASE") (.exit)} spids: [145] ) ] ) ] ) spids: [118 149] ) (C {(tee)} {($ VSub_Name "$BASE") (.out)}) ] negated: False ) (C {(test)} { (DQ (CommandSubPart command_list: (CommandList children: [(C {(cat)} {($ VSub_Name "$BASE") (.exit)})] ) left_token: <Left_CommandSub "$("> spids: [162 167] ) ) } {(Lit_Other "=")} {(0)} ) (C {(exit)}) ] spids: [84 95 178 -1] ) ] spids: [61 70 180] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:TEST_DIRECTORY) op: Equal rhs: { (CommandSubPart command_list: (CommandList children:[(C {(pwd)})]) left_token: <Left_CommandSub "$("> spids: [184 186] ) (/..) } spids: [183] ) ] spids: [183] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:TEST_OUTPUT_DIRECTORY) op: Equal rhs: { (CommandSubPart command_list: (CommandList children:[(C {(pwd)})]) left_token: <Left_CommandSub "$("> spids: [190 192] ) } spids: [189] ) ] spids: [189] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(test)} {(-z)} {(DQ ($ VSub_Name "$GIT_TEST_INSTALLED"))}) terminator: <Op_Semi ";"> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:perf_results_prefix) op: Equal rhs: {(SQ )} spids: [208] ) ] spids: [208] ) ] spids: [-1 205] ) ] else_action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:perf_results_prefix) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(printf)} {(DQ ("%s"))} { (DQ (BracedVarSub token: <VSub_Name GIT_TEST_INSTALLED> suffix_op: (StringUnary op_id: VOp1_Percent arg_word: {(Lit_Slash /) (bin-wrappers)} ) spids: [222 227] ) ) } ) (C {(tr)} {(-c)} {(DQ ("[a-zA-Z0-9]"))} {(DQ ("[_*]"))}) ] negated: False ) ] ) left_token: <Left_CommandSub "$("> spids: [214 243] ) (DQ (.)) } spids: [213] ) ] spids: [213] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:GIT_TEST_INSTALLED) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (AndOr children: [(C {(cd)} {(DQ ($ VSub_Name "$GIT_TEST_INSTALLED"))}) (C {(pwd)})] op_id: Op_DAmp ) ] ) left_token: <Left_CommandSub "$("> spids: [254 264] ) } spids: [253] ) ] spids: [253] ) ] spids: [210 266] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:TEST_NO_CREATE_REPO) op:Equal rhs:{(t)} spids:[269])] spids: [269] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:TEST_NO_MALLOC_CHECK) op:Equal rhs:{(t)} spids:[272])] spids: [272] ) (C {(.)} {(../test-lib.sh)}) (C {(export)} {(TEST_DIRECTORY)} {(TRASH_DIRECTORY)} {(GIT_BUILD_DIR)} {(GIT_TEST_CMP)}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:MODERN_GIT) op: Equal rhs: {($ VSub_Name "$GIT_BUILD_DIR") (/bin-wrappers/git)} spids: [298] ) ] spids: [298] ) (C {(export)} {(MODERN_GIT)}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:perf_results_dir) op: Equal rhs: {($ VSub_Name "$TEST_OUTPUT_DIRECTORY") (/test-results)} spids: [307] ) ] spids: [307] ) (C {(mkdir)} {(-p)} {(DQ ($ VSub_Name "$perf_results_dir"))}) (C {(rm)} {(-f)} {(DQ ($ VSub_Name "$perf_results_dir")) (/) (CommandSubPart command_list: (CommandList children:[(C {(basename)} {(DQ ($ VSub_Number "$0"))} {(.sh)})]) left_token: <Left_CommandSub "$("> spids: [327 335] ) (.subtests) } ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(test)} {(-z)} {(DQ ($ VSub_Name "$GIT_PERF_REPEAT_COUNT"))}) terminator: <Op_Semi ";"> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:GIT_PERF_REPEAT_COUNT) op: Equal rhs: {(3)} spids: [353] ) ] spids: [353] ) ] spids: [-1 350] ) ] spids: [-1 356] ) (FuncDef name: die_if_build_dir_not_repo body: (BraceGroup children: [ (If arms: [ (if_arm cond: [ (Sentence child: (Pipeline children: [ (Subshell child: (AndOr children: [ (C {(cd)} {(DQ ($ VSub_Name "$TEST_DIRECTORY") (/..))}) (SimpleCommand words: [{(git)} {(rev-parse)} {(--build-dir)}] redirects: [ (Redir op_id: Redir_Great fd: -1 arg_word: {(/dev/null)} spids: [388] ) (Redir op_id: Redir_GreatAnd fd: 2 arg_word: {(1)} spids: [391] ) ] ) ] op_id: Op_DAmp ) spids: [370 394] ) ] negated: True ) terminator: <Op_Semi ";"> ) ] action: [ (C {(error)} { (DQ ("No ") ($ VSub_Number "$1") (" defined, and your build directory is not a repo") ) } ) ] spids: [-1 397] ) ] spids: [-1 409] ) ] spids: [363] ) spids: [358 362] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(test)} {(-z)} {(DQ ($ VSub_Name "$GIT_PERF_REPO"))}) terminator: <Op_Semi ";"> ) ] action: [ (C {(die_if_build_dir_not_repo)} {(SQ <"$GIT_PERF_REPO">)}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:GIT_PERF_REPO) op: Equal rhs: {($ VSub_Name "$TEST_DIRECTORY") (/..)} spids: [435] ) ] spids: [435] ) ] spids: [-1 425] ) ] spids: [-1 439] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(test)} {(-z)} {(DQ ($ VSub_Name "$GIT_PERF_LARGE_REPO"))}) terminator: <Op_Semi ";"> ) ] action: [ (C {(die_if_build_dir_not_repo)} {(SQ <"$GIT_PERF_LARGE_REPO">)}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:GIT_PERF_LARGE_REPO) op: Equal rhs: {($ VSub_Name "$TEST_DIRECTORY") (/..)} spids: [462] ) ] spids: [462] ) ] spids: [-1 452] ) ] spids: [-1 466] ) (FuncDef name: test_perf_create_repo_from body: (BraceGroup children: [ (AndOr children: [ (C {(test)} {(DQ ($ VSub_Pound "$#"))} {(Lit_Other "=")} {(2)}) (C {(error)} {(DQ ("bug in the test script: not 2 parameters to test-create-repo"))}) ] op_id: Op_DPipe ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:repo) op: Equal rhs: {(DQ ($ VSub_Number "$1"))} spids: [497] ) ] spids: [497] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:source) op: Equal rhs: {(DQ ($ VSub_Number "$2"))} spids: [503] ) ] spids: [503] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:source_git) op: Equal rhs: { (DQ (CommandSubPart command_list: (CommandList children: [ (C {(git)} {(-C)} {(DQ ($ VSub_Name "$source"))} {(rev-parse)} {(--git-dir)} ) ] ) left_token: <Left_CommandSub "$("> spids: [511 523] ) ) } spids: [509] ) ] spids: [509] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:objects_dir) op: Equal rhs: { (DQ (CommandSubPart command_list: (CommandList children: [ (C {(DQ ($ VSub_Name "$MODERN_GIT"))} {(-C)} {(DQ ($ VSub_Name "$source"))} {(rev-parse)} {(--git-path)} {(objects)} ) ] ) left_token: <Left_CommandSub "$("> spids: [529 545] ) ) } spids: [527] ) ] spids: [527] ) (C {(mkdir)} {(-p)} {(DQ ($ VSub_Name "$repo") (/.git))}) (AndOr children: [ (Subshell child: (AndOr children: [ (C {(cd)} {(DQ ($ VSub_Name "$source"))}) (AndOr children: [ (BraceGroup children: [ (Sentence child: (AndOr children: [ (SimpleCommand words: [ {(cp)} {(-Rl)} {(DQ ($ VSub_Name "$objects_dir"))} {(DQ ($ VSub_Name "$repo") (/.git/))} ] redirects: [ (Redir op_id: Redir_Great fd: 2 arg_word: {(/dev/null)} spids: [586] ) ] ) (C {(cp)} {(-R)} {(DQ ($ VSub_Name "$objects_dir"))} {(DQ ($ VSub_Name "$repo") (/.git/))} ) ] op_id: Op_DPipe ) terminator: <Op_Semi ";"> ) ] spids: [571] ) (ForEach iter_name: stuff iter_words: [{(DQ ($ VSub_Name "$source_git")) (/) (Lit_Other "*")}] do_arg_iter: False body: (DoGroup children: [ (Case to_match: {(DQ ($ VSub_Name "$stuff"))} arms: [ (case_arm pat_list: [ {(Lit_Other "*") (/objects)} {(Lit_Other "*") (/hooks)} {(Lit_Other "*") (/config)} {(Lit_Other "*") (/commondir)} ] spids: [636 647 650 -1] ) (case_arm pat_list: [{(Lit_Other "*")}] action: [ (AndOr children: [ (C {(cp)} {(-R)} {(DQ ($ VSub_Name "$stuff"))} {(DQ ($ VSub_Name "$repo") (/.git/))} ) (C {(exit)} {(1)}) ] op_id: Op_DPipe ) ] spids: [653 654 677 -1] ) ] spids: [627 633 680] ) ] spids: [624 683] ) spids: [616 622] ) ] op_id: Op_DAmp ) ] op_id: Op_DAmp ) spids: [559 686] ) (AndOr children: [ (Subshell child: (AndOr children: [ (C {(cd)} {(DQ ($ VSub_Name "$repo"))}) (AndOr children: [ (C {(git)} {(init)} {(-q)}) (AndOr children: [ (BraceGroup children: [ (AndOr children: [ (C {(test_have_prereq)} {(SYMLINKS)}) (C {(git)} {(config)} {(core.symlinks)} {(false)}) ] op_id: Op_DPipe ) ] spids: [711] ) (SimpleCommand words: [{(mv)} {(.git/hooks)} {(.git/hooks-disabled)}] redirects: [ (Redir op_id: Redir_Great fd: 2 arg_word: {(/dev/null)} spids: [741] ) ] ) ] op_id: Op_DAmp ) ] op_id: Op_DAmp ) ] op_id: Op_DAmp ) spids: [691 745] ) (C {(error)} { (DQ ("failed to copy repository '") ($ VSub_Name "$source") ("' to '") ($ VSub_Name "$repo") ("'") ) } ) ] op_id: Op_DPipe ) ] op_id: Op_DAmp ) ] spids: [474] ) spids: [469 473] ) (FuncDef name: test_perf_default_repo body: (BraceGroup children: [ (C {(test_perf_create_repo_from)} { (DQ (BracedVarSub token: <VSub_Number 1> suffix_op: (StringUnary op_id: VTest_ColonHyphen arg_word: {($ VSub_Name "$TRASH_DIRECTORY")} ) spids: [776 780] ) ) } {(DQ ($ VSub_Name "$GIT_PERF_REPO"))} ) ] spids: [770] ) spids: [765 769] ) (FuncDef name: test_perf_large_repo body: (BraceGroup children: [ (If arms: [ (if_arm cond: [ (Sentence child: (C {(test)} {(DQ ($ VSub_Name "$GIT_PERF_LARGE_REPO"))} {(Lit_Other "=")} {(DQ ($ VSub_Name "$GIT_BUILD_DIR"))} ) terminator: <Op_Semi ";"> ) ] action: [ (SimpleCommand words: [ {(echo)} { (DQ ("warning: ") (EscapedLiteralPart token:<Lit_EscapedChar "\\$">) ("GIT_PERF_LARGE_REPO is ") (EscapedLiteralPart token:<Lit_EscapedChar "\\$">) (GIT_BUILD_DIR.) ) } ] redirects: [(Redir op_id:Redir_GreatAnd fd:-1 arg_word:{(2)} spids:[825])] ) (SimpleCommand words: [ {(echo)} {(DQ ("warning: This will work, but may not be a sufficiently large repo"))} ] redirects: [(Redir op_id:Redir_GreatAnd fd:-1 arg_word:{(2)} spids:[835])] ) (SimpleCommand words: [{(echo)} {(DQ ("warning: for representative measurements."))}] redirects: [(Redir op_id:Redir_GreatAnd fd:-1 arg_word:{(2)} spids:[845])] ) ] spids: [-1 812] ) ] spids: [-1 849] ) (C {(test_perf_create_repo_from)} { (DQ (BracedVarSub token: <VSub_Number 1> suffix_op: (StringUnary op_id: VTest_ColonHyphen arg_word: {($ VSub_Name "$TRASH_DIRECTORY")} ) spids: [855 859] ) ) } {(DQ ($ VSub_Name "$GIT_PERF_LARGE_REPO"))} ) ] spids: [794] ) spids: [789 793] ) (FuncDef name: test_checkout_worktree body: (BraceGroup children: [ (AndOr children: [ (C {(git)} {(checkout-index)} {(-u)} {(-a)}) (C {(error)} {(DQ ("git checkout-index failed"))}) ] op_id: Op_DPipe ) ] spids: [873] ) spids: [868 872] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:immediate) op:Equal rhs:{(t)} spids:[899])] spids: [899] ) (Case to_match: { (DQ (CommandSubPart command_list: (CommandList children:[(C {(uname)} {(-s)})]) left_token: <Left_CommandSub "$("> spids: [909 913] ) ) } arms: [ (case_arm pat_list: [{(Darwin)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:GTIME) op: Equal rhs: { (DQ (BracedVarSub token: <VSub_Name GTIME> suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(gtime)}) spids: [923 927] ) ) } spids: [921] ) ] spids: [921] ) ] spids: [918 919 929 -1] ) ] spids: [906 916 931] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:GTIME) op: Equal rhs: { (DQ (BracedVarSub token: <VSub_Name GTIME> suffix_op: (StringUnary op_id: VTest_ColonHyphen arg_word: {(Lit_Slash /) (usr) (Lit_Slash /) (bin) (Lit_Slash /) (time)} ) spids: [935 944] ) ) } spids: [933] ) ] spids: [933] ) (FuncDef name: test_run_perf_ body: (BraceGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:test_cleanup) op: Equal rhs: {(Lit_Other ":")} spids: [956] ) ] spids: [956] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:test_export_) op: Equal rhs: {(DQ (test_cleanup))} spids: [960] ) ] spids: [960] ) (C {(export)} {(test_cleanup)} {(test_export_)}) (SimpleCommand words: [ {(DQ ($ VSub_Name "$GTIME"))} {(-f)} {(DQ ("%E %U %S"))} {(-o)} {(test_time.) ($ VSub_Name "$i")} {(DQ ($ VSub_Name "$SHELL"))} {(-c)} {(SQ <"\n"> <". ">) (DQ ($ VSub_Name "$TEST_DIRECTORY")) (/test-lib-functions.sh) (SQ <"\n"> <"test_export () {\n"> <"\t[ $# != 0 ] || return 0\n"> <"\ttest_export_=\"$test_export_\\\\|$1\"\n"> <"\tshift\n"> <"\ttest_export \"$@\"\n"> <"}\n"> ) (DQ ($ VSub_Number "$1")) (SQ <"\n"> <"ret=$?\n"> <"set | sed -n \"s">) (DQ ("/'/'") (EscapedLiteralPart token:<Lit_EscapedChar "\\\\">) (EscapedLiteralPart token:<Lit_EscapedChar "\\\\">) ("''/g") ) (SQ <";s/^\\\\($test_export_\\\\)/export ">) (DQ ("'&'")) (SQ <"/p\" >test_vars\n"> <"exit $ret">) } ] redirects: [ (Redir op_id:Redir_GreatAnd fd:-1 arg_word:{(3)} spids:[1036]) (Redir op_id:Redir_GreatAnd fd:2 arg_word:{(4)} spids:[1039]) ] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:eval_ret) op: Equal rhs: {($ VSub_QMark "$?")} spids: [1043] ) ] spids: [1043] ) (If arms: [ (if_arm cond: [ (AndOr children: [ (C {(test)} {($ VSub_Name "$eval_ret")} {(Lit_Other "=")} {(0)}) (C {(test)} {(-n)} {(DQ ($ VSub_Name "$expecting_failure"))}) ] op_id: Op_DPipe ) ] action: [ (C {(test_eval_)} {(DQ ($ VSub_Name "$test_cleanup"))}) (AndOr children: [ (C {(.)} {(./test_vars)}) (C {(error)} {(DQ ("failed to load updated environment"))}) ] op_id: Op_DPipe ) ] spids: [-1 1069] ) ] spids: [-1 1092] ) (If arms: [ (if_arm cond: [ (Sentence child: (AndOr children: [ (C {(test)} {(DQ ($ VSub_Name "$verbose"))} {(Lit_Other "=")} {(DQ (t))}) (C {(test)} {(-n)} {(DQ ($ VSub_Name "$HARNESS_ACTIVE"))}) ] op_id: Op_DAmp ) terminator: <Op_Semi ";"> ) ] action: [(C {(echo)} {(DQ )})] spids: [-1 1120] ) ] spids: [-1 1129] ) (ControlFlow token: <ControlFlow_Return return> arg_word: {(DQ ($ VSub_Name "$eval_ret"))} ) ] spids: [953] ) spids: [948 952] ) (FuncDef name: test_perf body: (BraceGroup children: [ (C {(test_start_)}) (AndOr children: [ (C {(test)} {(DQ ($ VSub_Pound "$#"))} {(Lit_Other "=")} {(3)}) (AndOr children: [ (BraceGroup children: [ (Sentence child: (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:test_prereq) op: Equal rhs: {($ VSub_Number "$1")} spids: [1167] ) ] spids: [1167] ) terminator: <Op_Semi ";"> ) (Sentence child: (C {(shift)}) terminator: <Op_Semi ";"> ) ] spids: [1165] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:test_prereq) op: Equal rhs: {(SQ )} spids: [1178] ) ] spids: [1178] ) ] op_id: Op_DPipe ) ] op_id: Op_DAmp ) (AndOr children: [ (C {(test)} {(DQ ($ VSub_Pound "$#"))} {(Lit_Other "=")} {(2)}) (C {(error)} {(DQ ("bug in the test script: not 2 or 3 parameters to test-expect-success"))} ) ] op_id: Op_DPipe ) (C {(export)} {(test_prereq)}) (If arms: [ (if_arm cond: [(Pipeline children:[(C {(test_skip)} {(DQ ($ VSub_At "$@"))})] negated:True)] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:base) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [(C {(basename)} {(DQ ($ VSub_Number "$0"))} {(.sh)})] ) left_token: <Left_CommandSub "$("> spids: [1221 1229] ) } spids: [1220] ) ] spids: [1220] ) (SimpleCommand words: [{(echo)} {(DQ ($ VSub_Name "$test_count"))}] redirects: [ (Redir op_id: Redir_DGreat fd: -1 arg_word: {(DQ ($ VSub_Name "$perf_results_dir")) (/) ($ VSub_Name "$base") (.subtests) } spids: [1238] ) ] ) (SimpleCommand words: [{(echo)} {(DQ ($ VSub_Number "$1"))}] redirects: [ (Redir op_id: Redir_Great fd: -1 arg_word: {(DQ ($ VSub_Name "$perf_results_dir")) (/) ($ VSub_Name "$base") (.) ($ VSub_Name "$test_count") (.descr) } spids: [1253] ) ] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(test)} {(-z)} {(DQ ($ VSub_Name "$verbose"))}) terminator: <Op_Semi ";"> ) ] action: [ (C {(printf)} {(DQ ("%s"))} { (DQ ("perf ") ($ VSub_Name "$test_count") (" - ") ($ VSub_Number "$1") (":") ) } ) ] spids: [-1 1275] ) ] else_action: [ (C {(echo)} { (DQ ("perf ") ($ VSub_Name "$test_count") (" - ") ($ VSub_Number "$1") (":")) } ) ] spids: [1293 1307] ) (ForEach iter_name: i iter_words: [ { (CommandSubPart command_list: (CommandList children: [ (C {(test_seq)} {(1)} {($ VSub_Name "$GIT_PERF_REPEAT_COUNT")}) ] ) left_token: <Left_CommandSub "$("> spids: [1316 1322] ) } ] do_arg_iter: False body: (DoGroup children: [ (SimpleCommand words: [{(say)} {(DQ ("running: ") ($ VSub_Number "$2"))}] redirects: [ (Redir op_id: Redir_GreatAnd fd: -1 arg_word: {(3)} spids: [1330] ) ] ) (If arms: [ (if_arm cond: [(C {(test_run_perf_)} {(DQ ($ VSub_Number "$2"))})] action: [ (If arms: [ (if_arm cond: [ (Sentence child: (C {(test)} {(-z)} {(DQ ($ VSub_Name "$verbose"))}) terminator: <Op_Semi ";"> ) ] action: [ (C {(printf)} {(DQ (" %s"))} {(DQ ($ VSub_Name "$i"))}) ] spids: [-1 1362] ) ] else_action: [ (C {(echo)} { (DQ ("* timing run ") ($ VSub_Name "$i") (/) ($ VSub_Name "$GIT_PERF_REPEAT_COUNT") (":") ) } ) ] spids: [1376 1390] ) ] spids: [-1 1348] ) ] else_action: [ (AndOr children: [ (C {(test)} {(-z)} {(DQ ($ VSub_Name "$verbose"))}) (C {(echo)}) ] op_id: Op_DAmp ) (C {(test_failure_)} {(DQ ($ VSub_At "$@"))}) (ControlFlow token: <ControlFlow_Break break> ) ] spids: [1393 1419] ) ] spids: [1325 1422] ) spids: [1315 1323] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(test)} {(-z)} {(DQ ($ VSub_Name "$verbose"))}) terminator: <Op_Semi ";"> ) ] action: [(C {(echo)} {(DQ (" ok"))})] spids: [-1 1436] ) ] else_action: [(C {(test_ok_)} {(DQ ($ VSub_Number "$1"))})] spids: [1446 1456] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:base) op: Equal rhs: {(DQ ($ VSub_Name "$perf_results_dir")) (/) (DQ ($ VSub_Name "$perf_results_prefix") (CommandSubPart command_list: (CommandList children: [(C {(basename)} {(DQ ($ VSub_Number "$0"))} {(.sh)})] ) left_token: <Left_CommandSub "$("> spids: [1466 1474] ) ) (.) (DQ ($ VSub_Name "$test_count")) } spids: [1459] ) ] spids: [1459] ) (SimpleCommand words: [ {(DQ ($ VSub_Name "$TEST_DIRECTORY")) (/perf/min_time.perl)} {(test_time.) (Lit_Other "*")} ] redirects: [ (Redir op_id: Redir_Great fd: -1 arg_word: {(DQ ($ VSub_Name "$base")) (.times)} spids: [1490] ) ] ) ] spids: [-1 1217] ) ] spids: [-1 1497] ) (C {(test_finish_)}) ] spids: [1147] ) spids: [1142 1146] ) (FuncDef name: test_at_end_hook_ body: (BraceGroup children: [ (If arms: [ (if_arm cond: [ (Sentence child: (C {(test)} {(-z)} {(DQ ($ VSub_Name "$GIT_PERF_AGGREGATING_LATER"))}) terminator: <Op_Semi ";"> ) ] action: [ (Subshell child: (AndOr children: [ (C {(cd)} {(DQ ($ VSub_Name "$TEST_DIRECTORY")) (/perf)}) (C {(./aggregate.perl)} { (CommandSubPart command_list: (CommandList children: [(C {(basename)} {(DQ ($ VSub_Number "$0"))})] ) left_token: <Left_CommandSub "$("> spids: [1546 1552] ) } ) ] op_id: Op_DAmp ) spids: [1533 1554] ) ] spids: [-1 1530] ) ] spids: [-1 1557] ) ] spids: [1516] ) spids: [1511 1515] ) (FuncDef name: test_export body: (BraceGroup children:[(C {(export)} {(DQ ($ VSub_At "$@"))})] spids:[1567]) spids: [1562 1566] ) ] )