(CommandList
  children: [
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:WORKSPACE_BASE)
          op: Equal
          rhs: 
            {
              (CommandSubPart
                command_list: (CommandList children:[(C {(pwd)})])
                left_token: <Left_Backtick '`'>
                spids: [14 16]
              )
            }
          spids: [13]
        )
      ]
      spids: [13]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:MY_DIR)
          op: Equal
          rhs: 
            {
              (DQ 
                (CommandSubPart
                  command_list: (CommandList children:[(C {(dirname)} {(DQ ($ VSub_Number '$0'))})])
                  left_token: <Left_CommandSub '$('>
                  spids: [20 26]
                )
              )
            }
          spids: [18]
        )
      ]
      spids: [18]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:TEST_SCRIPT)
          op: Equal
          rhs: {($ VSub_Name '$MY_DIR') (/../tests.sh)}
          spids: [29]
        )
      ]
      spids: [29]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:BUILD_DIR) op:Equal rhs:{(/tmp/protobuf)} spids:[33])]
      spids: [33]
    )
    (C {(set)} {(-e)})
    (C {(set)} {(-x)})
    (C {(rm)} {(-rf)} {($ VSub_Name '$BUILD_DIR')})
    (C {(mkdir)} {(-p)} {($ VSub_Name '$BUILD_DIR')})
    (C {(cd)} {($ VSub_Name '$BUILD_DIR')})
    (C {(git)} {(clone)} {(/var/local/jenkins/protobuf)})
    (C {(cd)} {(protobuf)})
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:OUTPUT_DIR)
          op: Equal
          rhs: 
            {
              (CommandSubPart
                command_list: (CommandList children:[(C {(mktemp)} {(-d)})])
                left_token: <Left_Backtick '`'>
                spids: [89 93]
              )
            }
          spids: [88]
        )
      ]
      spids: [88]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:LOG_OUTPUT_DIR)
          op: Equal
          rhs: {($ VSub_Name '$OUTPUT_DIR') (/logs)}
          spids: [95]
        )
      ]
      spids: [95]
    )
    (C {(mkdir)} {(-p)} {($ VSub_Name '$LOG_OUTPUT_DIR') (/1/cpp)})
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:CPP_STDOUT)
          op: Equal
          rhs: {($ VSub_Name '$LOG_OUTPUT_DIR') (/1/cpp/stdout)}
          spids: [138]
        )
      ]
      spids: [138]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:CPP_STDERR)
          op: Equal
          rhs: {($ VSub_Name '$LOG_OUTPUT_DIR') (/1/cpp/stderr)}
          spids: [142]
        )
      ]
      spids: [142]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:TIME_CMD)
          op: Equal
          rhs: {(DQ ('/usr/bin/time -f %e -o ') ($ VSub_Name '$LOG_OUTPUT_DIR') (/1/cpp/build_time))}
          spids: [156]
        )
      ]
      spids: [156]
    )
    (SimpleCommand
      words: [{($ VSub_Name '$TIME_CMD')} {($ VSub_Name '$TEST_SCRIPT')} {(cpp)}]
      redirects: [
        (Redir
          op: <Redir_Great '>'>
          fd: 16777215
          arg_word: 
            {
              (CommandSubPart
                command_list: (CommandList children:[(C {(tee)} {($ VSub_Name '$CPP_STDOUT')})])
                left_token: <Left_ProcSubOut '>('>
                spids: [172 176]
              )
            }
        )
        (Redir
          op: <Redir_Great '2>'>
          fd: 2
          arg_word: 
            {
              (CommandSubPart
                command_list: 
                  (CommandList
                    children: [
                      (SimpleCommand
                        words: [{(tee)} {($ VSub_Name '$CPP_STDERR')}]
                        redirects: [(Redir op:<Redir_GreatAnd '>&'> fd:16777215 arg_word:{(2)})]
                      )
                    ]
                  )
                left_token: <Left_ProcSubOut '>('>
                spids: [180 187]
              )
            }
        )
      ]
    )
    (AndOr
      ops: [Op_DPipe]
      children: [
        (C {(parallel)} {(--results)} {($ VSub_Name '$LOG_OUTPUT_DIR')} {(--joblog)} 
          {($ VSub_Name '$OUTPUT_DIR') (/joblog)} {($ VSub_Name '$TEST_SCRIPT')} {(Lit_Other ':') (Lit_Other ':') (Lit_Other ':')} 
          {($ VSub_Name '$TEST_SET')}
        )
        (C {(true)})
      ]
    )
    (C {(cat)} {($ VSub_Name '$OUTPUT_DIR') (/joblog)})
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:COPY_FROM_DOCKER)
          op: Equal
          rhs: {(/var/local/git/protobuf/testoutput)}
          spids: [237]
        )
      ]
      spids: [237]
    )
    (C {(mkdir)} {(-p)} {($ VSub_Name '$COPY_FROM_DOCKER')})
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:TESTOUTPUT_XML_FILE)
          op: Equal
          rhs: {($ VSub_Name '$COPY_FROM_DOCKER') (/testresults.xml)}
          spids: [246]
        )
      ]
      spids: [246]
    )
    (SimpleCommand
      words: [{(python)} {($ VSub_Name '$MY_DIR') (/make_test_output.py)} {($ VSub_Name '$OUTPUT_DIR')}]
      redirects: [
        (Redir
          op: <Redir_Great '>'>
          fd: 16777215
          arg_word: {($ VSub_Name '$TESTOUTPUT_XML_FILE')}
        )
      ]
    )
    (C {(ls)} {(-l)} {($ VSub_Name '$TESTOUTPUT_XML_FILE')})
  ]
)