(command.CommandList children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:MAX_TRIES) op: assign_op.Equal rhs: {<20>} spids: [82] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:PROG_PID) op: assign_op.Equal rhs: (word.Empty) spids: [85] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:PROG_PATH) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> command_list: (command.CommandList children:[(C {<atf_get_srcdir>})]) ) </while1> } spids: [87] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:SP) op: assign_op.Equal rhs: {(SQ <'[[:space:]]'>)} spids: [94] ) ] ) (command.ShFunction name: start_program body: (command.BraceGroup children: [ (C {<echo>} {(DQ <'Starting program in background'>)}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:PROG_COMM) op: assign_op.Equal rhs: {<while1>} spids: [114] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:PROG_PATH) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> command_list: (command.CommandList children:[(C {<atf_get_srcdir>})]) ) </> ($ Id.VSub_DollarName '$PROG_COMM') } spids: [118] ) ] ) (command.Sentence child: (C {($ Id.VSub_DollarName '$PROG_PATH')} {($ Id.VSub_Star '$*')}) terminator: <Id.Op_Amp _> ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:PROG_PID) op: assign_op.Equal rhs: {($ Id.VSub_Bang '$!')} spids: [134] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:try) op: assign_op.Equal rhs: {<0>} spids: [138] ) ] ) (command.WhileUntil keyword: <Id.KW_While while> cond: [ (command.Sentence child: (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<Id.Lit_LBracket '['>} {($ Id.VSub_DollarName '$try')} {<-lt>} {($ Id.VSub_DollarName '$MAX_TRIES')} {<Id.Lit_RBracket ']'>} ) (command.Pipeline children: [(C {<kill>} {<-0>} {($ Id.VSub_DollarName '$PROG_PID')})] negated: T ) ] ) terminator: <Id.Op_Semi _> ) ] body: (command.DoGroup children: [ (C {<sleep>} {<0.5>}) (C {<Id.Lit_Other ':'>} { (word_part.ArithSub anode: (arith_expr.BinaryAssign op_id: Id.Arith_PlusEqual left: (sh_lhs_expr.Name name:try) right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>}) ) ) } ) ] ) ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {($ Id.VSub_DollarName '$try')} {<-ge>} {($ Id.VSub_DollarName '$MAX_TRIES')} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] action: [ (C {<atf_fail>} { (DQ <'Polled for program start '> ($ Id.VSub_DollarName '$MAX_TRIES') <' tries and failed'> ) } ) ] spids: [190 203] ) ] ) ] ) ) (C {<atf_test_case>} {<binary_info>}) (command.ShFunction name: binary_info_head body: (command.BraceGroup children: [(C {<atf_set>} {(DQ <descr>)} {(DQ <'Checks -b support'>)})] ) ) (command.ShFunction name: binary_info_body body: (command.BraceGroup children: [ (C {<start_program>} {<bogus-arg>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:line_format) op: assign_op.Equal rhs: { (DQ ($ Id.VSub_DollarName '$SP') <'*%s'> ($ Id.VSub_DollarName '$SP') <'+%s'> ($ Id.VSub_DollarName '$SP') <'+%s'> ($ Id.VSub_DollarName '$SP') <'+%s'> ($ Id.VSub_DollarName '$SP') <'*'> ) } spids: [256] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:header_re) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> command_list: (command.CommandList children: [ (C {<printf>} {(DQ ($ Id.VSub_DollarName '$line_format'))} {(DQ <PID>)} {(DQ <COMM>)} {(DQ <OSREL>)} {(DQ <PATH>)} ) ] ) ) } spids: [271] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:line_re) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> command_list: (command.CommandList children: [ (C {<printf>} {(DQ ($ Id.VSub_DollarName '$line_format'))} {($ Id.VSub_DollarName '$PROG_PID')} {($ Id.VSub_DollarName '$PROG_COMM')} {(DQ <'[[:digit:]]+'>)} {(DQ ($ Id.VSub_DollarName '$PROG_PATH'))} ) ] ) ) } spids: [297] ) ] ) (C {<atf_check>} {<-o>} {<save> <Id.Lit_Other ':'> <procstat.out>} {<procstat>} {<-b>} {($ Id.VSub_DollarName '$PROG_PID')} ) (C {<atf_check>} {<-o>} {<match> <Id.Lit_Other ':'> (DQ ($ Id.VSub_DollarName '$header_re'))} {<head>} {<-n>} {<1>} {<procstat.out>} ) (C {<atf_check>} {<-o>} {<match> <Id.Lit_Other ':'> (DQ ($ Id.VSub_DollarName '$line_re'))} {<tail>} {<-n>} {<1>} {<procstat.out>} ) ] ) ) (C {<atf_test_case>} {<command_line_arguments>}) (command.ShFunction name: command_line_arguments_head body: (command.BraceGroup children: [(C {<atf_set>} {(DQ <descr>)} {(DQ <'Checks -c support'>)})] ) ) (command.ShFunction name: command_line_arguments_body body: (command.BraceGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:arguments) op: assign_op.Equal rhs: {(DQ <'my arguments'>)} spids: [406] ) ] ) (C {<start_program>} {($ Id.VSub_DollarName '$arguments')}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:line_format) op: assign_op.Equal rhs: { (DQ ($ Id.VSub_DollarName '$SP') <'*%s'> ($ Id.VSub_DollarName '$SP') <'+%s'> ($ Id.VSub_DollarName '$SP') <'+%s'> ($ Id.VSub_DollarName '$SP') <'*'> ) } spids: [419] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:header_re) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> command_list: (command.CommandList children: [ (C {<printf>} {(DQ ($ Id.VSub_DollarName '$line_format'))} {(DQ <PID>)} {(DQ <COMM>)} {(DQ <ARGS>)} ) ] ) ) } spids: [432] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:line_re) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> command_list: (command.CommandList children: [ (C {<printf>} {(DQ ($ Id.VSub_DollarName '$line_format'))} {($ Id.VSub_DollarName '$PROG_PID')} {(DQ ($ Id.VSub_DollarName '$PROG_COMM'))} { (DQ ($ Id.VSub_DollarName '$PROG_PATH') <' '> ($ Id.VSub_DollarName '$arguments') ) } ) ] ) ) } spids: [454] ) ] ) (C {<atf_check>} {<-o>} {<save> <Id.Lit_Other ':'> <procstat.out>} {<procstat>} {<-c>} {($ Id.VSub_DollarName '$PROG_PID')} ) (C {<atf_check>} {<-o>} {<match> <Id.Lit_Other ':'> (DQ ($ Id.VSub_DollarName '$header_re'))} {<head>} {<-n>} {<1>} {<procstat.out>} ) (C {<atf_check>} {<-o>} {<match> <Id.Lit_Other ':'> (DQ ($ Id.VSub_DollarName '$line_re'))} {<tail>} {<-n>} {<1>} {<procstat.out>} ) ] ) ) (C {<atf_test_case>} {<environment>}) (command.ShFunction name: environment_head body: (command.BraceGroup children: [(C {<atf_set>} {(DQ <descr>)} {(DQ <'Checks -e support'>)})] ) ) (command.ShFunction name: environment_body body: (command.BraceGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:var) op: assign_op.Equal rhs: {(DQ <'MY_VARIABLE=foo'>)} spids: [562] ) ] ) (C {<eval>} {(DQ <'export '> ($ Id.VSub_DollarName '$var'))}) (C {<start_program>} {<my>} {<arguments>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:line_format) op: assign_op.Equal rhs: { (DQ ($ Id.VSub_DollarName '$SP') <'*%s'> ($ Id.VSub_DollarName '$SP') <'+%s'> ($ Id.VSub_DollarName '$SP') <'+%s'> ($ Id.VSub_DollarName '$SP') <'*'> ) } spids: [585] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:header_re) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> command_list: (command.CommandList children: [ (C {<printf>} {(DQ ($ Id.VSub_DollarName '$line_format'))} {(DQ <PID>)} {(DQ <COMM>)} {(DQ <ENVIRONMENT>)} ) ] ) ) } spids: [598] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:line_re) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> command_list: (command.CommandList children: [ (C {<printf>} {(DQ ($ Id.VSub_DollarName '$line_format'))} {($ Id.VSub_DollarName '$PROG_PID')} {($ Id.VSub_DollarName '$PROG_COMM')} {(DQ <'.*'> ($ Id.VSub_DollarName '$var') <'.*'>)} ) ] ) ) } spids: [620] ) ] ) (C {<atf_check>} {<-o>} {<save> <Id.Lit_Other ':'> <procstat.out>} {<procstat>} {<-e>} {($ Id.VSub_DollarName '$PROG_PID')} ) (C {<atf_check>} {<-o>} {<match> <Id.Lit_Other ':'> (DQ ($ Id.VSub_DollarName '$header_re'))} {<head>} {<-n>} {<1>} {<procstat.out>} ) (C {<atf_check>} {<-o>} {<match> <Id.Lit_Other ':'> (DQ ($ Id.VSub_DollarName '$line_re'))} {<tail>} {<-n>} {<1>} {<procstat.out>} ) ] ) ) (C {<atf_test_case>} {<file_descriptor>}) (command.ShFunction name: file_descriptor_head body: (command.BraceGroup children: [(C {<atf_set>} {(DQ <descr>)} {(DQ <'Checks -f support'>)})] ) ) (command.ShFunction name: file_descriptor_body body: (command.BraceGroup children: [ (C {<start_program>} {<my>} {<arguments>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:line_format) op: assign_op.Equal rhs: { (DQ ($ Id.VSub_DollarName '$SP') <'*%s'> ($ Id.VSub_DollarName '$SP') <'+%s'> ($ Id.VSub_DollarName '$SP') <'+%s'> ($ Id.VSub_DollarName '$SP') <'+%s'> ($ Id.VSub_DollarName '$SP') <'+%s'> ($ Id.VSub_DollarName '$SP') <'+%s'> ($ Id.VSub_DollarName '$SP') <'+%s'> ($ Id.VSub_DollarName '$SP') <'+%s'> ($ Id.VSub_DollarName '$SP') <'+%s'> ($ Id.VSub_DollarName '$SP') <'%s'> ($ Id.VSub_DollarName '$SP') <'*'> ) } spids: [735] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:header_re) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> command_list: (command.CommandList children: [ (C {<printf>} {(DQ ($ Id.VSub_DollarName '$line_format'))} {(DQ <PID>)} {(DQ <COMM>)} {(DQ <FD>)} {(DQ <T>)} {(DQ <V>)} {(DQ <FLAGS>)} {(DQ <REF>)} {(DQ <OFFSET>)} {(DQ <PRO>)} {(DQ <NAME>)} ) ] ) ) } spids: [762] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:line_re) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> command_list: (command.CommandList children: [ (C {<printf>} {(DQ ($ Id.VSub_DollarName '$line_format'))} {($ Id.VSub_DollarName '$PROG_PID')} {($ Id.VSub_DollarName '$PROG_COMM')} {(DQ <'.+'>)} {(DQ <'.+'>)} {(DQ <'.+'>)} {(DQ <'.+'>)} {(DQ <'.+'>)} {(DQ <'.+'>)} {(DQ <'.+'>)} {(DQ <'.+'>)} ) ] ) ) } spids: [816] ) ] ) (C {<atf_check>} {<-o>} {<save> <Id.Lit_Other ':'> <procstat.out>} {<procstat>} {<-f>} {($ Id.VSub_DollarName '$PROG_PID')} ) (C {<atf_check>} {<-o>} {<match> <Id.Lit_Other ':'> (DQ ($ Id.VSub_DollarName '$header_re'))} {<head>} {<-n>} {<1>} {<procstat.out>} ) (C {<atf_check>} {<-o>} {<match> <Id.Lit_Other ':'> (DQ ($ Id.VSub_DollarName '$line_re'))} {<awk>} {(SQ <'NR > 1'>)} {<procstat.out>} ) ] ) ) (command.ShFunction name: atf_init_test_cases body: (command.BraceGroup children: [ (C {<atf_add_test_case>} {<binary_info>}) (C {<atf_add_test_case>} {<command_line_arguments>}) (C {<atf_add_test_case>} {<environment>}) (C {<atf_add_test_case>} {<file_descriptor>}) ] ) ) ] )