(command.CommandList children: [ (command.CommandList children: [ (command.Sentence child: (C {<.>} { (DQ (braced_var_sub token: <Id.VSub_Name srcdir> suffix_op: (suffix_op.Unary tok:<Id.VTest_Equals '='> arg_word:{<.>}) ) <'/tests/init.sh'> ) } ) terminator: <Id.Op_Semi _> ) (C {<path_prepend_>} {<'./src'>}) ] ) (C {<print_ver_>} {<touch>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:DEFAULT_SLEEP_SECONDS) op: assign_op.Equal rhs: {<2>} spids: [76] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:SLEEP_SECONDS) op: assign_op.Equal rhs: { (braced_var_sub token: <Id.VSub_Name SLEEP_SECONDS> suffix_op: (suffix_op.Unary tok: <Id.VTest_Equals '='> arg_word: {($ Id.VSub_DollarName '$DEFAULT_SLEEP_SECONDS')} ) ) } spids: [79] ) ] ) (C {<Id.Lit_Colon ':'>} { (braced_var_sub token: <Id.VSub_Name TOUCH_DIR_LIST> suffix_op: (suffix_op.Unary tok:<Id.VTest_Equals '='> arg_word:{<.>}) ) } ) (command.ForEach iter_name: d iter_words: [{($ Id.VSub_DollarName '$TOUCH_DIR_LIST')}] do_arg_iter: F body: (command.DoGroup children: [ (C {<rm>} {<-rf>} {($ Id.VSub_DollarName '$d') <'/a'>} {($ Id.VSub_DollarName '$d') <'/b'>} {($ Id.VSub_DollarName '$d') <'/c'>} ) (command.AndOr ops: [Id.Op_DPipe] children: [ (command.Simple redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName '$d') <'/a'>} ) ] do_fork: F ) (C {<framework_failure_>}) ] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<test>} {<-f>} {($ Id.VSub_DollarName '$d') <'/a'>}) (C {<framework_failure_>}) ] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (command.Simple redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName '$d') <'/b'>} ) ] do_fork: F ) (C {<framework_failure_>}) ] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<test>} {<-f>} {($ Id.VSub_DollarName '$d') <'/b'>}) (C {<framework_failure_>}) ] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (command.Simple redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName '$d') <'/c'>} ) ] do_fork: F ) (C {<framework_failure_>}) ] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<test>} {<-f>} {($ Id.VSub_DollarName '$d') <'/c'>}) (C {<framework_failure_>}) ] ) ] ) ) (C {<echo>} {<sleeping>} {<Id.KW_For for>} {($ Id.VSub_DollarName '$SLEEP_SECONDS')} {<seconds...>}) (C {<sleep>} {($ Id.VSub_DollarName '$SLEEP_SECONDS')}) (command.ForEach iter_name: d iter_words: [{($ Id.VSub_DollarName '$TOUCH_DIR_LIST')}] do_arg_iter: F body: (command.DoGroup children: [ (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<touch>} {($ Id.VSub_DollarName '$d') <'/a'>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:fail) op: assign_op.Equal rhs: {<1>} spids: [232] ) ] ) ] ) (C {<set>} {<x>} { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<ls>} {<-t>} {($ Id.VSub_DollarName '$d') <'/a'>} {($ Id.VSub_DollarName '$d') <'/b'>} ) ) } ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<test>} {(DQ ($ Id.VSub_Star '$*'))} {<Id.Lit_Equals '='>} {(DQ <'x '> ($ Id.VSub_DollarName '$d') <'/a '> ($ Id.VSub_DollarName '$d') <'/b'>)} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:fail) op: assign_op.Equal rhs: {<1>} spids: [271] ) ] ) ] ) ] ) ) (C {<echo>} {<sleeping>} {<Id.KW_For for>} {($ Id.VSub_DollarName '$SLEEP_SECONDS')} {<seconds...>}) (C {<sleep>} {($ Id.VSub_DollarName '$SLEEP_SECONDS')}) (command.ForEach iter_name: d iter_words: [{($ Id.VSub_DollarName '$TOUCH_DIR_LIST')}] do_arg_iter: F body: (command.DoGroup children: [ (C {<touch>} {($ Id.VSub_DollarName '$d') <'/b'>}) (C {<set>} {<x>} { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<ls>} {<-t>} {($ Id.VSub_DollarName '$d') <'/a'>} {($ Id.VSub_DollarName '$d') <'/b'>} ) ) } ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<test>} {(DQ ($ Id.VSub_Star '$*'))} {<Id.Lit_Equals '='>} {(DQ <'x '> ($ Id.VSub_DollarName '$d') <'/b '> ($ Id.VSub_DollarName '$d') <'/a'>)} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:fail) op: assign_op.Equal rhs: {<1>} spids: [344] ) ] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.Simple words: [{<touch>} {<->}] redirects: [ (redir op: <Id.Redir_Less '1<'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName '$d') <'/c'>} ) (redir op: <Id.Redir_Great '2>'> loc: (redir_loc.Fd fd:2) arg: {<'/dev/null'>} ) ] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<set>} {<x>} { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<ls>} {<-t>} {($ Id.VSub_DollarName '$d') <'/a'>} {($ Id.VSub_DollarName '$d') <'/c'>} ) ) } ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<test>} {(DQ ($ Id.VSub_Star '$*'))} {<Id.Lit_Equals '='>} { (DQ <'x '> ($ Id.VSub_DollarName '$d') <'/c '> ($ Id.VSub_DollarName '$d') <'/a'> ) } ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:fail) op: assign_op.Equal rhs: {<1>} spids: [403] ) ] ) ] ) ] spids: [349 365] ) ] ) (C {<rm>} {<-rf>} {($ Id.VSub_DollarName '$d') <'/a'>} {($ Id.VSub_DollarName '$d') <'/b'>} {($ Id.VSub_DollarName '$d') <'/c'>} ) ] ) ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<test>} {($ Id.VSub_DollarName '$fail')} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {<0>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Simple words: [{<cat>}] redirects: [ (redir op:<Id.Redir_GreatAnd '1>&'> loc:(redir_loc.Fd fd:1) arg:{<2>}) (redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<EOF>} here_end_span_id: 458 stdin_parts: [ < '*** This test has just failed. That can happen when the test is run in an\n' > < '*** NFS-mounted directory on a system whose clock is not well synchronized\n' > < '*** with that of the NFS server. If you think that is the reason, set the\n' > < '*** environment variable SLEEP_SECONDS to some number of seconds larger than\n' > <'*** the default of '> ($ Id.VSub_DollarName '$DEFAULT_SLEEP_SECONDS') <' and rerun the test.\n'> ] ) ) ] do_fork: T ) ] spids: [427 439] ) ] ) (C {<Exit>} {($ Id.VSub_DollarName '$fail')}) ] )