(List (Com {[LIT_CHARS exec]} < (DescriptorRedirectNode target={[LIT_CHARS 1]} &"> 2), > ) (Com {[LIT_CHARS echo]} {[SQ ]}) (If (DBracket {B2 BINARY_STRING_NOT_EQUAL {[DQ [VarSub TEST_SRCDIR]]} {[LIT_CHARS /] [LIT_OTHER "*"]}}) (= scope= flags=1 words=[] bindings=[('TEST_SRCDIR', {[DQ [VarSub PWD][LIT_CHARS /][VarSub TEST_SRCDIR]]})]) ) (If (DBracket {B2 BINARY_STRING_NOT_EQUAL {[DQ [VarSub JAVA_RUNFILES]]} {[LIT_CHARS /] [LIT_OTHER "*"]}}) (= scope= flags=1 words=[] bindings=[('JAVA_RUNFILES', {[DQ [VarSub PWD][LIT_CHARS /][VarSub JAVA_RUNFILES]]})]) ) (If (DBracket {B2 BINARY_STRING_NOT_EQUAL {[DQ [VarSub PYTHON_RUNFILES]]} {[LIT_CHARS /] [LIT_OTHER "*"]}}) (= scope= flags=1 words=[] bindings=[('PYTHON_RUNFILES', {[DQ [VarSub PWD][LIT_CHARS /][VarSub PYTHON_RUNFILES]]})]) ) (If (DBracket {B2 BINARY_STRING_NOT_EQUAL {[DQ [VarSub TEST_TMPDIR]]} {[LIT_CHARS /] [LIT_OTHER "*"]}}) (= scope= flags=1 words=[] bindings=[('TEST_TMPDIR', {[DQ [VarSub PWD][LIT_CHARS /][VarSub TEST_TMPDIR]]})]) ) (If (DBracket {B2 BINARY_STRING_NOT_EQUAL {[DQ [VarSub XML_OUTPUT_FILE]]} {[LIT_CHARS /] [LIT_OTHER "*"]}}) (= scope= flags=1 words=[] bindings=[('XML_OUTPUT_FILE', {[DQ [VarSub PWD][LIT_CHARS /][VarSub XML_OUTPUT_FILE]]})]) ) (If (AndOr OP_AND_IF (DBracket {B1 UNARY_STRING_n {[DQ [VarSub TEST_TOTAL_SHARDS test_op=VS_TEST_PLUS {[LIT_CHARS x]}]]}}) (DParen {A2 AS_OP_NEQUAL {A Atom NODE_ARITH_WORD {[VarSub TEST_TOTAL_SHARDS]}} {A Atom NODE_ARITH_WORD {[AS_NUM_LITERAL 0]}}}) ) (List (= scope= flags=1 words=[] bindings=[('GTEST_SHARD_INDEX', {[DQ [VarSub TEST_SHARD_INDEX]]})]) (= scope= flags=1 words=[] bindings=[('GTEST_TOTAL_SHARDS', {[DQ [VarSub TEST_TOTAL_SHARDS]]})]) ) ) (= scope= flags=1 words=[] bindings=[('GTEST_TMP_DIR', {[DQ [VarSub TEST_TMPDIR]]})]) (= scope= flags=0 words=[] bindings=[('DIR', {[DQ [VarSub TEST_SRCDIR]]})]) (= scope= flags=0 words=[] bindings=[('RUNFILES_MANIFEST_FILE', {[VarSub DIR] [LIT_CHARS /MANIFEST]})]) (If (Com {[LIT_OTHER "["]} {[LIT_CHARS -z]} {[DQ [VarSub RUNFILES_MANIFEST_ONLY]]} {[LIT_OTHER "]"]}) (FunctionDef rlocation [] (If (DBracket {B2 BINARY_STRING_EQUAL {[DQ [VarSub 1]]} {[LIT_CHARS /] [LIT_OTHER "*"]}}) (Com {[LIT_CHARS echo]} {[VarSub 1]}) (ElseTrue) (Com {[LIT_CHARS echo]} {[DQ [ComSub (Com {[LIT_CHARS dirname]} {[VarSub RUNFILES_MANIFEST_FILE]})][LIT_CHARS /][VarSub 1]]}) ) ) (ElseTrue) (FunctionDef rlocation [] (If (DBracket {B2 BINARY_STRING_EQUAL {[DQ [VarSub 1]]} {[LIT_CHARS /] [LIT_OTHER "*"]}}) (Com {[LIT_CHARS echo]} {[VarSub 1]}) (ElseTrue) (Com {[LIT_CHARS echo]} {[ComSub (Pipeline (Com {[LIT_CHARS grep]} {[DQ [LIT_CHARS "^"][VarSub 1][LIT_CHARS " "]]} {[VarSub RUNFILES_MANIFEST_FILE]}) (Com {[LIT_CHARS awk]} {[SQ ]}) )]}) ) ) ) (= scope= flags=1 words=[{[LIT_CHARS -f]}, {[LIT_CHARS rlocation]}] bindings=[]) (= scope= flags=1 words=[{[LIT_CHARS RUNFILES_MANIFEST_FILE]}] bindings=[]) (If (Com {[LIT_OTHER "["]} {[LIT_OTHER "!"]} {[LIT_CHARS -z]} {[DQ [VarSub TEST_WORKSPACE]]} {[LIT_OTHER "]"]}) (= scope= flags=0 words=[] bindings=[('DIR', {[DQ [VarSub DIR]] [LIT_CHARS /] [DQ [VarSub TEST_WORKSPACE]]})]) ) (AndOr OP_OR_IF (Com {[LIT_CHARS cd]} {[DQ [VarSub DIR]]}) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Could not chdir "][VarSub DIR]]}) (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]}) ) ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS -----------------------------------------------------------------------------]]}) (= scope= flags=0 words=[] bindings=[('PATH', {[DQ [LIT_CHARS ".:"][VarSub PATH]]})]) (= scope= flags=0 words=[] bindings=[('TEST_NAME', {[VarSub 1]})]) (Com {[LIT_CHARS shift]}) (If (DBracket {B2 BINARY_STRING_EQUAL {[DQ [VarSub TEST_NAME]]} {[LIT_CHARS /] [LIT_OTHER "*"]}}) (= scope= flags=0 words=[] bindings=[('EXE', {[DQ [VarSub TEST_NAME]]})]) (ElseTrue) (= scope= flags=0 words=[] bindings=[('EXE', {[DQ [ComSub (Com {[LIT_CHARS rlocation]} {[VarSub TEST_WORKSPACE] [LIT_CHARS /] [VarSub TEST_NAME]})]]})]) ) (= scope= flags=0 words=[] bindings=[('exitCode', {[LIT_CHARS 0]})]) (AndOr OP_OR_IF (Com {[DQ [VarSub EXE]]} {[DQ [VarSub @]]}) (= scope= flags=0 words=[] bindings=[('exitCode', {[VarSub ?]})]) ) (If (Com {[LIT_OTHER "["]} {[LIT_CHARS -n]} {[DQ [VarSub XML_OUTPUT_FILE test_op=VS_TEST_HYPHEN {}]]} {[LIT_CHARS -a]} {[LIT_OTHER "!"]} {[LIT_CHARS -f]} {[DQ [VarSub XML_OUTPUT_FILE test_op=VS_TEST_HYPHEN {}]]} {[LIT_OTHER "]"]}) (List (If (DParen {A2 AS_OP_NEQUAL {A Atom NODE_ARITH_WORD {[VarSub exitCode]}} {A Atom NODE_ARITH_WORD {[AS_NUM_LITERAL 0]}}}) (List (= scope= flags=0 words=[] bindings=[('errors', {[LIT_CHARS 1]})]) (= scope= flags=0 words=[] bindings=[('error_msg', {[DQ [LIT_CHARS ""]]})]) ) (ElseTrue) (List (= scope= flags=0 words=[] bindings=[('errors', {[LIT_CHARS 0]})]) (= scope= flags=0 words=[] bindings=[('error_msg', {[SQ ]})]) ) ) (Com {[LIT_CHARS cat]} < (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "\n"][LIT_CHARS "\n"][LIT_CHARS " \n"][LIT_CHARS " "][VarSub error_msg][LIT_CHARS "\n"][LIT_CHARS " \n"][LIT_CHARS "\n"]]} 0), (FilenameRedirectNode filename={[VarSub XML_OUTPUT_FILE]} "> 1), > ) ) ) (Com {[LIT_CHARS exit]} {[VarSub exitCode]}) )