(command.CommandList
  children: [
    (command.ShFunction
      name: check_diskinfo
      body: 
        (BraceGroup
          children: [
            (C {<local>} {<Id.Lit_VarLike 'md='> ($ Id.VSub_Number '$1')})
            (C {<local>} {<Id.Lit_VarLike 'mediasize_in_bytes='> ($ Id.VSub_Number '$2')})
            (C {<local>} {<Id.Lit_VarLike 'mediasize_in_sectors='> ($ Id.VSub_Number '$3')})
            (C {<local>} 
              {<Id.Lit_VarLike 'sectorsize='> 
                (braced_var_sub
                  token: <Id.VSub_Number 4>
                  suffix_op: (suffix_op.Unary tok:<Id.VTest_ColonHyphen ':-'> arg_word:{<512>})
                )
              }
            )
            (C {<local>} 
              {<Id.Lit_VarLike 'stripesize='> 
                (braced_var_sub
                  token: <Id.VSub_Number 5>
                  suffix_op: (suffix_op.Unary tok:<Id.VTest_ColonHyphen ':-'> arg_word:{<0>})
                )
              }
            )
            (C {<local>} 
              {<Id.Lit_VarLike 'stripeoffset='> 
                (braced_var_sub
                  token: <Id.VSub_Number 6>
                  suffix_op: (suffix_op.Unary tok:<Id.VTest_ColonHyphen ':-'> arg_word:{<0>})
                )
              }
            )
            (C {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<-o>} 
              {<match> <Id.Lit_Colon ':'> 
                (DQ <'/dev/'> ($ Id.VSub_DollarName '$md') <' *'> ($ Id.VSub_DollarName '$sectorsize') 
                  <' *'> ($ Id.VSub_DollarName '$mediasize_in_bytes') <' *'> ($ Id.VSub_DollarName '$mediasize_in_sectors') 
                  <' *'> ($ Id.VSub_DollarName '$stripesize') <' *'> ($ Id.VSub_DollarName '$stripeoffset')
                )
              } {<-x>} {(DQ <'diskinfo /dev/'> ($ Id.VSub_DollarName '$md') <' | expand'>)}
            )
          ]
        )
    )
    (command.ShFunction
      name: cleanup_common
      body: 
        (BraceGroup
          children: [
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (C {<Id.Lit_LBracket '['>} {<-f>} {<mdconfig.out>} {<Id.Lit_RBracket ']'>})
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (C {<mdconfig>} {<-d>} {<-u>} 
                      {
                        (command_sub
                          left_token: <Id.Left_DollarParen '$('>
                          child: (C {<sed>} {<-e>} {(SQ <'s/md//'>)} {<mdconfig.out>})
                        )
                      }
                    )
                  ]
                  spids: [184 195]
                )
              ]
            )
          ]
        )
    )
    (C {<atf_test_case>} {<attach_vnode_non_explicit_type>} {<cleanup>})
    (command.ShFunction
      name: attach_vnode_non_explicit_type_head
      body: 
        (BraceGroup
          children: [(C {<atf_set>} {(DQ <descr>)} {(DQ <'Tests out -a / -f without -t'>)})]
        )
    )
    (command.ShFunction
      name: attach_vnode_non_explicit_type_body
      body: 
        (BraceGroup
          children: [
            (C {<local>} {<md>})
            (C {<local>} {<Id.Lit_VarLike 'size_in_mb='> <1024>})
            (C {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<-x>} 
              {(DQ <'truncate -s '> (${ Id.VSub_Name size_in_mb) <'m xxx'>)}
            )
            (C {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<-o>} 
              {<save> <Id.Lit_Colon ':'> <mdconfig.out>} {<-x>} {(SQ <'mdconfig -af xxx'>)}
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:md)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (command_sub
                        left_token: <Id.Left_DollarParen '$('>
                        child: (C {<cat>} {<mdconfig.out>})
                      )
                    }
                  spids: [306]
                )
              ]
            )
            (C {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<-o>} 
              {<match> <Id.Lit_Colon ':'> (SQ <'^md[0-9]+$'>)} {<-x>} {(DQ <'echo '> ($ Id.VSub_DollarName '$md'))}
            )
            (C {<check_diskinfo>} {(DQ ($ Id.VSub_DollarName '$md'))} {(DQ <1073741824>)} {(DQ <2097152>)})
            (C {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<-o>} 
              {<match> <Id.Lit_Colon ':'> 
                (DQ <'^'> ($ Id.VSub_DollarName '$md') <' vnode '> (${ Id.VSub_Name size_in_mb) <M> 
                  <Id.Lit_Dollar '$'>
                )
              } {<-x>} 
              {
                (DQ <'mdconfig -lv | awk \''> 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <'1 == '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) ($ Id.VSub_DollarName '$md') 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <' { print '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <'1, '> 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <'2, '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <'3 }\''>
                )
              }
            )
          ]
        )
    )
    (command.ShFunction
      name: attach_vnode_non_explicit_type_cleanup
      body: (BraceGroup children:[(C {<cleanup_common>})])
    )
    (C {<atf_test_case>} {<attach_vnode_implicit_a_f>} {<cleanup>})
    (command.ShFunction
      name: attach_vnode_implicit_a_f_head
      body: 
        (BraceGroup
          children: [(C {<atf_set>} {(DQ <descr>)} {(DQ <'Tests out implied -a / -f without -t'>)})]
        )
    )
    (command.ShFunction
      name: attach_vnode_implicit_a_f_body
      body: 
        (BraceGroup
          children: [
            (C {<local>} {<md>})
            (C {<local>} {<Id.Lit_VarLike 'size_in_mb='> <1024>})
            (C {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<-x>} 
              {(DQ <'truncate -s '> (${ Id.VSub_Name size_in_mb) <'m xxx'>)}
            )
            (C {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<-o>} 
              {<save> <Id.Lit_Colon ':'> <mdconfig.out>} {<-x>} {(SQ <'mdconfig xxx'>)}
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:md)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (command_sub
                        left_token: <Id.Left_DollarParen '$('>
                        child: (C {<cat>} {<mdconfig.out>})
                      )
                    }
                  spids: [498]
                )
              ]
            )
            (C {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<-o>} 
              {<match> <Id.Lit_Colon ':'> (SQ <'^md[0-9]+$'>)} {<-x>} {(DQ <'echo '> ($ Id.VSub_DollarName '$md'))}
            )
            (C {<check_diskinfo>} {(DQ ($ Id.VSub_DollarName '$md'))} {(DQ <1073741824>)} {(DQ <2097152>)})
            (C {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<-o>} 
              {<match> <Id.Lit_Colon ':'> 
                (DQ <'^'> ($ Id.VSub_DollarName '$md') <' vnode '> (${ Id.VSub_Name size_in_mb) <M> 
                  <Id.Lit_Dollar '$'>
                )
              } {<-x>} 
              {
                (DQ <'mdconfig -lv | awk \''> 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <'1 == '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) ($ Id.VSub_DollarName '$md') 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <' { print '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <'1, '> 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <'2, '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <'3 }\''>
                )
              }
            )
          ]
        )
    )
    (command.ShFunction
      name: attach_vnode_implicit_a_f_cleanup
      body: (BraceGroup children:[(C {<cleanup_common>})])
    )
    (C {<atf_test_case>} {<attach_vnode_explicit_type>} {<cleanup>})
    (command.ShFunction
      name: attach_vnode_explicit_type_head
      body: 
        (BraceGroup
          children: [(C {<atf_set>} {(DQ <descr>)} {(DQ <'Tests out implied -a / -f with -t vnode'>)})]
        )
    )
    (command.ShFunction
      name: attach_vnode_explicit_type_body
      body: 
        (BraceGroup
          children: [
            (C {<local>} {<md>})
            (C {<local>} {<Id.Lit_VarLike 'size_in_mb='> <1024>})
            (C {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<-x>} 
              {(DQ <'truncate -s '> (${ Id.VSub_Name size_in_mb) <'m xxx'>)}
            )
            (C {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<-o>} 
              {<save> <Id.Lit_Colon ':'> <mdconfig.out>} {<-x>} {(SQ <'mdconfig -af xxx -t vnode'>)}
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:md)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (command_sub
                        left_token: <Id.Left_DollarParen '$('>
                        child: (C {<cat>} {<mdconfig.out>})
                      )
                    }
                  spids: [690]
                )
              ]
            )
            (C {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<-o>} 
              {<match> <Id.Lit_Colon ':'> (SQ <'^md[0-9]+$'>)} {<-x>} {(DQ <'echo '> ($ Id.VSub_DollarName '$md'))}
            )
            (C {<check_diskinfo>} {(DQ ($ Id.VSub_DollarName '$md'))} {(DQ <1073741824>)} {(DQ <2097152>)})
            (C {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<-o>} 
              {<match> <Id.Lit_Colon ':'> 
                (DQ <'^'> ($ Id.VSub_DollarName '$md') <' vnode '> (${ Id.VSub_Name size_in_mb) <M> 
                  <Id.Lit_Dollar '$'>
                )
              } {<-x>} 
              {
                (DQ <'mdconfig -lv | awk \''> 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <'1 == '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) ($ Id.VSub_DollarName '$md') 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <' { print '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <'1, '> 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <'2, '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <'3 }\''>
                )
              }
            )
          ]
        )
    )
    (command.ShFunction
      name: attach_vnode_explicit_type_cleanup
      body: 
        (BraceGroup
          children: [
            (command.AndOr
              ops: [Id.Op_DAmp]
              children: [
                (C {<Id.Lit_LBracket '['>} {<-f>} {<mdconfig.out>} {<Id.Lit_RBracket ']'>})
                (C {<mdconfig>} {<-d>} {<-u>} 
                  {
                    (command_sub
                      left_token: <Id.Left_DollarParen '$('>
                      child: (C {<sed>} {<-e>} {(SQ <'s/md//'>)} {<mdconfig.out>})
                    )
                  }
                )
              ]
            )
            (C {<rm>} {<-f>} {<mdconfig.out>} {<xxx>})
          ]
        )
    )
    (C {<atf_test_case>} {<attach_vnode_smaller_than_file>} {<cleanup>})
    (command.ShFunction
      name: attach_vnode_smaller_than_file_head
      body: 
        (BraceGroup
          children: [
            (C {<atf_set>} {(DQ <descr>)} {(DQ <'Tests mdconfig -s with size less than the file size'>)})
          ]
        )
    )
    (command.ShFunction
      name: attach_vnode_smaller_than_file_body
      body: 
        (BraceGroup
          children: [
            (C {<local>} {<md>})
            (C {<local>} {<Id.Lit_VarLike 'size_in_mb='> <128>})
            (C {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<-x>} 
              {(DQ <'truncate -s 1024m xxx'>)}
            )
            (C {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<-o>} 
              {<save> <Id.Lit_Colon ':'> <mdconfig.out>} {<-x>} {(DQ <'mdconfig -af xxx -s '> (${ Id.VSub_Name size_in_mb) <m>)}
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:md)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (command_sub
                        left_token: <Id.Left_DollarParen '$('>
                        child: (C {<cat>} {<mdconfig.out>})
                      )
                    }
                  spids: [919]
                )
              ]
            )
            (C {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<-o>} 
              {<match> <Id.Lit_Colon ':'> (SQ <'^md[0-9]+$'>)} {<-x>} {(DQ <'echo '> ($ Id.VSub_DollarName '$md'))}
            )
            (C {<check_diskinfo>} {(DQ ($ Id.VSub_DollarName '$md'))} {(DQ <134217728>)} {(DQ <262144>)})
            (C {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<-o>} 
              {<match> <Id.Lit_Colon ':'> 
                (DQ <'^'> ($ Id.VSub_DollarName '$md') <' vnode '> (${ Id.VSub_Name size_in_mb) <M> 
                  <Id.Lit_Dollar '$'>
                )
              } {<-x>} 
              {
                (DQ <'mdconfig -lv | awk \''> 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <'1 == '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) ($ Id.VSub_DollarName '$md') 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <' { print '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <'1, '> 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <'2, '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <'3 }\''>
                )
              }
            )
          ]
        )
    )
    (command.ShFunction
      name: attach_vnode_smaller_than_file_cleanup
      body: (BraceGroup children:[(C {<cleanup_common>})])
    )
    (C {<atf_test_case>} {<attach_vnode_larger_than_file>} {<cleanup>})
    (command.ShFunction
      name: attach_vnode_larger_than_file_head
      body: 
        (BraceGroup
          children: [
            (C {<atf_set>} {(DQ <descr>)} 
              {(DQ <'Tests mdconfig -s with size greater than the file size'>)}
            )
          ]
        )
    )
    (command.ShFunction
      name: attach_vnode_larger_than_file_body
      body: 
        (BraceGroup
          children: [
            (C {<local>} {<md>})
            (C {<local>} {<Id.Lit_VarLike 'size_in_gb='> <128>})
            (C {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<-x>} 
              {(DQ <'truncate -s 1024m xxx'>)}
            )
            (C {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<-o>} 
              {<save> <Id.Lit_Colon ':'> <mdconfig.out>} {<-x>} {(DQ <'mdconfig -af xxx -s '> (${ Id.VSub_Name size_in_gb) <g>)}
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:md)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (command_sub
                        left_token: <Id.Left_DollarParen '$('>
                        child: (C {<cat>} {<mdconfig.out>})
                      )
                    }
                  spids: [1113]
                )
              ]
            )
            (C {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<-o>} 
              {<match> <Id.Lit_Colon ':'> (SQ <'^md[0-9]+$'>)} {<-x>} {(DQ <'echo '> ($ Id.VSub_DollarName '$md'))}
            )
            (C {<check_diskinfo>} {(DQ ($ Id.VSub_DollarName '$md'))} {(DQ <137438953472>)} 
              {(DQ <268435456>)}
            )
            (C {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<-o>} 
              {<match> <Id.Lit_Colon ':'> 
                (DQ <'^'> ($ Id.VSub_DollarName '$md') <' vnode '> (${ Id.VSub_Name size_in_gb) <G> 
                  <Id.Lit_Dollar '$'>
                )
              } {<-x>} 
              {
                (DQ <'mdconfig -lv | awk \''> 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <'1 == '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) ($ Id.VSub_DollarName '$md') 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <' { print '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <'1, '> 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <'2, '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <'3 }\''>
                )
              }
            )
          ]
        )
    )
    (command.ShFunction
      name: attach_vnode_larger_than_file_cleanup
      body: (BraceGroup children:[(C {<cleanup_common>})])
    )
    (C {<atf_test_case>} {<attach_vnode_sector_size>} {<cleanup>})
    (command.ShFunction
      name: attach_vnode_sector_size_head
      body: 
        (BraceGroup
          children: [
            (C {<atf_set>} {(DQ <descr>)} 
              {(DQ <'Tests mdconfig -s with size greater than the file size'>)}
            )
          ]
        )
    )
    (command.ShFunction
      name: attach_vnode_sector_size_body
      body: 
        (BraceGroup
          children: [
            (C {<local>} {<md>})
            (C {<local>} {<Id.Lit_VarLike 'size_in_mb='> <1024>})
            (C {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<-x>} 
              {(DQ <'truncate -s '> (${ Id.VSub_Name size_in_mb) <'m xxx'>)}
            )
            (C {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<-o>} 
              {<save> <Id.Lit_Colon ':'> <mdconfig.out>} {<-x>} {(DQ <'mdconfig -af xxx -S 2048'>)}
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:md)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (command_sub
                        left_token: <Id.Left_DollarParen '$('>
                        child: (C {<cat>} {<mdconfig.out>})
                      )
                    }
                  spids: [1307]
                )
              ]
            )
            (C {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<-o>} 
              {<match> <Id.Lit_Colon ':'> (SQ <'^md[0-9]+$'>)} {<-x>} {(DQ <'echo '> ($ Id.VSub_DollarName '$md'))}
            )
            (C {<check_diskinfo>} {(DQ ($ Id.VSub_DollarName '$md'))} {(DQ <1073741824>)} {(DQ <524288>)} 
              {(DQ <2048>)}
            )
            (C {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<-o>} 
              {<match> <Id.Lit_Colon ':'> 
                (DQ <'^'> ($ Id.VSub_DollarName '$md') <' vnode '> (${ Id.VSub_Name size_in_mb) <M> 
                  <Id.Lit_Dollar '$'>
                )
              } {<-x>} 
              {
                (DQ <'mdconfig -lv | awk \''> 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <'1 == '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) ($ Id.VSub_DollarName '$md') 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <' { print '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <'1, '> 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <'2, '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <'3 }\''>
                )
              }
            )
          ]
        )
    )
    (command.ShFunction
      name: attach_vnode_sector_size_cleanup
      body: (BraceGroup children:[(C {<cleanup_common>})])
    )
    (C {<atf_test_case>} {<attach_malloc>} {<cleanup>})
    (command.ShFunction
      name: attach_malloc_head
      body: 
        (BraceGroup
          children: [(C {<atf_set>} {(DQ <descr>)} {(DQ <'Tests mdconfig with -t malloc'>)})]
        )
    )
    (command.ShFunction
      name: attach_malloc_body
      body: 
        (BraceGroup
          children: [
            (C {<local>} {<md>})
            (C {<local>} {<Id.Lit_VarLike 'size_in_mb='> <1024>})
            (C {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<-o>} 
              {<save> <Id.Lit_Colon ':'> <mdconfig.out>} {<-x>} {(SQ <'mdconfig -a -t malloc -s 1g'>)}
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:md)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (command_sub
                        left_token: <Id.Left_DollarParen '$('>
                        child: (C {<cat>} {<mdconfig.out>})
                      )
                    }
                  spids: [1486]
                )
              ]
            )
            (C {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<-o>} 
              {<match> <Id.Lit_Colon ':'> (SQ <'^md[0-9]+$'>)} {<-x>} {(DQ <'echo '> ($ Id.VSub_DollarName '$md'))}
            )
            (C {<check_diskinfo>} {(DQ ($ Id.VSub_DollarName '$md'))} {(DQ <1073741824>)} {(DQ <2097152>)})
            (C {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<-o>} 
              {<match> <Id.Lit_Colon ':'> 
                (DQ <'^'> ($ Id.VSub_DollarName '$md') <' malloc '> (${ Id.VSub_Name size_in_mb) <M> 
                  <Id.Lit_Dollar '$'>
                )
              } {<-x>} 
              {
                (DQ <'mdconfig -lv | awk \''> 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <'1 == '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) ($ Id.VSub_DollarName '$md') 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <' { print '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <'1, '> 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <'2, '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <'3 }\''>
                )
              }
            )
          ]
        )
    )
    (command.ShFunction
      name: attach_malloc_cleanup
      body: (BraceGroup children:[(C {<cleanup_common>})])
    )
    (C {<atf_test_case>} {<attach_swap>} {<cleanup>})
    (command.ShFunction
      name: attach_swap_head
      body: 
        (BraceGroup
          children: [(C {<atf_set>} {(DQ <descr>)} {(DQ <'Tests mdconfig with -t swap'>)})]
        )
    )
    (command.ShFunction
      name: attach_swap_body
      body: 
        (BraceGroup
          children: [
            (C {<local>} {<md>})
            (C {<local>} {<Id.Lit_VarLike 'size_in_mb='> <1024>})
            (C {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<-o>} 
              {<save> <Id.Lit_Colon ':'> <mdconfig.out>} {<-x>} {(SQ <'mdconfig -a -t swap -s 1g'>)}
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:md)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (command_sub
                        left_token: <Id.Left_DollarParen '$('>
                        child: (C {<cat>} {<mdconfig.out>})
                      )
                    }
                  spids: [1661]
                )
              ]
            )
            (C {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<-o>} 
              {<match> <Id.Lit_Colon ':'> (SQ <'^md[0-9]+$'>)} {<-x>} {(DQ <'echo '> ($ Id.VSub_DollarName '$md'))}
            )
            (C {<check_diskinfo>} {(DQ ($ Id.VSub_DollarName '$md'))} {(DQ <1073741824>)} {(DQ <2097152>)})
            (C {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<-o>} 
              {<match> <Id.Lit_Colon ':'> 
                (DQ <'^'> ($ Id.VSub_DollarName '$md') <' swap '> (${ Id.VSub_Name size_in_mb) <M> 
                  <Id.Lit_Dollar '$'>
                )
              } {<-x>} 
              {
                (DQ <'mdconfig -lv | awk \''> 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <'1 == '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) ($ Id.VSub_DollarName '$md') 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <' { print '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <'1, '> 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <'2, '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <'3 }\''>
                )
              }
            )
          ]
        )
    )
    (command.ShFunction
      name: attach_swap_cleanup
      body: (BraceGroup children:[(C {<cleanup_common>})])
    )
    (C {<atf_test_case>} {<attach_with_specific_unit_number>} {<cleanup>})
    (command.ShFunction
      name: attach_with_specific_unit_number_head
      body: 
        (BraceGroup
          children: [
            (C {<atf_set>} {(DQ <descr>)} {(DQ <'Tests mdconfig with a unit specified by -u'>)})
          ]
        )
    )
    (command.ShFunction
      name: attach_with_specific_unit_number_body
      body: 
        (BraceGroup
          children: [
            (C {<local>} {<Id.Lit_VarLike 'md_unit='> <99>})
            (C {<local>} {<Id.Lit_VarLike 'size_in_mb='> <10>})
            (C {<local>} {<Id.Lit_VarLike 'md='> (DQ <md> (${ Id.VSub_Name md_unit))})
            (command.Simple
              words: [{<echo>} {(DQ ($ Id.VSub_DollarName '$md'))}]
              redirects: [(redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<mdconfig.out>})]
              do_fork: T
            )
            (C {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<-o>} {<empty>} 
              {<-x>} 
              {
                (DQ <'mdconfig -a -t malloc -s '> (${ Id.VSub_Name size_in_mb) <'m -u '> 
                  ($ Id.VSub_DollarName '$md_unit')
                )
              }
            )
            (C {<check_diskinfo>} {(DQ ($ Id.VSub_DollarName '$md'))} {(DQ <10485760>)} {(DQ <20480>)})
            (C {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<-o>} 
              {<match> <Id.Lit_Colon ':'> (DQ <'^'> ($ Id.VSub_DollarName '$md') <' malloc '>) 
                ($ Id.VSub_DollarName '$size_in_mb') (DQ <M> <Id.Lit_Dollar '$'>)
              } {<-x>} 
              {
                (DQ <'mdconfig -lv | awk \''> 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <'1 == '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) ($ Id.VSub_DollarName '$md') 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <' { print '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <'1, '> 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <'2, '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <'3 }\''>
                )
              }
            )
          ]
        )
    )
    (command.ShFunction
      name: attach_with_specific_unit_number_cleanup
      body: (BraceGroup children:[(C {<cleanup_common>})])
    )
    (command.ShFunction
      name: atf_init_test_cases
      body: 
        (BraceGroup
          children: [
            (C {<atf_add_test_case>} {<attach_vnode_non_explicit_type>})
            (C {<atf_add_test_case>} {<attach_vnode_explicit_type>})
            (C {<atf_add_test_case>} {<attach_vnode_smaller_than_file>})
            (C {<atf_add_test_case>} {<attach_vnode_larger_than_file>})
            (C {<atf_add_test_case>} {<attach_vnode_sector_size>})
            (C {<atf_add_test_case>} {<attach_malloc>})
            (C {<atf_add_test_case>} {<attach_swap>})
            (C {<atf_add_test_case>} {<attach_with_specific_unit_number>})
          ]
        )
    )
  ]
)