(command.CommandList
  children: [
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:netserver)
          op: assign_op.Equal
          rhs: 
            {
              (DQ <'rump_server -lrumpdev -lrumpnet -lrumpnet_net '> 
                <'\t-lrumpnet_netinet -lrumpnet_shmif'>
              )
            }
          spids: [79]
        )
      ]
    )
    (C {<export>} {<Id.Lit_VarLike 'RUMP_SERVER='> <unix> <Id.Lit_Colon ':'> <'//commsock'>})
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:DEBUG)
          op: assign_op.Equal
          rhs: 
            {
              (braced_var_sub
                token: <Id.VSub_Name DEBUG>
                suffix_op: (suffix_op.Unary tok:<Id.VTest_ColonHyphen ':-'> arg_word:{<false>})
              )
            }
          spids: [95]
        )
      ]
    )
    (C {<atf_test_case>} {<route_change_reject2blackhole>} {<cleanup>})
    (command.ShFunction
      name: route_change_reject2blackhole_head
      body: 
        (BraceGroup
          children: [
            (C {<atf_set>} {(DQ <descr>)} {(DQ <'Change a reject route to blackhole'>)})
            (C {<atf_set>} {(DQ <require.progs>)} {(DQ <rump_server>)})
          ]
        )
    )
    (command.ShFunction
      name: route_change_reject2blackhole_body
      body: 
        (BraceGroup
          children: [
            (C {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} 
              {(${ Id.VSub_Name netserver)} {(${ Id.VSub_Name RUMP_SERVER)}
            )
            (C {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<-o>} {<ignore>} 
              {<rump.route>} {<add>} {<207.46.197.32>} {<127.0.0.1>} {<-reject>}
            )
            (C {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<-o>} 
              {<match> <Id.Lit_Colon ':'> <UGHR>} {<-x>} {(DQ <'rump.route -n show -inet | grep ^207.46'>)}
            )
            (C {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<-o>} {<ignore>} 
              {<rump.route>} {<change>} {<207.46.197.32>} {<127.0.0.1>} {<-blackhole>}
            )
            (C {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<-o>} 
              {<match> <Id.Lit_Colon ':'> (SQ <' UGHBS '>)} {<-e>} {<ignore>} {<-x>} {(DQ <'rump.netstat -rn -f inet | grep ^207.46'>)}
            )
          ]
        )
    )
    (command.ShFunction
      name: route_change_reject2blackhole_cleanup
      body: 
        (BraceGroup
          children: [
            (C {<env>} {<Id.Lit_VarLike 'RUMP_SERVER='> <unix> <Id.Lit_Colon ':'> <'//commsock'>} 
              {<rump.halt>}
            )
          ]
        )
    )
    (C {<atf_test_case>} {<route_change_gateway>} {<cleanup>})
    (command.ShFunction
      name: route_change_gateway_head
      body: 
        (BraceGroup
          children: [
            (C {<atf_set>} {(DQ <descr>)} {(DQ <'Change the gateway of a route'>)})
            (C {<atf_set>} {(DQ <require.progs>)} {(DQ <rump_server>)})
          ]
        )
    )
    (command.ShFunction
      name: route_change_gateway_body
      body: 
        (BraceGroup
          children: [
            (C {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} 
              {(${ Id.VSub_Name netserver)} {(${ Id.VSub_Name RUMP_SERVER)}
            )
            (C {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<rump.ifconfig>} 
              {<shmif0>} {<create>}
            )
            (C {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<rump.ifconfig>} 
              {<shmif0>} {<linkstr>} {<bus>}
            )
            (C {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<rump.ifconfig>} 
              {<shmif0>} {<'10.0.0.10/24'>} {<up>}
            )
            (C {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<-o>} {<ignore>} 
              {<rump.route>} {<add>} {<-net>} {<'192.168.0.0/24'>} {<10.0.0.1>}
            )
            (C {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<-o>} 
              {<match> <Id.Lit_Colon ':'> (SQ <10.0.0.1>)} {<-x>} {(DQ <'rump.route -n show -inet | grep ^192.168'>)}
            )
            (C {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<-o>} {<ignore>} 
              {<rump.route>} {<change>} {<-net>} {<'192.168.0.0/24'>} {<10.0.0.254>}
            )
            (C {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<-o>} 
              {<match> <Id.Lit_Colon ':'> (SQ <10.0.0.254>)} {<-x>} {(DQ <'rump.route -n show -inet | grep ^192.168'>)}
            )
          ]
        )
    )
    (command.ShFunction
      name: route_change_gateway_cleanup
      body: 
        (BraceGroup
          children: [
            (C {<env>} {<Id.Lit_VarLike 'RUMP_SERVER='> <unix> <Id.Lit_Colon ':'> <'//commsock'>} 
              {<rump.halt>}
            )
          ]
        )
    )
    (C {<atf_test_case>} {<route_change_ifa>} {<cleanup>})
    (command.ShFunction
      name: route_change_ifa_head
      body: 
        (BraceGroup
          children: [
            (C {<atf_set>} {(DQ <descr>)} {(DQ <'Change the ifa (local address) of a route'>)})
            (C {<atf_set>} {(DQ <require.progs>)} {(DQ <rump_server>)})
          ]
        )
    )
    (command.ShFunction
      name: route_change_ifa_body
      body: 
        (BraceGroup
          children: [
            (C {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} 
              {(${ Id.VSub_Name netserver)} {(${ Id.VSub_Name RUMP_SERVER)}
            )
            (C {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<rump.ifconfig>} 
              {<shmif0>} {<create>}
            )
            (C {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<rump.ifconfig>} 
              {<shmif0>} {<linkstr>} {<bus>}
            )
            (C {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<rump.ifconfig>} 
              {<shmif0>} {<'10.0.0.10/24'>}
            )
            (C {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<rump.ifconfig>} 
              {<shmif0>} {<alias>} {<'10.0.0.11/24'>}
            )
            (C {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<rump.ifconfig>} 
              {<shmif0>} {<up>}
            )
            (C {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<-o>} {<ignore>} 
              {<rump.route>} {<add>} {<-net>} {<'192.168.0.0/24'>} {<10.0.0.1>}
            )
            (C {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<-o>} 
              {<match> <Id.Lit_Colon ':'> (SQ <10.0.0.1>)} {<-x>} {(DQ <'rump.route -n show -inet | grep ^192.168'>)}
            )
            (command.AndOr
              ops: [Id.Op_DAmp]
              children: [
                (C {($ Id.VSub_DollarName '$DEBUG')})
                (C {<rump.route>} {<-n>} {<show>} {<-inet>})
              ]
            )
            (command.Simple
              words: [{<cat>}]
              redirects: [
                (redir
                  op: <Id.Redir_Great '>'>
                  loc: (redir_loc.Fd fd:1)
                  arg: {<'./expect'>}
                )
                (redir
                  op: <Id.Redir_DLessDash '<<-'>
                  loc: (redir_loc.Fd fd:0)
                  arg: 
                    (redir_param.HereDoc
                      here_begin: {<EOF>}
                      here_end_span_id: 751
                      stdin_parts: [
                        <'   route to: 192.168.0.1\n'>
                        <'destination: 192.168.0.0\n'>
                        <'       mask: 255.255.255.0\n'>
                        <'    gateway: 10.0.0.1\n'>
                        <' local addr: 10.0.0.10\n'>
                        <'  interface: shmif0\n'>
                        <'      flags: <UP,GATEWAY,DONE,STATIC>\n'>
                        <
' recvpipe  sendpipe  ssthresh  rtt,msec    rttvar  hopcount      mtu     expire\n'
                        >
                      ]
                    )
                )
              ]
              do_fork: T
            )
            (command.Simple
              words: [{<rump.route>} {<-n>} {<get>} {<192.168.0.1>}]
              redirects: [(redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<'./output'>})]
              do_fork: T
            )
            (command.AndOr
              ops: [Id.Op_DAmp]
              children: [(C {($ Id.VSub_DollarName '$DEBUG')}) (C {<cat>} {<'./expect'>} {<'./output'>})]
            )
            (C {<sed>} {<-i>} {(SQ <'$d'>)} {<'./output'>})
            (C {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<diff>} 
              {<'./expect'>} {<'./output'>}
            )
            (C {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<-o>} {<ignore>} 
              {<rump.route>} {<change>} {<-net>} {<'192.168.0.0/24'>} {<10.0.0.1>} {<-ifa>} {<10.0.0.11>}
            )
            (command.AndOr
              ops: [Id.Op_DAmp]
              children: [
                (C {($ Id.VSub_DollarName '$DEBUG')})
                (C {<rump.route>} {<-n>} {<show>} {<-inet>})
              ]
            )
            (command.Simple
              words: [{<cat>}]
              redirects: [
                (redir
                  op: <Id.Redir_Great '>'>
                  loc: (redir_loc.Fd fd:1)
                  arg: {<'./expect'>}
                )
                (redir
                  op: <Id.Redir_DLessDash '<<-'>
                  loc: (redir_loc.Fd fd:0)
                  arg: 
                    (redir_param.HereDoc
                      here_begin: {<EOF>}
                      here_end_span_id: 867
                      stdin_parts: [
                        <'   route to: 192.168.0.1\n'>
                        <'destination: 192.168.0.0\n'>
                        <'       mask: 255.255.255.0\n'>
                        <'    gateway: 10.0.0.1\n'>
                        <' local addr: 10.0.0.11\n'>
                        <'  interface: shmif0\n'>
                        <'      flags: <UP,GATEWAY,DONE,STATIC>\n'>
                        <
' recvpipe  sendpipe  ssthresh  rtt,msec    rttvar  hopcount      mtu     expire\n'
                        >
                      ]
                    )
                )
              ]
              do_fork: T
            )
            (command.Simple
              words: [{<rump.route>} {<-n>} {<get>} {<192.168.0.1>}]
              redirects: [(redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<'./output'>})]
              do_fork: T
            )
            (command.AndOr
              ops: [Id.Op_DAmp]
              children: [(C {($ Id.VSub_DollarName '$DEBUG')}) (C {<cat>} {<'./expect'>} {<'./output'>})]
            )
            (C {<sed>} {<-i>} {(SQ <'$d'>)} {<'./output'>})
            (C {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<diff>} 
              {<'./expect'>} {<'./output'>}
            )
          ]
        )
    )
    (command.ShFunction
      name: route_change_ifa_cleanup
      body: 
        (BraceGroup
          children: [
            (C {<env>} {<Id.Lit_VarLike 'RUMP_SERVER='> <unix> <Id.Lit_Colon ':'> <'//commsock'>} 
              {<rump.halt>}
            )
          ]
        )
    )
    (C {<atf_test_case>} {<route_change_ifp>} {<cleanup>})
    (command.ShFunction
      name: route_change_ifp_head
      body: 
        (BraceGroup
          children: [
            (C {<atf_set>} {(DQ <descr>)} {(DQ <'Change a route based on an interface (ifp)'>)})
            (C {<atf_set>} {(DQ <require.progs>)} {(DQ <rump_server>)})
          ]
        )
    )
    (command.ShFunction
      name: route_change_ifp_body
      body: 
        (BraceGroup
          children: [
            (C {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} 
              {(${ Id.VSub_Name netserver)} {(${ Id.VSub_Name RUMP_SERVER)}
            )
            (C {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<rump.ifconfig>} 
              {<shmif0>} {<create>}
            )
            (C {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<rump.ifconfig>} 
              {<shmif0>} {<linkstr>} {<bus>}
            )
            (C {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<rump.ifconfig>} 
              {<shmif0>} {<'10.0.0.10/24'>} {<up>}
            )
            (C {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<rump.ifconfig>} 
              {<shmif1>} {<create>}
            )
            (C {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<rump.ifconfig>} 
              {<shmif1>} {<linkstr>} {<bus>}
            )
            (C {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<rump.ifconfig>} 
              {<shmif1>} {<'10.0.0.11/24'>} {<up>}
            )
            (C {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<-o>} {<ignore>} 
              {<rump.route>} {<add>} {<-net>} {<'192.168.0.0/24'>} {<10.0.0.1>}
            )
            (C {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<-o>} 
              {<match> <Id.Lit_Colon ':'> (SQ <10.0.0.1>)} {<-x>} {(DQ <'rump.route -n show -inet | grep ^192.168'>)}
            )
            (command.AndOr
              ops: [Id.Op_DAmp]
              children: [
                (C {($ Id.VSub_DollarName '$DEBUG')})
                (C {<rump.route>} {<-n>} {<show>} {<-inet>})
              ]
            )
            (command.Simple
              words: [{<cat>}]
              redirects: [
                (redir
                  op: <Id.Redir_Great '>'>
                  loc: (redir_loc.Fd fd:1)
                  arg: {<'./expect'>}
                )
                (redir
                  op: <Id.Redir_DLessDash '<<-'>
                  loc: (redir_loc.Fd fd:0)
                  arg: 
                    (redir_param.HereDoc
                      here_begin: {<EOF>}
                      here_end_span_id: 1185
                      stdin_parts: [
                        <'   route to: 192.168.0.1\n'>
                        <'destination: 192.168.0.0\n'>
                        <'       mask: 255.255.255.0\n'>
                        <'    gateway: 10.0.0.1\n'>
                        <' local addr: 10.0.0.10\n'>
                        <'  interface: shmif0\n'>
                        <'      flags: <UP,GATEWAY,DONE,STATIC>\n'>
                        <
' recvpipe  sendpipe  ssthresh  rtt,msec    rttvar  hopcount      mtu     expire\n'
                        >
                      ]
                    )
                )
              ]
              do_fork: T
            )
            (command.Simple
              words: [{<rump.route>} {<-n>} {<get>} {<192.168.0.1>}]
              redirects: [(redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<'./output'>})]
              do_fork: T
            )
            (command.AndOr
              ops: [Id.Op_DAmp]
              children: [(C {($ Id.VSub_DollarName '$DEBUG')}) (C {<cat>} {<'./expect'>} {<'./output'>})]
            )
            (C {<sed>} {<-i>} {(SQ <'$d'>)} {<'./output'>})
            (C {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<diff>} 
              {<'./expect'>} {<'./output'>}
            )
            (C {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<-o>} {<ignore>} 
              {<rump.route>} {<change>} {<-net>} {<'192.168.0.0/24'>} {<10.0.0.1>} {<-ifp>} {<shmif1>}
            )
            (command.AndOr
              ops: [Id.Op_DAmp]
              children: [
                (C {($ Id.VSub_DollarName '$DEBUG')})
                (C {<rump.route>} {<-n>} {<show>} {<-inet>})
              ]
            )
            (command.Simple
              words: [{<cat>}]
              redirects: [
                (redir
                  op: <Id.Redir_Great '>'>
                  loc: (redir_loc.Fd fd:1)
                  arg: {<'./expect'>}
                )
                (redir
                  op: <Id.Redir_DLessDash '<<-'>
                  loc: (redir_loc.Fd fd:0)
                  arg: 
                    (redir_param.HereDoc
                      here_begin: {<EOF>}
                      here_end_span_id: 1301
                      stdin_parts: [
                        <'   route to: 192.168.0.1\n'>
                        <'destination: 192.168.0.0\n'>
                        <'       mask: 255.255.255.0\n'>
                        <'    gateway: 10.0.0.1\n'>
                        <' local addr: 10.0.0.11\n'>
                        <'  interface: shmif1\n'>
                        <'      flags: <UP,GATEWAY,DONE,STATIC>\n'>
                        <
' recvpipe  sendpipe  ssthresh  rtt,msec    rttvar  hopcount      mtu     expire\n'
                        >
                      ]
                    )
                )
              ]
              do_fork: T
            )
            (command.Simple
              words: [{<rump.route>} {<-n>} {<get>} {<192.168.0.1>}]
              redirects: [(redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<'./output'>})]
              do_fork: T
            )
            (command.AndOr
              ops: [Id.Op_DAmp]
              children: [(C {($ Id.VSub_DollarName '$DEBUG')}) (C {<cat>} {<'./expect'>} {<'./output'>})]
            )
            (C {<sed>} {<-i>} {(SQ <'$d'>)} {<'./output'>})
            (C {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<diff>} 
              {<'./expect'>} {<'./output'>}
            )
          ]
        )
    )
    (command.ShFunction
      name: route_change_ifp_cleanup
      body: 
        (BraceGroup
          children: [
            (C {<env>} {<Id.Lit_VarLike 'RUMP_SERVER='> <unix> <Id.Lit_Colon ':'> <'//commsock'>} 
              {<rump.halt>}
            )
          ]
        )
    )
    (C {<atf_test_case>} {<route_change_ifp_ifa>} {<cleanup>})
    (command.ShFunction
      name: route_change_ifp_head
      body: 
        (BraceGroup
          children: [
            (C {<atf_set>} {(DQ <descr>)} {(DQ <'Change a route with -ifp and -ifa'>)})
            (C {<atf_set>} {(DQ <require.progs>)} {(DQ <rump_server>)})
          ]
        )
    )
    (command.ShFunction
      name: route_change_ifp_ifa_body
      body: 
        (BraceGroup
          children: [
            (C {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} 
              {(${ Id.VSub_Name netserver)} {(${ Id.VSub_Name RUMP_SERVER)}
            )
            (C {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<rump.ifconfig>} 
              {<shmif0>} {<create>}
            )
            (C {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<rump.ifconfig>} 
              {<shmif0>} {<linkstr>} {<bus>}
            )
            (C {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<rump.ifconfig>} 
              {<shmif0>} {<'10.0.0.10/24'>} {<up>}
            )
            (C {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<rump.ifconfig>} 
              {<shmif1>} {<create>}
            )
            (C {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<rump.ifconfig>} 
              {<shmif1>} {<linkstr>} {<bus>}
            )
            (C {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<rump.ifconfig>} 
              {<shmif1>} {<'10.0.0.11/24'>} {<up>}
            )
            (C {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<-o>} {<ignore>} 
              {<rump.route>} {<add>} {<-net>} {<'192.168.0.0/24'>} {<10.0.0.1>}
            )
            (C {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<-o>} 
              {<match> <Id.Lit_Colon ':'> (SQ <10.0.0.1>)} {<-x>} {(DQ <'rump.route -n show -inet | grep ^192.168'>)}
            )
            (command.AndOr
              ops: [Id.Op_DAmp]
              children: [
                (C {($ Id.VSub_DollarName '$DEBUG')})
                (C {<rump.route>} {<-n>} {<show>} {<-inet>})
              ]
            )
            (command.Simple
              words: [{<cat>}]
              redirects: [
                (redir
                  op: <Id.Redir_Great '>'>
                  loc: (redir_loc.Fd fd:1)
                  arg: {<'./expect'>}
                )
                (redir
                  op: <Id.Redir_DLessDash '<<-'>
                  loc: (redir_loc.Fd fd:0)
                  arg: 
                    (redir_param.HereDoc
                      here_begin: {<EOF>}
                      here_end_span_id: 1619
                      stdin_parts: [
                        <'   route to: 192.168.0.1\n'>
                        <'destination: 192.168.0.0\n'>
                        <'       mask: 255.255.255.0\n'>
                        <'    gateway: 10.0.0.1\n'>
                        <' local addr: 10.0.0.10\n'>
                        <'  interface: shmif0\n'>
                        <'      flags: <UP,GATEWAY,DONE,STATIC>\n'>
                        <
' recvpipe  sendpipe  ssthresh  rtt,msec    rttvar  hopcount      mtu     expire\n'
                        >
                      ]
                    )
                )
              ]
              do_fork: T
            )
            (command.Simple
              words: [{<rump.route>} {<-n>} {<get>} {<192.168.0.1>}]
              redirects: [(redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<'./output'>})]
              do_fork: T
            )
            (command.AndOr
              ops: [Id.Op_DAmp]
              children: [(C {($ Id.VSub_DollarName '$DEBUG')}) (C {<cat>} {<'./expect'>} {<'./output'>})]
            )
            (C {<sed>} {<-i>} {(SQ <'$d'>)} {<'./output'>})
            (C {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<diff>} 
              {<'./expect'>} {<'./output'>}
            )
            (C {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<-o>} {<ignore>} 
              {<rump.route>} {<change>} {<-net>} {<'192.168.0.0/24'>} {<-ifa>} {<10.0.0.1>} {<-ifp>} {<shmif1>}
            )
            (command.AndOr
              ops: [Id.Op_DAmp]
              children: [
                (C {($ Id.VSub_DollarName '$DEBUG')})
                (C {<rump.route>} {<-n>} {<show>} {<-inet>})
              ]
            )
            (command.Simple
              words: [{<cat>}]
              redirects: [
                (redir
                  op: <Id.Redir_Great '>'>
                  loc: (redir_loc.Fd fd:1)
                  arg: {<'./expect'>}
                )
                (redir
                  op: <Id.Redir_DLessDash '<<-'>
                  loc: (redir_loc.Fd fd:0)
                  arg: 
                    (redir_param.HereDoc
                      here_begin: {<EOF>}
                      here_end_span_id: 1737
                      stdin_parts: [
                        <'   route to: 192.168.0.1\n'>
                        <'destination: 192.168.0.0\n'>
                        <'       mask: 255.255.255.0\n'>
                        <'    gateway: 10.0.0.1\n'>
                        <' local addr: 10.0.0.11\n'>
                        <'  interface: shmif1\n'>
                        <'      flags: <UP,GATEWAY,DONE,STATIC>\n'>
                        <
' recvpipe  sendpipe  ssthresh  rtt,msec    rttvar  hopcount      mtu     expire\n'
                        >
                      ]
                    )
                )
              ]
              do_fork: T
            )
            (command.Simple
              words: [{<rump.route>} {<-n>} {<get>} {<192.168.0.1>}]
              redirects: [(redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<'./output'>})]
              do_fork: T
            )
            (command.AndOr
              ops: [Id.Op_DAmp]
              children: [(C {($ Id.VSub_DollarName '$DEBUG')}) (C {<cat>} {<'./expect'>} {<'./output'>})]
            )
            (C {<sed>} {<-i>} {(SQ <'$d'>)} {<'./output'>})
            (C {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<diff>} 
              {<'./expect'>} {<'./output'>}
            )
          ]
        )
    )
    (command.ShFunction
      name: route_change_ifp_ifa_cleanup
      body: 
        (BraceGroup
          children: [
            (C {<env>} {<Id.Lit_VarLike 'RUMP_SERVER='> <unix> <Id.Lit_Colon ':'> <'//commsock'>} 
              {<rump.halt>}
            )
          ]
        )
    )
    (command.ShFunction
      name: atf_init_test_cases
      body: 
        (BraceGroup
          children: [
            (C {<atf_add_test_case>} {<route_change_reject2blackhole>})
            (C {<atf_add_test_case>} {<route_change_gateway>})
            (C {<atf_add_test_case>} {<route_change_ifa>})
            (C {<atf_add_test_case>} {<route_change_ifp>})
            (C {<atf_add_test_case>} {<route_change_ifp_ifa>})
          ]
        )
    )
  ]
)