(command.CommandList children: [ (command.ShAssignment left: <Id.Lit_VarLike 'SRCDIR='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'SRCDIR='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'SRCDIR='> name:SRCDIR) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <atf_get_srcdir> more_env: [] words: [{<atf_get_srcdir>}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) } ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'TESTER='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'TESTER='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'TESTER='> name:TESTER) op: assign_op.Equal rhs: {(DQ (${ Id.VSub_Name SRCDIR) <'/libarchive_test'>)} ) ] redirects: [] ) (command.ShFunction name_tok: <check> name: check body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Sentence child: (command.Simple blame_tok: <local> more_env: [] words: [{<local>} {<Id.Lit_VarLike 'testcase='> (${ Id.VSub_Number 1)}] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) (command.Simple blame_tok: <shift> more_env: [] words: [{<shift>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <atf_check> more_env: [] words: [ {<atf_check>} {<-o>} {<ignore>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {(${ Id.VSub_Name TESTER)} {<-d>} {<-r>} {(DQ (${ Id.VSub_Name SRCDIR))} {<-v>} {(DQ (${ Id.VSub_Name testcase))} ] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <atf_init_test_cases> name: atf_init_test_cases body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.ShAssignment left: <Id.Lit_VarLike 'testcases='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'testcases='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'testcases='> name:testcases) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (command.Simple blame_tok: <Id.Left_DollarBrace '${'> more_env: [] words: [{(${ Id.VSub_Name TESTER)} {<-h>}] redirects: [ (Redir op: <Id.Redir_GreatAnd '2>&'> loc: (redir_loc.Fd fd:2) arg: {<1>} ) ] do_fork: T ) (command.Simple blame_tok: <awk> more_env: [] words: [ {<awk>} { (SQ < 'p != 0 && $1 ~ /^[0-9]+:/ { print $NF } /Available tests:/ { p=1 }' > ) } ] redirects: [] do_fork: T ) ] ops: [<Id.Op_Pipe _>] ) right: <Id.Eof_RParen _> ) } ) ] redirects: [] ) (command.ForEach keyword: <Id.KW_For for> iter_names: [testcase] iterable: (for_iter.Words words:[{(${ Id.VSub_Name testcases)}]) semi_tok: <Id.Op_Semi _> body: (command.DoGroup left: <Id.KW_Do do> children: [ (command.Simple blame_tok: <atf_test_case> more_env: [] words: [{<atf_test_case>} {(${ Id.VSub_Name testcase)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <eval> more_env: [] words: [ {<eval>} { (DQ (${ Id.VSub_Name testcase) <'_body() { check '> (${ Id.VSub_Name testcase) <'; }'> ) } ] redirects: [] do_fork: T ) (command.Simple blame_tok: <atf_add_test_case> more_env: [] words: [{<atf_add_test_case>} {(${ Id.VSub_Name testcase)}] redirects: [] do_fork: T ) ] right: <Id.KW_Done done> ) redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) ] )