(command.CommandList children: [ (command.CommandList children: [ (command.Sentence child: (C {<.>} { (DQ (braced_var_sub token: <Id.VSub_Name srcdir> suffix_op: (suffix_op.Unary op_id:Id.VTest_Equals arg_word:{<.>}) ) <'/tests/init.sh'> ) } ) terminator: <Id.Op_Semi _> ) (C {<path_prepend_>} {<'./src'>}) ] ) (C {<print_ver_>} {<df>}) (C {<require_gcc_shared_>}) (command.AndOr ops:[Id.Op_DPipe] children:[(C {<df>}) (C {<skip_>} {(DQ <'df fails'>)})]) (command.AndOr ops: [Id.Op_DPipe] children: [ (command.Simple words: [{<cat>}] redirects: [ (redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<k.c>}) (redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {(SQ <EOF>)} here_end_span_id: 116 stdin_parts: [ <'#include <stdio.h>\n'> <'#include <errno.h>\n'> <'#include <mntent.h>\n'> <'\n'> <'struct mntent *getmntent (FILE *fp)\n'> <'{\n'> <' /* Prove that LD_PRELOAD works. */\n'> <' static int done = 0;\n'> <' if (!done)\n'> <' {\n'> <' fclose (fopen ("x", "w"));\n'> <' ++done;\n'> <' }\n'> <' /* Now simulate the failure. */\n'> <' errno = ENOENT;\n'> <' return NULL;\n'> <'}\n'> ] ) ) ] do_fork: T ) (C {<framework_failure_>}) ] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {($ Id.VSub_DollarName '$CC')} {<-shared>} {<-fPIC>} {<-ldl>} {<-O2>} {<k.c>} {<-o>} {<k.so>}) (C {<framework_failure_>} {(SQ <'failed to build shared library'>)}) ] ) (command.Simple words: [{<df>}] more_env: [(env_pair name:LD_PRELOAD val:{<'./k.so'>} spids:[151])] do_fork: T ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<test>} {<-f>} {<x>}) (C {<skip_>} {(DQ <'internal test failure: maybe LD_PRELOAD doesn\'t work?'>)}) ] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (command.Simple words: [{<df>} {(SQ <.>)}] more_env: [(env_pair name:LD_PRELOAD val:{<'./k.so'>} spids:[174])] do_fork: T ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:fail) op: assign_op.Equal rhs: {<1>} spids: [185] ) ] ) ] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (command.Simple words: [{<df>} {<-i>} {(SQ <.>)}] more_env: [(env_pair name:LD_PRELOAD val:{<'./k.so'>} spids:[188])] do_fork: T ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:fail) op: assign_op.Equal rhs: {<1>} spids: [201] ) ] ) ] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (command.Simple words: [{<df>} {<-T>} {(SQ <.>)}] more_env: [(env_pair name:LD_PRELOAD val:{<'./k.so'>} spids:[204])] do_fork: T ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:fail) op: assign_op.Equal rhs: {<1>} spids: [217] ) ] ) ] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (command.Simple words: [{<df>} {<-Ti>} {(SQ <.>)}] more_env: [(env_pair name:LD_PRELOAD val:{<'./k.so'>} spids:[220])] do_fork: T ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:fail) op: assign_op.Equal rhs: {<1>} spids: [233] ) ] ) ] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (command.Simple words: [{<df>} {<--total>} {(SQ <.>)}] more_env: [(env_pair name:LD_PRELOAD val:{<'./k.so'>} spids:[236])] do_fork: T ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:fail) op: assign_op.Equal rhs: {<1>} spids: [249] ) ] ) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (command.Simple words: [{<df>}] more_env: [(env_pair name:LD_PRELOAD val:{<'./k.so'>} spids:[256])] do_fork: T ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:fail) op: assign_op.Equal rhs: {<1>} spids: [263] ) ] ) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (command.Simple words: [{<df>} {<-i>}] more_env: [(env_pair name:LD_PRELOAD val:{<'./k.so'>} spids:[266])] do_fork: T ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:fail) op: assign_op.Equal rhs: {<1>} spids: [275] ) ] ) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (command.Simple words: [{<df>} {<-T>}] more_env: [(env_pair name:LD_PRELOAD val:{<'./k.so'>} spids:[278])] do_fork: T ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:fail) op: assign_op.Equal rhs: {<1>} spids: [287] ) ] ) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (command.Simple words: [{<df>} {<-Ti>}] more_env: [(env_pair name:LD_PRELOAD val:{<'./k.so'>} spids:[290])] do_fork: T ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:fail) op: assign_op.Equal rhs: {<1>} spids: [299] ) ] ) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (command.Simple words: [{<df>} {<--total>}] more_env: [(env_pair name:LD_PRELOAD val:{<'./k.so'>} spids:[302])] do_fork: T ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:fail) op: assign_op.Equal rhs: {<1>} spids: [311] ) ] ) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (command.Simple words: [{<df>} {<-a>}] more_env: [(env_pair name:LD_PRELOAD val:{<'./k.so'>} spids:[315])] do_fork: T ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:fail) op: assign_op.Equal rhs: {<1>} spids: [324] ) ] ) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (command.Simple words: [{<df>} {<-a>} {(SQ <.>)}] more_env: [(env_pair name:LD_PRELOAD val:{<'./k.so'>} spids:[327])] do_fork: T ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:fail) op: assign_op.Equal rhs: {<1>} spids: [340] ) ] ) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (command.Simple words: [{<df>} {<-l>}] more_env: [(env_pair name:LD_PRELOAD val:{<'./k.so'>} spids:[344])] do_fork: T ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:fail) op: assign_op.Equal rhs: {<1>} spids: [353] ) ] ) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (command.Simple words: [{<df>} {<-l>} {(SQ <.>)}] more_env: [(env_pair name:LD_PRELOAD val:{<'./k.so'>} spids:[356])] do_fork: T ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:fail) op: assign_op.Equal rhs: {<1>} spids: [369] ) ] ) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (command.Simple words: [{<df>} {<-t>} {<hello>}] more_env: [(env_pair name:LD_PRELOAD val:{<'./k.so'>} spids:[373])] do_fork: T ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:fail) op: assign_op.Equal rhs: {<1>} spids: [384] ) ] ) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (command.Simple words: [{<df>} {<-t>} {<hello>} {(SQ <.>)}] more_env: [(env_pair name:LD_PRELOAD val:{<'./k.so'>} spids:[387])] do_fork: T ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:fail) op: assign_op.Equal rhs: {<1>} spids: [402] ) ] ) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (command.Simple words: [{<df>} {<-x>} {<hello>}] more_env: [(env_pair name:LD_PRELOAD val:{<'./k.so'>} spids:[406])] do_fork: T ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:fail) op: assign_op.Equal rhs: {<1>} spids: [417] ) ] ) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (command.Simple words: [{<df>} {<-x>} {<hello>} {(SQ <.>)}] more_env: [(env_pair name:LD_PRELOAD val:{<'./k.so'>} spids:[420])] do_fork: T ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:fail) op: assign_op.Equal rhs: {<1>} spids: [435] ) ] ) ] ) (C {<Exit>} {($ Id.VSub_DollarName '$fail')}) ] )