(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 '}'>
        )
    )
  ]
)