(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")})
  ]
)