(CommandList children: [ (SimpleCommand words: [{(exec)}] redirects: [(Redir op_id:Redir_GreatAnd fd:2 arg_word:{(1)} spids:[49])] ) (C {(echo)} {(SQ <"exec ${PAGER:-/usr/bin/less} \"$0\" || exit 1">)}) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_GlobNEqual left: {(DQ ($ VSub_Name "$TEST_SRCDIR"))} right: {(/) (Lit_Other "*")} ) ) terminator: <Op_Semi ";"> ) ] action: [ (C {(export)} {(Lit_VarLike "TEST_SRCDIR=") (DQ ($ VSub_Name "$PWD") (/) ($ VSub_Name "$TEST_SRCDIR")) } ) ] spids: [-1 88] ) ] spids: [-1 100] ) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_GlobNEqual left: {(DQ ($ VSub_Name "$JAVA_RUNFILES"))} right: {(/) (Lit_Other "*")} ) ) terminator: <Op_Semi ";"> ) ] action: [ (C {(export)} {(Lit_VarLike "JAVA_RUNFILES=") (DQ ($ VSub_Name "$PWD") (/) ($ VSub_Name "$JAVA_RUNFILES")) } ) ] spids: [-1 118] ) ] spids: [-1 130] ) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_GlobNEqual left: {(DQ ($ VSub_Name "$PYTHON_RUNFILES"))} right: {(/) (Lit_Other "*")} ) ) terminator: <Op_Semi ";"> ) ] action: [ (C {(export)} {(Lit_VarLike "PYTHON_RUNFILES=") (DQ ($ VSub_Name "$PWD") (/) ($ VSub_Name "$PYTHON_RUNFILES")) } ) ] spids: [-1 148] ) ] spids: [-1 160] ) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_GlobNEqual left: {(DQ ($ VSub_Name "$TEST_TMPDIR"))} right: {(/) (Lit_Other "*")} ) ) terminator: <Op_Semi ";"> ) ] action: [ (C {(export)} {(Lit_VarLike "TEST_TMPDIR=") (DQ ($ VSub_Name "$PWD") (/) ($ VSub_Name "$TEST_TMPDIR")) } ) ] spids: [-1 178] ) ] spids: [-1 190] ) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_GlobNEqual left: {(DQ ($ VSub_Name "$XML_OUTPUT_FILE"))} right: {(/) (Lit_Other "*")} ) ) terminator: <Op_Semi ";"> ) ] action: [ (C {(export)} {(Lit_VarLike "XML_OUTPUT_FILE=") (DQ ($ VSub_Name "$PWD") (/) ($ VSub_Name "$XML_OUTPUT_FILE")) } ) ] spids: [-1 208] ) ] spids: [-1 220] ) (If arms: [ (if_arm cond: [ (Sentence child: (AndOr children: [ (DBracket expr: (BoolUnary op_id: BoolUnary_n child: { (DQ (BracedVarSub token: <VSub_Name TEST_TOTAL_SHARDS> suffix_op: (StringUnary op_id:VTest_Plus arg_word:{(x)}) spids: [233 237] ) ) } ) ) (DParen child: (ArithBinary op_id: Arith_NEqual left: (ArithVarRef name:TEST_TOTAL_SHARDS) right: (ArithWord w:{(Lit_Digits 0)}) ) ) ] op_id: Op_DAmp ) terminator: <Op_Semi ";"> ) ] action: [ (C {(export)} {(Lit_VarLike "GTEST_SHARD_INDEX=") (DQ (${ VSub_Name TEST_SHARD_INDEX))}) (C {(export)} {(Lit_VarLike "GTEST_TOTAL_SHARDS=") (DQ (${ VSub_Name TEST_TOTAL_SHARDS))}) ] spids: [-1 254] ) ] spids: [-1 276] ) (C {(export)} {(Lit_VarLike "GTEST_TMP_DIR=") (DQ (${ VSub_Name TEST_TMPDIR))}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:DIR) op: Equal rhs: {(DQ ($ VSub_Name "$TEST_SRCDIR"))} spids: [288] ) ] spids: [288] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:RUNFILES_MANIFEST_FILE) op: Equal rhs: {($ VSub_Name "$DIR") (/MANIFEST)} spids: [293] ) ] spids: [293] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other "[")} {(-z)} {(DQ ($ VSub_Name "$RUNFILES_MANIFEST_ONLY"))} {(Lit_Other "]")} ) terminator: <Op_Semi ";"> ) ] action: [ (FuncDef name: rlocation body: (BraceGroup children: [ (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_GlobEqual left: {(DQ ($ VSub_Number "$1"))} right: {(/) (Lit_Other "*")} ) ) terminator: <Op_Semi ";"> ) ] action: [(C {(echo)} {($ VSub_Number "$1")})] spids: [-1 339] ) ] else_action: [ (C {(echo)} { (DQ (CommandSubPart command_list: (CommandList children: [ (C {(dirname)} {($ VSub_Name "$RUNFILES_MANIFEST_FILE")}) ] ) left_token: <Left_CommandSub "$("> spids: [353 357] ) (/) ($ VSub_Number "$1") ) } ) ] spids: [347 363] ) ] spids: [320] ) spids: [314 319] ) ] spids: [-1 311] ) ] else_action: [ (FuncDef name: rlocation body: (BraceGroup children: [ (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_GlobEqual left: {(DQ ($ VSub_Number "$1"))} right: {(/) (Lit_Other "*")} ) ) terminator: <Op_Semi ";"> ) ] action: [(C {(echo)} {($ VSub_Number "$1")})] spids: [-1 396] ) ] else_action: [ (C {(echo)} { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(grep)} {(DQ ("^") ($ VSub_Number "$1") (" "))} {($ VSub_Name "$RUNFILES_MANIFEST_FILE")} ) (C {(awk)} {(SQ <"{ print $2 }">)}) ] negated: False ) ] ) left_token: <Left_CommandSub "$("> spids: [409 427] ) } ) ] spids: [404 430] ) ] spids: [377] ) spids: [371 376] ) ] spids: [368 435] ) (C {(export)} {(-f)} {(rlocation)}) (C {(export)} {(RUNFILES_MANIFEST_FILE)}) (If arms: [ (if_arm cond: [ (C {(Lit_Other "[")} {(KW_Bang "!")} {(-z)} {(DQ ($ VSub_Name "$TEST_WORKSPACE"))} {(Lit_Other "]")} ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:DIR) op: Equal rhs: {(DQ ($ VSub_Name "$DIR")) (/) (DQ ($ VSub_Name "$TEST_WORKSPACE"))} spids: [466] ) ] spids: [466] ) ] spids: [-1 463] ) ] spids: [-1 475] ) (AndOr children: [ (C {(cd)} {(DQ ($ VSub_Name "$DIR"))}) (BraceGroup children: [ (Sentence child: (C {(echo)} {(DQ ("Could not chdir ") ($ VSub_Name "$DIR"))}) terminator: <Op_Semi ";"> ) (Sentence child:(C {(exit)} {(1)}) terminator:<Op_Semi ";">) ] spids: [497] ) ] op_id: Op_DPipe ) (C {(echo)} {(DQ (-----------------------------------------------------------------------------))}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:PATH) op: Equal rhs: {(DQ (".:") ($ VSub_Name "$PATH"))} spids: [535] ) ] spids: [535] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:TEST_NAME) op: Equal rhs: {($ VSub_Number "$1")} spids: [543] ) ] spids: [543] ) (C {(shift)}) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_GlobEqual left: {(DQ ($ VSub_Name "$TEST_NAME"))} right: {(/) (Lit_Other "*")} ) ) terminator: <Op_Semi ";"> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:EXE) op: Equal rhs: {(DQ (${ VSub_Name TEST_NAME))} spids: [568] ) ] spids: [568] ) ] spids: [-1 565] ) ] else_action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:EXE) op: Equal rhs: { (DQ (CommandSubPart command_list: (CommandList children: [ (C {(rlocation)} {($ VSub_Name "$TEST_WORKSPACE") (/) ($ VSub_Name "$TEST_NAME")} ) ] ) left_token: <Left_CommandSub "$("> spids: [580 586] ) ) } spids: [578] ) ] spids: [578] ) ] spids: [575 589] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:exitCode) op:Equal rhs:{(0)} spids:[592])] spids: [592] ) (AndOr children: [ (C {(DQ (${ VSub_Name EXE))} {(DQ ($ VSub_At "$@"))}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:exitCode) op: Equal rhs: {($ VSub_QMark "$?")} spids: [607] ) ] spids: [607] ) ] op_id: Op_DPipe ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other "[")} {(-n)} { (DQ (BracedVarSub token: <VSub_Name XML_OUTPUT_FILE> suffix_op: (StringUnary op_id:VTest_Hyphen arg_word:{(SQ )}) spids: [618 621] ) ) } {(-a)} {(KW_Bang "!")} {(-f)} { (DQ (BracedVarSub token: <VSub_Name XML_OUTPUT_FILE> suffix_op: (StringUnary op_id:VTest_Hyphen arg_word:{(SQ )}) spids: [631 634] ) ) } {(Lit_Other "]")} ) terminator: <Op_Semi ";"> ) ] action: [ (If arms: [ (if_arm cond: [ (Sentence child: (DParen child: (ArithBinary op_id: Arith_NEqual left: (ArithWord w:{($ VSub_Name "$exitCode")}) right: (ArithWord w:{(Lit_Digits 0)}) ) ) terminator: <Op_Semi ";"> ) ] action: [ (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:errors) op:Equal rhs:{(1)} spids:[664])] spids: [664] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:error_msg) op: Equal rhs: { (DQ ("<error message=") (EscapedLiteralPart token: <Lit_EscapedChar "\\\""> ) ("exited with error code ") ($ VSub_Name "$exitCode") (EscapedLiteralPart token: <Lit_EscapedChar "\\\""> ) ("></error>") ) } spids: [668] ) ] spids: [668] ) ] spids: [-1 661] ) ] else_action: [ (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:errors) op:Equal rhs:{(0)} spids:[682])] spids: [682] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:error_msg) op:Equal rhs:{(SQ )} spids:[686])] spids: [686] ) ] spids: [679 689] ) (SimpleCommand words: [{(cat)}] redirects: [ (HereDoc op_id: Redir_DLess fd: -1 body: { (DQ ("<?xml version=") (Right_DoubleQuote "\"") (1.0) (Right_DoubleQuote "\"") (" encoding=") (Right_DoubleQuote "\"") (UTF-8) (Right_DoubleQuote "\"") ("?>\n") ("<testsuites>\n") (" <testsuite name=") (Right_DoubleQuote "\"") ($ VSub_Name "$TEST_NAME") (Right_DoubleQuote "\"") (" tests=") (Right_DoubleQuote "\"") (1) (Right_DoubleQuote "\"") (" failures=") (Right_DoubleQuote "\"") (0) (Right_DoubleQuote "\"") (" errors=") (Right_DoubleQuote "\"") ($ VSub_Name "$errors") (Right_DoubleQuote "\"") (">\n") (" <testcase name=") (Right_DoubleQuote "\"") ($ VSub_Name "$TEST_NAME") (Right_DoubleQuote "\"") (" status=") (Right_DoubleQuote "\"") (run) (Right_DoubleQuote "\"") (">") ($ VSub_Name "$error_msg") ("</testcase>\n") (" </testsuite>\n") ("</testsuites>\n") ) } do_expansion: True here_end: EOF was_filled: True spids: [694] ) (Redir op_id: Redir_Great fd: -1 arg_word: {(${ VSub_Name XML_OUTPUT_FILE)} spids: [697] ) ] ) ] spids: [-1 640] ) ] spids: [-1 742] ) (C {(exit)} {($ VSub_Name "$exitCode")}) ] )