(command.CommandList children: [ (C {(atf_test_case)} {(validate)}) (command.ShFunction name: validate_head body: (command.BraceGroup children: [(C {(atf_set)} {(DQ (descr))} {(DQ ('Validates ps_strings passed to program'))})] ) ) (command.ShFunction name: validate_body body: (command.BraceGroup children: [ (C {(atf_check)} {(-s)} {(Id.ControlFlow_Exit exit) (Id.Lit_Other ':') (0)} {(-o)} {(ignore)} {(-e)} {(ignore)} { (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:127) command_list: (command.CommandList children:[(C {(atf_get_srcdir)})]) ) (/h_ps_strings1) } ) ] ) ) (command.ShFunction name: parse_ps body: (command.BraceGroup children: [ (C {(local)} {(pid)} {(seq)} {(arg)}) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:pid) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_Number '$1'))} spids: [156] ) ] ) terminator: (Token id:Id.Op_Semi val:';' span_id:161) ) (C {(shift)}) (command.WhileUntil keyword: (Token id:Id.KW_While val:while span_id:167) cond: [ (command.Sentence child: (C {(Id.Lit_LBracket '[')} {(DQ ($ Id.VSub_Number '$1'))} {(Id.KW_Bang '!') (Id.Lit_Equals '=')} {(DQ ($ Id.VSub_DollarName '$pid'))} {(Id.Lit_RBracket ']')} ) terminator: (Token id:Id.Op_Semi val:';' span_id:184) ) ] body: (command.DoGroup children:[(C {(echo)} {($ Id.VSub_Number '$1')}) (C {(shift)})]) ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Id.Lit_LBracket '[')} {($ Id.VSub_Pound '$#')} {(-eq)} {(0)} {(Id.Lit_RBracket ']')} ) terminator: (Token id:Id.Op_Semi val:';' span_id:212) ) ] action: [ (C {(echo)} {(DQ (NO_PID))}) (command.ControlFlow token: (Token id:Id.ControlFlow_Return val:return span_id:224) ) ] spids: [200 214] ) ] ) (C {(shift)}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:seq) op: assign_op.Equal rhs: {(0)} spids: [234] ) ] ) (command.WhileUntil keyword: (Token id:Id.KW_While val:while span_id:238) cond: [ (command.Sentence child: (C {(Id.Lit_LBracket '[')} {($ Id.VSub_Pound '$#')} {(-gt)} {(1)} {(Id.Lit_RBracket ']')} ) terminator: (Token id:Id.Op_Semi val:';' span_id:250) ) ] body: (command.DoGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:arg) op: assign_op.Equal rhs: { (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:256) command_list: (command.CommandList children: [ (C {(printf)} {(DQ ('arg%04x'))} {($ Id.VSub_DollarName '$seq')}) ] ) ) } spids: [255] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Id.Lit_LBracket '[')} {(DQ ($ Id.VSub_DollarName '$arg'))} {(Id.KW_Bang '!') (Id.Lit_Equals '=')} {(DQ ($ Id.VSub_Number '$1'))} {(Id.Lit_RBracket ']')} ) terminator: (Token id:Id.Op_Semi val:';' span_id:284) ) ] action: [ (C {(echo)} {(BAD_) ($ Id.VSub_DollarName '$seq')}) (command.ControlFlow token: (Token id:Id.ControlFlow_Return val:return span_id:295) ) ] spids: [267 286] ) ] ) (C {(shift)}) ] ) ) (C {(echo)} {(DQ (OK))}) ] ) ) (C {(atf_test_case)} {(update)}) (command.ShFunction name: update_head body: (command.BraceGroup children: [(C {(atf_set)} {(DQ (descr))} {(DQ ('Check updating of ps_strings'))})] ) ) (command.ShFunction name: update_body body: (command.BraceGroup children: [ (command.Sentence child: (command.Simple words: [ { (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:346) command_list: (command.CommandList children:[(C {(atf_get_srcdir)})]) ) (/h_ps_strings2) } ] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:351) fd: -1 arg_word: {(/dev/null)} ) (redir.Redir op: (Token id:Id.Redir_GreatAnd val:'2>&' span_id:355) fd: 2 arg_word: {(1)} ) ] ) terminator: (Token id:Id.Op_Amp val:'&' span_id:358) ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:h_pid) op: assign_op.Equal rhs: {($ Id.VSub_Bang '$!')} spids: [361] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:parse) op: assign_op.Equal rhs: { (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:366) command_list: (command.CommandList children: [ (C {(parse_ps)} {($ Id.VSub_DollarName '$h_pid')} { (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:371) command_list: (command.CommandList children: [ (C {(ps)} {(-wwo)} {(pid) (Id.Lit_Comma ',') (args)} {(-p)} {($ Id.VSub_DollarName '$h_pid')} ) ] ) ) } ) ] ) ) } spids: [365] ) ] ) (C {(kill)} {($ Id.VSub_DollarName '$h_pid')}) ] ) ) (command.ShFunction name: atf_init_test_cases body: (command.BraceGroup children: [(C {(atf_add_test_case)} {(validate)}) (C {(atf_add_test_case)} {(update)})] ) ) ] )