(CommandList
  children: [
    (AndOr
      children: [
        (C {(Lit_Other "[")} {(-z)} {(DQ ($ VSub_Name "$TEST_SRCDIR"))} {(Lit_Other "]")})
        (BraceGroup
          children: [
            (Sentence
              child: 
                (SimpleCommand
                  words: [{(echo)} {(DQ ("TEST_SRCDIR not set!"))}]
                  redirects: [(Redir op_id:Redir_GreatAnd fd:-1 arg_word:{(2)} spids:[72])]
                )
              terminator: <Op_Semi ";">
            )
            (Sentence child:(C {(exit)} {(1)}) terminator:<Op_Semi ";">)
          ]
          spids: [64]
        )
      ]
      op_id: Op_DAmp
    )
    (AndOr
      children: [
        (C {(source)} {(DQ (${ VSub_Name TEST_SRCDIR) (/io_bazel/src/test/shell/unittest.bash))})
        (BraceGroup
          children: [
            (Sentence
              child: 
                (SimpleCommand
                  words: [{(echo)} {(DQ ("Failed to source unittest.bash"))}]
                  redirects: [(Redir op_id:Redir_GreatAnd fd:-1 arg_word:{(2)} spids:[108])]
                )
              terminator: <Op_Semi ";">
            )
            (Sentence child:(C {(exit)} {(1)}) terminator:<Op_Semi ";">)
          ]
          spids: [100]
        )
      ]
      op_id: Op_DPipe
    )
    (FuncDef
      name: set_up
      body: 
        (BraceGroup
          children: [
            (C {(mkdir)} {(-p)} {($ VSub_Name "$TEST_TMPDIR") (/workspace)})
            (C {(cd)} {($ VSub_Name "$TEST_TMPDIR") (/workspace)})
            (C {(touch)} {($ VSub_Name "$TEST_TMPDIR") (/workspace/WORKSPACE)})
          ]
          spids: [124]
        )
      spids: [120 123]
    )
    (FuncDef
      name: tear_down
      body: 
        (BraceGroup
          children: [(C {(rm)} {(-fr)} {($ VSub_Name "$TEST_TMPDIR") (/workspace/) (Lit_Other "*")})]
          spids: [153]
        )
      spids: [149 152]
    )
  ]
)