(CommandList
  children: [
    (AndOr
      children: [
        (C {(Lit_Other "[")} {(-z)} {(DQ ($ VSub_Name "$FORK"))} {(Lit_Other "]")})
        (Assignment
          keyword: Assign_None
          pairs: [
            (assign_pair
              lhs: (LeftVar name:TIMEOUT)
              rhs: 
                {
                  (BracedVarSub
                    token: <VSub_Name TIMEOUT>
                    suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(180)})
                    spids: [25 29]
                  )
                }
              spids: [24]
            )
          ]
          spids: [24]
        )
      ]
      op_id: Op_DPipe
    )
    (AndOr
      children: [(C {(.)} {(sources/utility_functions.sh)}) (C {(exit)} {(1)})]
      op_id: Op_DPipe
    )
    (FuncDef
      name: dotest
      body: 
        (BraceGroup
          children: [
            (AndOr
              children: [
                (C {(Lit_Other "[")} {(-z)} {(DQ ($ VSub_Name "$FORK"))} {(Lit_Other "]")})
                (C {(echo)} {(-n)} {(DQ ("Testing ") ($ VSub_Number "$1") (":"))})
              ]
              op_id: Op_DAmp
            )
            (AndOr
              children: [
                (C {(Lit_Other "[")} {(KW_Bang "!")} {(-z)} {(DQ ($ VSub_Name "$VERBOSE"))} 
                  {(Lit_Other "]")}
                )
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LeftVar name:VERBOSITY)
                      rhs: {(DQ ("tee >(cat >&2) |"))}
                      spids: [89]
                    )
                  ]
                  spids: [89]
                )
              ]
              op_id: Op_DAmp
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LeftVar name:RESULT)
                  rhs: 
                    {
                      (DQ 
                        (CommandSubPart
                          command_list: 
                            (Pipeline
                              children: [
                                (SimpleCommand
                                  words: [{(more/smoketest.sh)} {(DQ ($ VSub_Number "$1"))}]
                                  redirects: [
                                    (Redirect
                                      op_id: Redir_GreatAnd
                                      arg_word: {(1)}
                                      fd: 2
                                      spids: [104]
                                    )
                                  ]
                                )
                                (C {(eval)} {(DQ ($ VSub_Name "$VERBOSITY") (" grep 'Hello world!'"))})
                              ]
                              negated: False
                            )
                          spids: [97 115]
                        )
                      )
                    }
                  spids: [95]
                )
              ]
              spids: [95]
            )
            (AndOr
              children: [
                (C {(Lit_Other "[")} {(-z)} {(DQ ($ VSub_Name "$RESULT"))} {(Lit_Other "]")})
                (AndOr
                  children: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [(assign_pair lhs:(LeftVar name:RESULT) rhs:{(DQ (FAIL))} spids:[131])]
                      spids: [131]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [(assign_pair lhs:(LeftVar name:RESULT) rhs:{(DQ (PASS))} spids:[138])]
                      spids: [138]
                    )
                  ]
                  op_id: Op_DPipe
                )
              ]
              op_id: Op_DAmp
            )
            (AndOr
              children: [
                (C {(Lit_Other "[")} {(-z)} {(DQ ($ VSub_Name "$FORK"))} {(Lit_Other "]")})
                (AndOr
                  children: [
                    (C {(echo)} {(DQ ($ VSub_Name "$RESULT"))})
                    (C {(echo)} {(DQ ("Testing ") ($ VSub_Number "$1") (":") ($ VSub_Name "$RESULT"))})
                  ]
                  op_id: Op_DPipe
                )
              ]
              op_id: Op_DAmp
            )
            (SimpleCommand
              words: [{(rm)} {(-f)} {(build/system-image-) (DQ ($ VSub_Number "$1")) (/hdb.img)}]
              redirects: [(Redirect op_id:Redir_Great arg_word:{(/dev/null)} fd:2 spids:[184])]
            )
          ]
          spids: [49]
        )
      spids: [43 48]
    )
    (ForEach
      iter_name: i
      iter_words: [
        {
          (CommandSubPart
            command_list: 
              (Pipeline
                children: [
                  (C {(ls)} {(-d)} {(sources/targets/) (Lit_Other "*")})
                  (C {(sed)} {(SQ <"s@.*/@@">)})
                  (C {(grep)} {(-v)} {(DQ ("^hw-"))})
                ]
                negated: False
              )
            spids: [203 228]
          )
        }
      ]
      do_arg_iter: False
      body: 
        (DoGroup
          child: 
            (If
              arms: [
                (if_arm
                  cond: 
                    (C {(Lit_Other "[")} {(-e)} {(DQ (build/system-image-) ($ VSub_Name "$i"))} 
                      {(Lit_Other "]")}
                    )
                  action: (C {(maybe_fork)} {(DQ ("dotest ") ($ VSub_Name "$i"))})
                  spids: [-1 247]
                )
              ]
              else_action: (C {(echo)} {(DQ ("Testing ") ($ VSub_Name "$i") (":NONE"))})
              spids: [258 270]
            )
          spids: [230 272]
        )
      spids: [202 -1]
    )
    (C {(wait)})
  ]
)