(command.CommandList children: [ (command.Simple blame_tok: <atf_test_case> more_env: [] words: [{<atf_test_case>} {<main>} {<cleanup>}] redirects: [] do_fork: T ) (command.ShFunction name_tok: <main_head> name: main_head body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <atf_set> more_env: [] words: [ {<atf_set>} {(DQ <descr>)} {(DQ <'Verifies that vnodes are not leaked and that'>)} {(DQ <'their reclaim operation works as expected: i.e.,'>)} {(DQ <'when all free vnodes are exhausted, unused ones'>)} {(DQ <'have to be recycled, which is what the reclaim'>)} {(DQ <'operation does.'>)} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <atf_set> more_env: [] words: [{<atf_set>} {(DQ <require.user>)} {(DQ <root>)}] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <main_body> name: main_body body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {(DQ <'Lowering kern.maxvnodes to 2000'>)}] redirects: [] do_fork: T ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.Simple blame_tok: <true> more_env: [] words: [{<true>}] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <sysctl> more_env: [] words: [{<sysctl>} {<-n>} {<kern.maxvnodes>}] redirects: [ (Redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<oldvnodes>} ) ] do_fork: T ) ] spids: [157 162] ) ] else_kw: <Id.KW_Else else> else_action: [ (command.Pipeline children: [ (command.Simple blame_tok: <sysctl> more_env: [] words: [{<sysctl>} {<kern.maxvnodes>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <awk> more_env: [] words: [{<awk>} {(SQ <'{ print $3; }'>)}] redirects: [ (Redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<oldvnodes>} ) ] do_fork: T ) ] ops: [<Id.Op_Pipe _>] ) ] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.Simple blame_tok: <atf_check> more_env: [] words: [ {<atf_check>} {<-s>} {<eq> <Id.Lit_Colon ':'> <0>} {<-o>} {<ignore>} {<-e>} {<empty>} {<sysctl>} {<-w>} {<kern.maxvnodes> <Id.Lit_Equals '='> <2000>} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <test_mount> more_env: [] words: [ {<test_mount>} {<-o>} {<-s> (word_part.ArithSub left: <Id.Left_DollarDParen '$(('> anode: (arith_expr.Binary op_id: Id.Arith_Star left: (arith_expr.Binary op_id: Id.Arith_Plus left: {<Id.Lit_Digits 4000>} right: {<Id.Lit_Digits 2>} ) right: {<Id.Lit_Digits 4096>} ) right: <Id.Right_DollarDParen _> ) } ] redirects: [] do_fork: T ) (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {(DQ <'Creating 4000 directories'>)}] redirects: [] do_fork: T ) (command.ForEach keyword: <Id.KW_For for> iter_names: [f] iterable: (for_iter.Words words: [ { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <jot> more_env: [] words: [{<jot>} {<4000>}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) } ] ) semi_tok: <Id.Op_Semi _> body: (command.DoGroup left: <Id.KW_Do do> children: [ (command.Simple blame_tok: <mkdir> more_env: [] words: [{<mkdir>} {(${ Id.VSub_Name f)}] redirects: [] do_fork: T ) ] right: <Id.KW_Done done> ) redirects: [] ) (command.Simple blame_tok: <test_unmount> more_env: [] words: [{<test_unmount>}] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <main_cleanup> name: main_cleanup body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.ShAssignment left: <Id.Lit_VarLike 'oldvnodes='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'oldvnodes='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'oldvnodes='> name:oldvnodes) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <cat> more_env: [] words: [{<cat>} {<oldvnodes>}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) } ) ] redirects: [] ) (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {(DQ <'Restoring kern.maxvnodes to '> (${ Id.VSub_Name oldvnodes))}] redirects: [] do_fork: T ) (command.Simple blame_tok: <sysctl> more_env: [] words: [ {<sysctl>} {<-w>} {<kern.maxvnodes> <Id.Lit_Equals '='> (${ Id.VSub_Name oldvnodes)} ] 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.Simple blame_tok: <.> more_env: [] words: [ {<.>} { (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 _> ) <'/../h_funcs.subr'> } ] redirects: [] do_fork: T ) (command.Simple blame_tok: <.> more_env: [] words: [ {<.>} { (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 _> ) <'/h_funcs.subr'> } ] redirects: [] do_fork: T ) (command.Simple blame_tok: <atf_add_test_case> more_env: [] words: [{<atf_add_test_case>} {<main>}] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) ] )