(CommandList children: [ (AndOr ops: [Op_DAmp] 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:16777215 arg_word:{(2)} spids:[72])] ) terminator: <Op_Semi ';'> ) (Sentence child: (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)}) terminator: <Op_Semi ';'> ) ] spids: [64] ) ] ) (AndOr ops: [Op_DPipe] 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:16777215 arg_word:{(2)} spids:[108])] ) terminator: <Op_Semi ';'> ) (Sentence child: (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)}) terminator: <Op_Semi ';'> ) ] spids: [100] ) ] ) (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] ) ] )