(command.CommandList
  children: [
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:netserver)
          op: assign_op.Equal
          rhs: 
            {(DQ <'rump_server -lrumpnet -lrumpnet_net -lrumpnet_netinet -lrumpnet_shmif -lrumpdev'>)}
          spids: [79]
        )
      ]
    )
    (C {<atf_test_case>} {<basic>} {<cleanup>})
    (command.ShFunction
      name: basic_head
      body: 
        (BraceGroup
          children: [(C {<atf_set>} {(DQ <descr>)} {(DQ <'Checks that a simple ping works'>)})]
        )
    )
    (command.ShFunction
      name: docfg
      body: 
        (BraceGroup
          children: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:sock)
                  op: assign_op.Equal
                  rhs: {(${ Id.VSub_Number 1)}
                  spids: [122]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:addr)
                  op: assign_op.Equal
                  rhs: {(${ Id.VSub_Number 2)}
                  spids: [128]
                )
              ]
            )
            (C {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<env>} 
              {<Id.Lit_VarLike 'RUMP_SERVER='> (${ Id.VSub_Name sock)} {<rump.ifconfig>} {<shmif0>} {<create>}
            )
            (C {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<env>} 
              {<Id.Lit_VarLike 'RUMP_SERVER='> (${ Id.VSub_Name sock)} {<rump.ifconfig>} {<shmif0>} {<linkstr>} {<bus>}
            )
            (C {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<env>} 
              {<Id.Lit_VarLike 'RUMP_SERVER='> (${ Id.VSub_Name sock)} {<rump.ifconfig>} {<shmif0>} {<inet>} {(${ Id.VSub_Name addr)}
            )
          ]
        )
    )
    (command.ShFunction
      name: basic_body
      body: 
        (BraceGroup
          children: [
            (C {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} 
              {(${ Id.VSub_Name netserver)} {<unix> <Id.Lit_Colon ':'> <'//commsock1'>}
            )
            (C {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} 
              {(${ Id.VSub_Name netserver)} {<unix> <Id.Lit_Colon ':'> <'//commsock2'>}
            )
            (C {<docfg>} {<unix> <Id.Lit_Colon ':'> <'//commsock1'>} {<1.2.3.4>})
            (C {<docfg>} {<unix> <Id.Lit_Colon ':'> <'//commsock2'>} {<1.2.3.5>})
            (C {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<-o>} {<ignore>} 
              {<env>} {<Id.Lit_VarLike 'RUMP_SERVER='> <unix> <Id.Lit_Colon ':'> <'//commsock1'>} {<rump.ping>} {<-n>} {<-c>} 
              {<1>} {<1.2.3.5>}
            )
            (C {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<-o>} {<ignore>} 
              {<env>} {<Id.Lit_VarLike 'RUMP_SERVER='> <unix> <Id.Lit_Colon ':'> <'//commsock2'>} {<rump.ping>} {<-n>} {<-c>} 
              {<1>} {<1.2.3.5>}
            )
          ]
        )
    )
    (command.ShFunction
      name: basic_cleanup
      body: 
        (BraceGroup
          children: [
            (C {<env>} {<Id.Lit_VarLike 'RUMP_SERVER='> <unix> <Id.Lit_Colon ':'> <'//commsock1'>} 
              {<rump.halt>}
            )
            (C {<env>} {<Id.Lit_VarLike 'RUMP_SERVER='> <unix> <Id.Lit_Colon ':'> <'//commsock2'>} 
              {<rump.halt>}
            )
          ]
        )
    )
    (command.ShFunction
      name: atf_init_test_cases
      body: (BraceGroup children:[(C {<atf_add_test_case>} {<basic>})])
    )
  ]
)