(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:[75])] ) terminator: <Op_Semi ";"> ) (Sentence child:(C {(exit)} {(1)}) terminator:<Op_Semi ";">) ] spids: [67] ) ] 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:[111])] ) terminator: <Op_Semi ";"> ) (Sentence child:(C {(exit)} {(1)}) terminator:<Op_Semi ";">) ] spids: [103] ) ] op_id: Op_DPipe ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:PLATFORM) op: Equal rhs: { (DQ (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [(C {(uname)} {(-s)}) (C {(tr)} {(SQ <A-Z>)} {(SQ <a-z>)})] negated: False ) ] ) left_token: <Left_CommandSub "$("> spids: [128 144] ) ) } spids: [126] ) ] spids: [126] ) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_GlobEqual left: {(DQ ($ VSub_Name "$PLATFORM"))} right: {(DQ (linux))} ) ) terminator: <Op_Semi ";"> ) ] action: [ (FuncDef name: statfmt body: (BraceGroup children: [(C {(stat)} {(-c)} {(DQ ("%s"))} {($ VSub_Number "$1")})] spids: [173] ) spids: [167 172] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:MD5SUM) op:Equal rhs:{(md5sum)} spids:[190])] spids: [190] ) ] spids: [-1 164] ) ] else_action: [ (FuncDef name: statfmt body: (BraceGroup children: [(C {(stat)} {(-f)} {(DQ ("%z"))} {($ VSub_Number "$1")})] spids: [202] ) spids: [196 201] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:MD5SUM) op:Equal rhs:{(/sbin/md5)} spids:[219])] spids: [219] ) ] spids: [193 222] ) ] )