(CommandList
  children: [
    (Sentence
      child: 
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:asserts) op:Equal rhs:{(00)} spids:[71])]
          spids: [71]
        )
      terminator: <Op_Semi ";">
    )
    (Sentence
      child: 
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:errors) op:Equal rhs:{(0)} spids:[75])]
          spids: [75]
        )
      terminator: <Op_Semi ";">
    )
    (Sentence
      child: 
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:total) op:Equal rhs:{(0)} spids:[79])]
          spids: [79]
        )
      terminator: <Op_Semi ";">
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:content) op:Equal rhs:{(DQ )} spids:[83])]
      spids: [83]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:date)
          op: Equal
          rhs: 
            {
              (CommandSubPart
                command_list: 
                  (CommandList
                    children: [
                      (AndOr
                        children: [
                          (SimpleCommand
                            words: [{(which)} {(gdate)}]
                            redirects: [
                              (Redir
                                op_id: Redir_Great
                                fd: 2
                                arg_word: {(/dev/null)}
                                spids: [93]
                              )
                            ]
                          )
                          (C {(which)} {(date)})
                        ]
                        op_id: Op_DPipe
                      )
                    ]
                  )
                left_token: <Left_Backtick "`">
                spids: [88 101]
              )
            }
          spids: [87]
        )
      ]
      spids: [87]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:juDIR)
          op: Equal
          rhs: 
            {
              (CommandSubPart
                command_list: (CommandList children:[(C {(pwd)})])
                left_token: <Left_Backtick "`">
                spids: [108 110]
              ) (/results)
            }
          spids: [107]
        )
      ]
      spids: [107]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:suite) op:Equal rhs:{(DQ )} spids:[117])]
      spids: [117]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:errfile)
          op: Equal
          rhs: {(/tmp/evErr.) ($ VSub_Dollar "$$") (.log)}
          spids: [125]
        )
      ]
      spids: [125]
    )
    (FuncDef
      name: eVal
      body: 
        (BraceGroup
          children: [
            (Subshell child:(C {(eval)} {(DQ ($ VSub_Number "$1"))}) spids:[139145])
            (Pipeline
              children: [
                (SimpleCommand
                  words: [{(echo)} {($ VSub_QMark "$?")}]
                  redirects: [(Redir op_id:Redir_GreatAnd fd:2 arg_word:{(1)} spids:[156])]
                )
                (SimpleCommand
                  words: [{(tr)} {(-d)} {(DQ (EscapedLiteralPart token:<Lit_EscapedChar "\\n">))}]
                  redirects: [
                    (Redir
                      op_id: Redir_Great
                      fd: -1
                      arg_word: {($ VSub_Name "$errfile")}
                      spids: [169]
                    )
                  ]
                )
              ]
              negated: False
            )
          ]
          spids: [136]
        )
      spids: [130 135]
    )
    (FuncDef
      name: juLogClean
      body: 
        (BraceGroup
          children: [
            (C {(echo)} {(DQ ("+++ Removing old junit reports from: ") ($ VSub_Name "$juDIR") (" "))})
            (C {(rm)} {(-f)} {(DQ ($ VSub_Name "$juDIR")) (/junit-) (Lit_Other "*")})
          ]
          spids: [185]
        )
      spids: [179 184]
    )
    (FuncDef
      name: juLog
      body: 
        (BraceGroup
          children: [
            (Sentence
              child: 
                (Assignment
                  keyword: Assign_None
                  pairs: [(assign_pair lhs:(LhsName name:suite) op:Equal rhs:{(DQ )} spids:[222])]
                  spids: [222]
                )
              terminator: <Op_Semi ";">
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:errfile)
                  op: Equal
                  rhs: {(/tmp/evErr.) ($ VSub_Dollar "$$") (.log)}
                  spids: [228]
                )
              ]
              spids: [228]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:date)
                  op: Equal
                  rhs: 
                    {
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [
                              (AndOr
                                children: [(C {(which)} {(gdate)}) (C {(which)} {(date)})]
                                op_id: Op_DPipe
                              )
                            ]
                          )
                        left_token: <Left_Backtick "`">
                        spids: [235 245]
                      )
                    }
                  spids: [234]
                )
              ]
              spids: [234]
            )
            (Sentence
              child: 
                (Assignment
                  keyword: Assign_None
                  pairs: [(assign_pair lhs:(LhsName name:asserts) op:Equal rhs:{(00)} spids:[248])]
                  spids: [248]
                )
              terminator: <Op_Semi ";">
            )
            (Sentence
              child: 
                (Assignment
                  keyword: Assign_None
                  pairs: [(assign_pair lhs:(LhsName name:errors) op:Equal rhs:{(0)} spids:[252])]
                  spids: [252]
                )
              terminator: <Op_Semi ";">
            )
            (Sentence
              child: 
                (Assignment
                  keyword: Assign_None
                  pairs: [(assign_pair lhs:(LhsName name:total) op:Equal rhs:{(0)} spids:[256])]
                  spids: [256]
                )
              terminator: <Op_Semi ";">
            )
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:content) op:Equal rhs:{(DQ )} spids:[260])]
              spids: [260]
            )
            (Sentence
              child: 
                (Assignment
                  keyword: Assign_None
                  pairs: [(assign_pair lhs:(LhsName name:ya) op:Equal rhs:{(DQ )} spids:[270])]
                  spids: [270]
                )
              terminator: <Op_Semi ";">
            )
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:icase) op:Equal rhs:{(DQ )} spids:[275])]
              spids: [275]
            )
            (While
              cond: [
                (Sentence
                  child: (C {(Lit_Other "[")} {(-z)} {(DQ ($ VSub_Name "$ya"))} {(Lit_Other "]")})
                  terminator: <Op_Semi ";">
                )
              ]
              body: 
                (DoGroup
                  children: [
                    (Case
                      to_match: {(DQ ($ VSub_Number "$1"))}
                      arms: [
                        (case_arm
                          pat_list: [{(-name) (Lit_Other "=") (Lit_Other "*")}]
                          action: [
                            (Sentence
                              child: 
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:name)
                                      op: Equal
                                      rhs: 
                                        {
                                          (CommandSubPart
                                            command_list: 
                                              (CommandList
                                                children: [
                                                  (Pipeline
                                                    children: [
                                                      (C {(echo)} {(DQ ($ VSub_Number "$1"))})
                                                      (C {(sed)} {(-e)} {(SQ <"s/-name=//">)})
                                                    ]
                                                    negated: False
                                                  )
                                                ]
                                              )
                                            left_token: <Left_Backtick "`">
                                            spids: [311 327]
                                          )
                                        }
                                      spids: [310]
                                    )
                                  ]
                                  spids: [310]
                                )
                              terminator: <Op_Semi ";">
                            )
                            (C {(shift)})
                          ]
                          spids: [305 308 331 -1]
                        )
                        (case_arm
                          pat_list: [{(-class) (Lit_Other "=") (Lit_Other "*")}]
                          action: [
                            (Sentence
                              child: 
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:class)
                                      op: Equal
                                      rhs: 
                                        {
                                          (CommandSubPart
                                            command_list: 
                                              (CommandList
                                                children: [
                                                  (Pipeline
                                                    children: [
                                                      (C {(echo)} {(DQ ($ VSub_Number "$1"))})
                                                      (C {(sed)} {(-e)} {(SQ <"s/-class=//">)})
                                                    ]
                                                    negated: False
                                                  )
                                                ]
                                              )
                                            left_token: <Left_Backtick "`">
                                            spids: [340 356]
                                          )
                                        }
                                      spids: [339]
                                    )
                                  ]
                                  spids: [339]
                                )
                              terminator: <Op_Semi ";">
                            )
                            (C {(shift)})
                          ]
                          spids: [334 337 360 -1]
                        )
                        (case_arm
                          pat_list: [{(-ierror) (Lit_Other "=") (Lit_Other "*")}]
                          action: [
                            (Sentence
                              child: 
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:ereg)
                                      op: Equal
                                      rhs: 
                                        {
                                          (CommandSubPart
                                            command_list: 
                                              (CommandList
                                                children: [
                                                  (Pipeline
                                                    children: [
                                                      (C {(echo)} {(DQ ($ VSub_Number "$1"))})
                                                      (C {(sed)} {(-e)} {(SQ <"s/-ierror=//">)})
                                                    ]
                                                    negated: False
                                                  )
                                                ]
                                              )
                                            left_token: <Left_Backtick "`">
                                            spids: [369 385]
                                          )
                                        }
                                      spids: [368]
                                    )
                                  ]
                                  spids: [368]
                                )
                              terminator: <Op_Semi ";">
                            )
                            (Sentence
                              child: 
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:icase)
                                      op: Equal
                                      rhs: {(DQ (-i))}
                                      spids: [388]
                                    )
                                  ]
                                  spids: [388]
                                )
                              terminator: <Op_Semi ";">
                            )
                            (C {(shift)})
                          ]
                          spids: [363 366 395 -1]
                        )
                        (case_arm
                          pat_list: [{(-error) (Lit_Other "=") (Lit_Other "*")}]
                          action: [
                            (Sentence
                              child: 
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:ereg)
                                      op: Equal
                                      rhs: 
                                        {
                                          (CommandSubPart
                                            command_list: 
                                              (CommandList
                                                children: [
                                                  (Pipeline
                                                    children: [
                                                      (C {(echo)} {(DQ ($ VSub_Number "$1"))})
                                                      (C {(sed)} {(-e)} {(SQ <"s/-error=//">)})
                                                    ]
                                                    negated: False
                                                  )
                                                ]
                                              )
                                            left_token: <Left_Backtick "`">
                                            spids: [404 420]
                                          )
                                        }
                                      spids: [403]
                                    )
                                  ]
                                  spids: [403]
                                )
                              terminator: <Op_Semi ";">
                            )
                            (C {(shift)})
                          ]
                          spids: [398 401 424 -1]
                        )
                        (case_arm
                          pat_list: [{(-output) (Lit_Other "=") (Lit_Other "*")}]
                          action: [
                            (Sentence
                              child: 
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:juDIR)
                                      op: Equal
                                      rhs: 
                                        {
                                          (CommandSubPart
                                            command_list: 
                                              (CommandList
                                                children: [
                                                  (Pipeline
                                                    children: [
                                                      (C {(echo)} {(DQ ($ VSub_Number "$1"))})
                                                      (C {(sed)} {(-e)} {(SQ <"s/-output=//">)})
                                                    ]
                                                    negated: False
                                                  )
                                                ]
                                              )
                                            left_token: <Left_Backtick "`">
                                            spids: [433 449]
                                          )
                                        }
                                      spids: [432]
                                    )
                                  ]
                                  spids: [432]
                                )
                              terminator: <Op_Semi ";">
                            )
                            (C {(shift)})
                          ]
                          spids: [427 430 453 -1]
                        )
                        (case_arm
                          pat_list: [{(Lit_Other "*")}]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:ya)
                                  op: Equal
                                  rhs: {(1)}
                                  spids: [459]
                                )
                              ]
                              spids: [459]
                            )
                          ]
                          spids: [456 457 461 -1]
                        )
                      ]
                      spids: [296 302 464]
                    )
                  ]
                  spids: [293 467]
                )
            )
            (AndOr
              children: [(C {(mkdir)} {(-p)} {(DQ ($ VSub_Name "$juDIR"))}) (C {(exit)})]
              op_id: Op_DPipe
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other "[")} {(-z)} {(DQ ($ VSub_Name "$name"))} {(Lit_Other "]")})
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:name)
                          op: Equal
                          rhs: {(DQ ($ VSub_Name "$asserts") (-) ($ VSub_Number "$1"))}
                          spids: [508]
                        )
                      ]
                      spids: [508]
                    )
                    (C {(shift)})
                  ]
                  spids: [-1 505]
                )
              ]
              spids: [-1 519]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (BoolBinary
                              op_id: BoolBinary_GlobEqual
                              left: {(DQ ($ VSub_Name "$class"))}
                              right: {(DQ )}
                            )
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:class)
                          op: Equal
                          rhs: {(DQ (default))}
                          spids: [542]
                        )
                      ]
                      spids: [542]
                    )
                  ]
                  spids: [-1 539]
                )
              ]
              spids: [-1 548]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:suite)
                  op: Equal
                  rhs: {($ VSub_Name "$class")}
                  spids: [552]
                )
              ]
              spids: [552]
            )
            (AndOr
              children: [
                (C {(Lit_Other "[")} {(-z)} {(DQ ($ VSub_Number "$1"))} {(Lit_Other "]")})
                (ControlFlow token:<ControlFlow_Return return>)
              ]
              op_id: Op_DAmp
            )
            (Sentence
              child: 
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:cmd)
                      op: Equal
                      rhs: {(DQ ($ VSub_Number "$1"))}
                      spids: [576]
                    )
                  ]
                  spids: [576]
                )
              terminator: <Op_Semi ";">
            )
            (C {(shift)})
            (While
              cond: [(C {(Lit_Other "[")} {(-n)} {(DQ ($ VSub_Number "$1"))} {(Lit_Other "]")})]
              body: 
                (DoGroup
                  children: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:cmd)
                          op: Equal
                          rhs: 
                            {
                              (DQ ($ VSub_Name "$cmd") (" ") 
                                (EscapedLiteralPart
                                  token: <Lit_EscapedChar "\\\"">
                                ) ($ VSub_Number "$1") (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">)
                              )
                            }
                          spids: [601]
                        )
                      ]
                      spids: [601]
                    )
                    (C {(shift)})
                  ]
                  spids: [598 614]
                )
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:outf)
                  op: Equal
                  rhs: {(/var/tmp/ju) ($ VSub_Dollar "$$") (.txt)}
                  spids: [622]
                )
              ]
              spids: [622]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:errf)
                  op: Equal
                  rhs: {(/var/tmp/ju) ($ VSub_Dollar "$$") (-err.txt)}
                  spids: [628]
                )
              ]
              spids: [628]
            )
            (SimpleCommand
              redirects: [
                (Redir
                  op_id: Redir_Great
                  fd: -1
                  arg_word: {($ VSub_Name "$outf")}
                  spids: [634]
                )
              ]
            )
            (Pipeline
              children: [(C {(echo)} {(DQ )}) (C {(tee)} {(-a)} {($ VSub_Name "$outf")})]
              negated: False
            )
            (Pipeline
              children: [
                (C {(echo)} 
                  {
                    (DQ ("+++ Running case: ") ($ VSub_Name "$class") (.) ($ VSub_Name "$name") (" "))
                  }
                )
                (C {(tee)} {(-a)} {($ VSub_Name "$outf")})
              ]
              negated: False
            )
            (Pipeline
              children: [
                (C {(echo)} 
                  {(DQ ("+++ working dir: ")) 
                    (CommandSubPart
                      command_list: (CommandList children:[(C {(pwd)})])
                      left_token: <Left_Backtick "`">
                      spids: [676 678]
                    )
                  }
                )
                (C {(tee)} {(-a)} {($ VSub_Name "$outf")})
              ]
              negated: False
            )
            (Pipeline
              children: [
                (C {(echo)} {(DQ ("+++ command: ") ($ VSub_Name "$cmd"))})
                (C {(tee)} {(-a)} {($ VSub_Name "$outf")})
              ]
              negated: False
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:ini)
                  op: Equal
                  rhs: 
                    {
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [
                              (C {($ VSub_Name "$date")} 
                                {(Lit_Other "+") (Lit_Other "%") (s.) (Lit_Other "%") (N)}
                              )
                            ]
                          )
                        left_token: <Left_Backtick "`">
                        spids: [706 714]
                      )
                    }
                  spids: [705]
                )
              ]
              spids: [705]
            )
            (Subshell
              child: 
                (Pipeline
                  children: [
                    (Subshell
                      child: 
                        (Pipeline
                          children: [
                            (C {(eVal)} {(DQ ($ VSub_Name "$cmd"))})
                            (C {(tee)} {(-a)} {($ VSub_Name "$outf")})
                          ]
                          negated: False
                        )
                      redirects: [
                        (Redir
                          op_id: Redir_GreatAnd
                          fd: 3
                          arg_word: {(1)}
                          spids: [743]
                        )
                        (Redir
                          op_id: Redir_GreatAnd
                          fd: 1
                          arg_word: {(2)}
                          spids: [746]
                        )
                        (Redir
                          op_id: Redir_GreatAnd
                          fd: 2
                          arg_word: {(3)}
                          spids: [749]
                        )
                      ]
                      spids: [727 741]
                    )
                    (C {(tee)} {($ VSub_Name "$errf")})
                  ]
                  negated: False
                )
              redirects: [
                (Redir op_id:Redir_GreatAnd fd:3 arg_word:{(1)} spids:[759])
                (Redir op_id:Redir_GreatAnd fd:1 arg_word:{(2)} spids:[762])
                (Redir op_id:Redir_GreatAnd fd:2 arg_word:{(3)} spids:[765])
              ]
              spids: [725 757]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:evErr)
                  op: Equal
                  rhs: 
                    {
                      (CommandSubPart
                        command_list: (CommandList children:[(C {(cat)} {($ VSub_Name "$errfile")})])
                        left_token: <Left_Backtick "`">
                        spids: [770 774]
                      )
                    }
                  spids: [769]
                )
              ]
              spids: [769]
            )
            (C {(rm)} {(-f)} {($ VSub_Name "$errfile")})
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:end)
                  op: Equal
                  rhs: 
                    {
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [
                              (C {($ VSub_Name "$date")} 
                                {(Lit_Other "+") (Lit_Other "%") (s.) (Lit_Other "%") (N)}
                              )
                            ]
                          )
                        left_token: <Left_Backtick "`">
                        spids: [785 793]
                      )
                    }
                  spids: [784]
                )
              ]
              spids: [784]
            )
            (Pipeline
              children: [
                (C {(echo)} {(DQ ("+++ exit code: ") ($ VSub_Name "$evErr"))})
                (C {(tee)} {(-a)} {($ VSub_Name "$outf")})
              ]
              negated: False
            )
            (AndOr
              children: [
                (C {(Lit_Other "[")} {($ VSub_Name "$evErr")} {(KW_Bang "!") (Lit_Other "=")} {(0)} 
                  {(Lit_Other "]")}
                )
                (AndOr
                  children: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [(assign_pair lhs:(LhsName name:err) op:Equal rhs:{(1)} spids:[830])]
                      spids: [830]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [(assign_pair lhs:(LhsName name:err) op:Equal rhs:{(0)} spids:[835])]
                      spids: [835]
                    )
                  ]
                  op_id: Op_DPipe
                )
              ]
              op_id: Op_DAmp
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:out)
                  op: Equal
                  rhs: 
                    {
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [
                              (Pipeline
                                children: [
                                  (C {(cat)} {($ VSub_Name "$outf")})
                                  (C {(sed)} {(-e)} {(SQ <"s/^\\([^+]\\)/| \\1/g">)})
                                ]
                                negated: False
                              )
                            ]
                          )
                        left_token: <Left_Backtick "`">
                        spids: [840 854]
                      )
                    }
                  spids: [839]
                )
              ]
              spids: [839]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other "[")} {($ VSub_Name "$err")} {(Lit_Other "=")} {(0)} {(-a)} {(-n)} 
                          {(DQ ($ VSub_Name "$ereg"))} {(Lit_Other "]")}
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:H)
                          op: Equal
                          rhs: 
                            {
                              (CommandSubPart
                                command_list: 
                                  (CommandList
                                    children: [
                                      (Pipeline
                                        children: [
                                          (C {(echo)} {(DQ ($ VSub_Name "$out"))})
                                          (C {(egrep)} {($ VSub_Name "$icase")} 
                                            {(DQ ($ VSub_Name "$ereg"))}
                                          )
                                        ]
                                        negated: False
                                      )
                                    ]
                                  )
                                left_token: <Left_Backtick "`">
                                spids: [882 898]
                              )
                            }
                          spids: [881]
                        )
                      ]
                      spids: [881]
                    )
                    (AndOr
                      children: [
                        (C {(Lit_Other "[")} {(-n)} {(DQ ($ VSub_Name "$H"))} {(Lit_Other "]")})
                        (Assignment
                          keyword: Assign_None
                          pairs: [(assign_pair lhs:(LhsName name:err) op:Equal rhs:{(1)} spids:[913])]
                          spids: [913]
                        )
                      ]
                      op_id: Op_DAmp
                    )
                  ]
                  spids: [-1 878]
                )
              ]
              spids: [-1 917]
            )
            (AndOr
              children: [
                (C {(Lit_Other "[")} {($ VSub_Name "$err")} {(KW_Bang "!") (Lit_Other "=")} {(0)} 
                  {(Lit_Other "]")}
                )
                (Pipeline
                  children: [
                    (C {(echo)} {(DQ ("+++ error: ") ($ VSub_Name "$err"))})
                    (C {(tee)} {(-a)} {($ VSub_Name "$outf")})
                  ]
                  negated: False
                )
              ]
              op_id: Op_DAmp
            )
            (C {(rm)} {(-f)} {($ VSub_Name "$outf")})
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:errMsg)
                  op: Equal
                  rhs: 
                    {
                      (CommandSubPart
                        command_list: (CommandList children:[(C {(cat)} {($ VSub_Name "$errf")})])
                        left_token: <Left_Backtick "`">
                        spids: [958 962]
                      )
                    }
                  spids: [957]
                )
              ]
              spids: [957]
            )
            (C {(rm)} {(-f)} {($ VSub_Name "$errf")})
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:asserts)
                  op: Equal
                  rhs: 
                    {
                      (ArithSubPart
                        anode: 
                          (ArithBinary
                            op_id: Arith_Plus
                            left: (ArithWord w:{($ VSub_Name "$asserts")})
                            right: (ArithWord w:{(Lit_Digits 1)})
                          )
                        spids: [977 982]
                      )
                    }
                  spids: [976]
                )
              ]
              spids: [976]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:errors)
                  op: Equal
                  rhs: 
                    {
                      (ArithSubPart
                        anode: 
                          (ArithBinary
                            op_id: Arith_Plus
                            left: (ArithWord w:{($ VSub_Name "$errors")})
                            right: (ArithWord w:{($ VSub_Name "$err")})
                          )
                        spids: [986 991]
                      )
                    }
                  spids: [985]
                )
              ]
              spids: [985]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:time)
                  op: Equal
                  rhs: 
                    {
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [
                              (Pipeline
                                children: [
                                  (C {(echo)} {(DQ ($ VSub_Name "$end") (" - ") ($ VSub_Name "$ini"))})
                                  (C {(bc)} {(-l)})
                                ]
                                negated: False
                              )
                            ]
                          )
                        left_token: <Left_Backtick "`">
                        spids: [995 1009]
                      )
                    }
                  spids: [994]
                )
              ]
              spids: [994]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:total)
                  op: Equal
                  rhs: 
                    {
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [
                              (Pipeline
                                children: [
                                  (C {(echo)} 
                                    {(DQ ($ VSub_Name "$total") (" + ") ($ VSub_Name "$time"))}
                                  )
                                  (C {(bc)} {(-l)})
                                ]
                                negated: False
                              )
                            ]
                          )
                        left_token: <Left_Backtick "`">
                        spids: [1013 1027]
                      )
                    }
                  spids: [1012]
                )
              ]
              spids: [1012]
            )
            (AndOr
              children: [
                (C {(Lit_Other "[")} {($ VSub_Name "$err")} {(Lit_Other "=")} {(0)} {(Lit_Other "]")})
                (AndOr
                  children: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:failure)
                          op: Equal
                          rhs: {(DQ )}
                          spids: [1051]
                        )
                      ]
                      spids: [1051]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:failure)
                          op: Equal
                          rhs: 
                            {
                              (DQ ("\n") ("      <failure type=") 
                                (EscapedLiteralPart
                                  token: <Lit_EscapedChar "\\\"">
                                ) (ScriptError) (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) (" message=") 
                                (EscapedLiteralPart
                                  token: <Lit_EscapedChar "\\\"">
                                ) ("Script Error") (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) (">\n") ("      <![CDATA[\n") 
                                ("      ") ($ VSub_Name "$errMsg") ("\n") ("      ]]>\n") ("      </failure>\n") ("  ")
                              )
                            }
                          spids: [1057]
                        )
                      ]
                      spids: [1057]
                    )
                  ]
                  op_id: Op_DPipe
                )
              ]
              op_id: Op_DAmp
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:content)
                  op: Equal
                  rhs: 
                    {
                      (DQ ($ VSub_Name "$content") ("\n") ("    <testcase assertions=") 
                        (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) (1) (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) (" name=") 
                        (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) ($ VSub_Name "$name") (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) (" time=") 
                        (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) ($ VSub_Name "$time") (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) (" classname=") 
                        (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) ($ VSub_Name "$class") (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) (">\n") ("    ") 
                        ($ VSub_Name "$failure") ("\n") ("    <system-err>\n") ("<![CDATA[\n") ($ VSub_Name "$errMsg") ("\n") ("]]>\n") 
                        ("    </system-err>\n") ("    </testcase>\n") ("  ")
                      )
                    }
                  spids: [1083]
                )
              ]
              spids: [1083]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (BoolUnary
                              op_id: BoolUnary_e
                              child: 
                                {(DQ ($ VSub_Name "$juDIR") (/junit_) ($ VSub_Name "$suite") (.xml))}
                            )
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:failCount)
                          op: Equal
                          rhs: 
                            {
                              (CommandSubPart
                                command_list: 
                                  (CommandList
                                    children: [
                                      (C {(sed)} {(-n)} 
                                        {
                                          (DQ ("s/.*testsuite.*failures=") 
                                            (EscapedLiteralPart
                                              token: <Lit_EscapedChar "\\\"">
                                            ) (EscapedLiteralPart token:<Lit_EscapedChar "\\(">) ("[0-9]*") 
                                            (EscapedLiteralPart
                                              token: <Lit_EscapedChar "\\)">
                                            ) (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) (".*/") 
                                            (EscapedLiteralPart
                                              token: <Lit_EscapedChar "\\1">
                                            ) (/p)
                                          )
                                        } {(DQ ($ VSub_Name "$juDIR") (/junit_) ($ VSub_Name "$suite") (.xml))}
                                      )
                                    ]
                                  )
                                left_token: <Left_Backtick "`">
                                spids: [1147 1170]
                              )
                            }
                          spids: [1146]
                        )
                      ]
                      spids: [1146]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:errors)
                          op: Equal
                          rhs: 
                            {
                              (ArithSubPart
                                anode: 
                                  (ArithBinary
                                    op_id: Arith_Plus
                                    left: (ArithWord w:{($ VSub_Name "$failCount")})
                                    right: (ArithWord w:{($ VSub_Name "$errors")})
                                  )
                                spids: [1174 1179]
                              )
                            }
                          spids: [1173]
                        )
                      ]
                      spids: [1173]
                    )
                    (C {(sed)} {(-i)} 
                      {
                        (DQ ("0,/failures=") (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) 
                          ($ VSub_Name "$failCount") (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) ("/ s/failures=") 
                          (EscapedLiteralPart
                            token: <Lit_EscapedChar "\\\"">
                          ) ($ VSub_Name "$failCount") (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) ("/failures=") 
                          (EscapedLiteralPart
                            token: <Lit_EscapedChar "\\\"">
                          ) ($ VSub_Name "$errors") (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) (/)
                        )
                      } {(DQ ($ VSub_Name "$juDIR") (/junit_) ($ VSub_Name "$suite") (.xml))}
                    )
                    (C {(sed)} {(-i)} 
                      {
                        (DQ ("0,/errors=") (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) 
                          ($ VSub_Name "$failCount") (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) ("/ s/errors=") 
                          (EscapedLiteralPart
                            token: <Lit_EscapedChar "\\\"">
                          ) ($ VSub_Name "$failCount") (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) ("/errors=") 
                          (EscapedLiteralPart
                            token: <Lit_EscapedChar "\\\"">
                          ) ($ VSub_Name "$errors") (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) (/)
                        )
                      } {(DQ ($ VSub_Name "$juDIR") (/junit_) ($ VSub_Name "$suite") (.xml))}
                    )
                    (C {(sed)} {(-i)} {(DQ ("s^</testsuite>^^g"))} 
                      {($ VSub_Name "$juDIR") (/junit_) ($ VSub_Name "$suite") (.xml)}
                    )
                    (C {(sed)} {(-i)} {(DQ ("s^</testsuites>^^g"))} 
                      {($ VSub_Name "$juDIR") (/junit_) ($ VSub_Name "$suite") (.xml)}
                    )
                    (SimpleCommand
                      words: [{(cat)}]
                      redirects: [
                        (HereDoc
                          op_id: Redir_DLess
                          fd: -1
                          body: 
                            {
                              (DQ ("     ") ($ VSub_Name "$content") ("\n") ("    </testsuite>\n") 
                                ("</testsuites>\n")
                              )
                            }
                          do_expansion: True
                          here_end: EOF
                          was_filled: True
                          spids: [1276]
                        )
                        (Redir
                          op_id: Redir_DGreat
                          fd: -1
                          arg_word: 
                            {(DQ ($ VSub_Name "$juDIR") (/junit_) ($ VSub_Name "$suite") (.xml))}
                          spids: [1279]
                        )
                      ]
                    )
                  ]
                  spids: [-1 1139]
                )
              ]
              else_action: [
                (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 failures=") (Right_DoubleQuote "\"") ($ VSub_Name "$errors") (Right_DoubleQuote "\"") (" assertions=") 
                            (Right_DoubleQuote "\"") ($ VSub_Name "$assertions") (Right_DoubleQuote "\"") (" name=") (Right_DoubleQuote "\"") 
                            ($ VSub_Name "$suite") (Right_DoubleQuote "\"") (" tests=") (Right_DoubleQuote "\"") (1) (Right_DoubleQuote "\"") (" errors=") 
                            (Right_DoubleQuote "\"") ($ VSub_Name "$errors") (Right_DoubleQuote "\"") (" time=") (Right_DoubleQuote "\"") 
                            ($ VSub_Name "$total") (Right_DoubleQuote "\"") (">\n") ("    ") ($ VSub_Name "$content") ("\n") ("    </testsuite>\n") 
                            ("</testsuites>\n")
                          )
                        }
                      do_expansion: True
                      here_end: EOF
                      was_filled: True
                      spids: [1304]
                    )
                    (Redir
                      op_id: Redir_Great
                      fd: -1
                      arg_word: {(DQ ($ VSub_Name "$juDIR") (/junit_) ($ VSub_Name "$suite") (.xml))}
                      spids: [1307]
                    )
                  ]
                )
              ]
              spids: [1295 1357]
            )
            (ControlFlow token:<ControlFlow_Return return> arg_word:{($ VSub_Name "$err")})
          ]
          spids: [219]
        )
      spids: [213 218]
    )
  ]
)