(CommandList
  children: [
    (C {(set)} {(-e)})
    (C {(cd)} 
      {
        (DQ 
          (CommandSubPart
            command_list: (CommandList children:[(C {(dirname)} {(DQ ($ VSub_Number "$0"))})])
            left_token: <Left_CommandSub "$(">
            spids: [20 26]
          ) (/..)
        )
      }
    )
    (AndOr
      children: [
        (C {(Lit_Other "[")} {(-z)} {(DQ ($ VSub_Name "$DEBUG"))} {(Lit_Other "]")})
        (C {(set)} {(-x)})
      ]
      op_id: Op_DPipe
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:RACK_ROOT)
          op: Equal
          rhs: 
            {
              (DQ 
                (CommandSubPart
                  command_list: 
                    (CommandList
                      children: [
                        (AndOr
                          children: [
                            (C {(cd)} 
                              {
                                (DQ 
                                  (CommandSubPart
                                    command_list: 
                                      (CommandList
                                        children: [(C {(dirname)} {(DQ ($ VSub_Number "$0"))})]
                                      )
                                    left_token: <Left_CommandSub "$(">
                                    spids: [54 60]
                                  )
                                ) (/..)
                              }
                            )
                            (C {(pwd)})
                          ]
                          op_id: Op_DAmp
                        )
                      ]
                    )
                  left_token: <Left_CommandSub "$(">
                  spids: [50 67]
                )
              )
            }
          spids: [48]
        )
      ]
      spids: [48]
    )
    (C {(export)} {(RACK_ROOT)})
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (AndOr
                  children: [
                    (C {(Lit_Other "[")} {(DQ ($ VSub_Name "$RAILS_ENV"))} {(Lit_Other "=")} {(DQ (test))} 
                      {(Lit_Other "]")}
                    )
                    (C {(Lit_Other "[")} {(DQ ($ VSub_Name "$RACK_ENV"))} {(Lit_Other "=")} {(DQ (test))} 
                      {(Lit_Other "]")}
                    )
                  ]
                  op_id: Op_DPipe
                )
              terminator: <Op_Semi ";">
            )
          ]
          action: [(C {(script/setup)})]
          spids: [-1 108]
        )
      ]
      else_action: [
        (C {(export)} {(Lit_VarLike "RAILS_ENV=") (DQ (test))} {(Lit_VarLike "RACK_ENV=") (DQ (test))})
        (C {(script/update)})
      ]
      spids: [125 164]
    )
    (C {(echo)} {(DQ ("==> Running tests\u2026"))})
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: (C {(Lit_Other "[")} {(-n)} {(DQ ($ VSub_Number "$1"))} {(Lit_Other "]")})
              terminator: <Op_Semi ";">
            )
          ]
          action: [(C {(bin/rake)} {(test)} {(DQ ($ VSub_Number "$1"))})]
          spids: [-1 187]
        )
      ]
      else_action: [(C {(bin/rake)} {(test)})]
      spids: [202 209]
    )
  ]
)