(command.CommandList
  children: [
    (command.ShAssignment
      left: <Id.Lit_VarLike 'SOCK_LOCAL='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'SOCK_LOCAL='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'SOCK_LOCAL='> name:SOCK_LOCAL)
          op: assign_op.Equal
          rhs: {<unix> <Id.Lit_Colon ':'> <'//commsock1'>}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'SOCK_PEER='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'SOCK_PEER='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'SOCK_PEER='> name:SOCK_PEER)
          op: assign_op.Equal
          rhs: {<unix> <Id.Lit_Colon ':'> <'//commsock2'>}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'SOCK_GW='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'SOCK_GW='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'SOCK_GW='> name:SOCK_GW)
          op: assign_op.Equal
          rhs: {<unix> <Id.Lit_Colon ':'> <'//commsock3'>}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'BUS='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'BUS='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'BUS='> name:BUS)
          op: assign_op.Equal
          rhs: {<bus1>}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'BUS2='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'BUS2='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'BUS2='> name:BUS2)
          op: assign_op.Equal
          rhs: {<bus2>}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'DEBUG='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'DEBUG='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'DEBUG='> name:DEBUG)
          op: assign_op.Equal
          rhs: 
            {
              (BracedVarSub
                left: <Id.Left_DollarBrace '${'>
                token: <Id.VSub_Name DEBUG>
                var_name: DEBUG
                suffix_op: (suffix_op.Unary op:<Id.VTest_ColonHyphen _> arg_word:{<false>})
                right: <Id.Right_DollarBrace '}'>
              )
            }
        )
      ]
      redirects: []
    )
    (command.ShFunction
      name_tok: <setup_local>
      name: setup_local
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <rump_server_start>
              more_env: []
              words: [{<rump_server_start>} {($ Id.VSub_DollarName SOCK_LOCAL)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <rump_server_add_iface>
              more_env: []
              words: [
                {<rump_server_add_iface>}
                {($ Id.VSub_DollarName SOCK_LOCAL)}
                {<shmif0>}
                {($ Id.VSub_DollarName BUS)}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <export>
              more_env: []
              words: [{<export>} {<Id.Lit_VarLike 'RUMP_SERVER='> ($ Id.VSub_DollarName SOCK_LOCAL)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_check>
              more_env: []
              words: [
                {<atf_check>}
                {<-s>}
                {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>}
                {<-o>}
                {<ignore>}
                {<rump.ifconfig>}
                {<shmif0>}
                {<'10.0.0.2/24'>}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_check>
              more_env: []
              words: [
                {<atf_check>}
                {<-s>}
                {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>}
                {<-o>}
                {<ignore>}
                {<rump.ifconfig>}
                {<shmif0>}
                {<up>}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_check>
              more_env: []
              words: [
                {<atf_check>}
                {<-s>}
                {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>}
                {<-o>}
                {<ignore>}
                {<rump.ifconfig>}
                {<-w>}
                {<10>}
              ]
              redirects: []
              do_fork: T
            )
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <Id.VSub_DollarName '$DEBUG'>
                  more_env: []
                  words: [{($ Id.VSub_DollarName DEBUG)}]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <rump.ifconfig>
                  more_env: []
                  words: [{<rump.ifconfig>}]
                  redirects: []
                  do_fork: T
                )
              ]
              ops: [<Id.Op_DAmp _>]
            )
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <Id.VSub_DollarName '$DEBUG'>
                  more_env: []
                  words: [{($ Id.VSub_DollarName DEBUG)}]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <rump.netstat>
                  more_env: []
                  words: [{<rump.netstat>} {<-rn>} {<-f>} {<inet>}]
                  redirects: []
                  do_fork: T
                )
              ]
              ops: [<Id.Op_DAmp _>]
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <setup_peer>
      name: setup_peer
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <rump_server_start>
              more_env: []
              words: [{<rump_server_start>} {($ Id.VSub_DollarName SOCK_PEER)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <rump_server_add_iface>
              more_env: []
              words: [
                {<rump_server_add_iface>}
                {($ Id.VSub_DollarName SOCK_PEER)}
                {<shmif0>}
                {($ Id.VSub_DollarName BUS)}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <export>
              more_env: []
              words: [{<export>} {<Id.Lit_VarLike 'RUMP_SERVER='> ($ Id.VSub_DollarName SOCK_PEER)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_check>
              more_env: []
              words: [
                {<atf_check>}
                {<-s>}
                {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>}
                {<-o>}
                {<ignore>}
                {<rump.ifconfig>}
                {<shmif0>}
                {<'10.0.0.1/24'>}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_check>
              more_env: []
              words: [
                {<atf_check>}
                {<-s>}
                {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>}
                {<-o>}
                {<ignore>}
                {<rump.ifconfig>}
                {<shmif0>}
                {<up>}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_check>
              more_env: []
              words: [
                {<atf_check>}
                {<-s>}
                {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>}
                {<-o>}
                {<ignore>}
                {<rump.ifconfig>}
                {<-w>}
                {<10>}
              ]
              redirects: []
              do_fork: T
            )
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <Id.VSub_DollarName '$DEBUG'>
                  more_env: []
                  words: [{($ Id.VSub_DollarName DEBUG)}]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <rump.ifconfig>
                  more_env: []
                  words: [{<rump.ifconfig>}]
                  redirects: []
                  do_fork: T
                )
              ]
              ops: [<Id.Op_DAmp _>]
            )
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <Id.VSub_DollarName '$DEBUG'>
                  more_env: []
                  words: [{($ Id.VSub_DollarName DEBUG)}]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <rump.netstat>
                  more_env: []
                  words: [{<rump.netstat>} {<-rn>} {<-f>} {<inet>}]
                  redirects: []
                  do_fork: T
                )
              ]
              ops: [<Id.Op_DAmp _>]
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <setup_gw>
      name: setup_gw
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <rump_server_start>
              more_env: []
              words: [{<rump_server_start>} {($ Id.VSub_DollarName SOCK_GW)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <rump_server_add_iface>
              more_env: []
              words: [
                {<rump_server_add_iface>}
                {($ Id.VSub_DollarName SOCK_GW)}
                {<shmif0>}
                {($ Id.VSub_DollarName BUS)}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <rump_server_add_iface>
              more_env: []
              words: [
                {<rump_server_add_iface>}
                {($ Id.VSub_DollarName SOCK_GW)}
                {<shmif1>}
                {($ Id.VSub_DollarName BUS2)}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <export>
              more_env: []
              words: [{<export>} {<Id.Lit_VarLike 'RUMP_SERVER='> ($ Id.VSub_DollarName SOCK_GW)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_check>
              more_env: []
              words: [
                {<atf_check>}
                {<-s>}
                {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>}
                {<-o>}
                {<ignore>}
                {<rump.ifconfig>}
                {<shmif0>}
                {<'10.0.0.254/24'>}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_check>
              more_env: []
              words: [
                {<atf_check>}
                {<-s>}
                {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>}
                {<-o>}
                {<ignore>}
                {<rump.ifconfig>}
                {<shmif0>}
                {<up>}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_check>
              more_env: []
              words: [
                {<atf_check>}
                {<-s>}
                {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>}
                {<-o>}
                {<ignore>}
                {<rump.ifconfig>}
                {<shmif1>}
                {<'10.0.2.1/24'>}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_check>
              more_env: []
              words: [
                {<atf_check>}
                {<-s>}
                {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>}
                {<-o>}
                {<ignore>}
                {<rump.ifconfig>}
                {<shmif1>}
                {<alias>}
                {<'10.0.2.2/24'>}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_check>
              more_env: []
              words: [
                {<atf_check>}
                {<-s>}
                {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>}
                {<-o>}
                {<ignore>}
                {<rump.ifconfig>}
                {<shmif1>}
                {<up>}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_check>
              more_env: []
              words: [
                {<atf_check>}
                {<-s>}
                {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>}
                {<-o>}
                {<ignore>}
                {<rump.ifconfig>}
                {<-w>}
                {<10>}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_check>
              more_env: []
              words: [
                {<atf_check>}
                {<-s>}
                {<not-exit> <Id.Lit_Colon ':'> <0>}
                {<-x>}
                {(DQ <'rump.ifconfig shmif1 |grep -q tentative'>)}
              ]
              redirects: []
              do_fork: T
            )
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <Id.VSub_DollarName '$DEBUG'>
                  more_env: []
                  words: [{($ Id.VSub_DollarName DEBUG)}]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <rump.ifconfig>
                  more_env: []
                  words: [{<rump.ifconfig>}]
                  redirects: []
                  do_fork: T
                )
              ]
              ops: [<Id.Op_DAmp _>]
            )
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <Id.VSub_DollarName '$DEBUG'>
                  more_env: []
                  words: [{($ Id.VSub_DollarName DEBUG)}]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <rump.netstat>
                  more_env: []
                  words: [{<rump.netstat>} {<-rn>} {<-f>} {<inet>}]
                  redirects: []
                  do_fork: T
                )
              ]
              ops: [<Id.Op_DAmp _>]
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <test_lo>
      name: test_lo
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <export>
              more_env: []
              words: [{<export>} {<Id.Lit_VarLike 'RUMP_SERVER='> ($ Id.VSub_DollarName SOCK_LOCAL)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <check_route_flags>
              more_env: []
              words: [{<check_route_flags>} {<127.0.0.1>} {<UHl>}]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <test_connected>
      name: test_connected
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <export>
              more_env: []
              words: [{<export>} {<Id.Lit_VarLike 'RUMP_SERVER='> ($ Id.VSub_DollarName SOCK_LOCAL)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <check_route_flags>
              more_env: []
              words: [{<check_route_flags>} {<10.0.0.2>} {<UHl>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <check_route_flags>
              more_env: []
              words: [{<check_route_flags>} {<'10.0.0/24'>} {<UC>}]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <test_default_gateway>
      name: test_default_gateway
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <export>
              more_env: []
              words: [{<export>} {<Id.Lit_VarLike 'RUMP_SERVER='> ($ Id.VSub_DollarName SOCK_LOCAL)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_check>
              more_env: []
              words: [
                {<atf_check>}
                {<-s>}
                {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>}
                {<-o>}
                {<ignore>}
                {<rump.route>}
                {<add>}
                {<default>}
                {<10.0.0.1>}
              ]
              redirects: []
              do_fork: T
            )
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <Id.VSub_DollarName '$DEBUG'>
                  more_env: []
                  words: [{($ Id.VSub_DollarName DEBUG)}]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <rump.netstat>
                  more_env: []
                  words: [{<rump.netstat>} {<-rn>} {<-f>} {<inet>}]
                  redirects: []
                  do_fork: T
                )
              ]
              ops: [<Id.Op_DAmp _>]
            )
            (command.Simple
              blame_tok: <check_route_flags>
              more_env: []
              words: [{<check_route_flags>} {<default>} {<UGS>}]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <test_static>
      name: test_static
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <export>
              more_env: []
              words: [{<export>} {<Id.Lit_VarLike 'RUMP_SERVER='> ($ Id.VSub_DollarName SOCK_LOCAL)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_check>
              more_env: []
              words: [
                {<atf_check>}
                {<-s>}
                {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>}
                {<-o>}
                {<ignore>}
                {<rump.route>}
                {<add>}
                {<10.0.1.1>}
                {<10.0.0.1>}
              ]
              redirects: []
              do_fork: T
            )
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <Id.VSub_DollarName '$DEBUG'>
                  more_env: []
                  words: [{($ Id.VSub_DollarName DEBUG)}]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <rump.netstat>
                  more_env: []
                  words: [{<rump.netstat>} {<-rn>} {<-f>} {<inet>}]
                  redirects: []
                  do_fork: T
                )
              ]
              ops: [<Id.Op_DAmp _>]
            )
            (command.Simple
              blame_tok: <check_route_flags>
              more_env: []
              words: [{<check_route_flags>} {<10.0.1.1>} {<UGHS>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_check>
              more_env: []
              words: [
                {<atf_check>}
                {<-s>}
                {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>}
                {<-o>}
                {<ignore>}
                {<rump.route>}
                {<add>}
                {<-net>}
                {<'10.0.2.0/24'>}
                {<10.0.0.1>}
              ]
              redirects: []
              do_fork: T
            )
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <Id.VSub_DollarName '$DEBUG'>
                  more_env: []
                  words: [{($ Id.VSub_DollarName DEBUG)}]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <rump.netstat>
                  more_env: []
                  words: [{<rump.netstat>} {<-rn>} {<-f>} {<inet>}]
                  redirects: []
                  do_fork: T
                )
              ]
              ops: [<Id.Op_DAmp _>]
            )
            (command.Simple
              blame_tok: <check_route_flags>
              more_env: []
              words: [{<check_route_flags>} {<'10.0.2/24'>} {<UGS>}]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <test_blackhole>
      name: test_blackhole
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <export>
              more_env: []
              words: [{<export>} {<Id.Lit_VarLike 'RUMP_SERVER='> ($ Id.VSub_DollarName SOCK_LOCAL)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_check>
              more_env: []
              words: [
                {<atf_check>}
                {<-s>}
                {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>}
                {<-o>}
                {<ignore>}
                {<rump.ping>}
                {<-n>}
                {<-w>}
                {<1>}
                {<-c>}
                {<1>}
                {<10.0.0.1>}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_check>
              more_env: []
              words: [
                {<atf_check>}
                {<-s>}
                {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>}
                {<-o>}
                {<ignore>}
                {<rump.route>}
                {<delete>}
                {<-net>}
                {<'10.0.0.0/24'>}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_check>
              more_env: []
              words: [
                {<atf_check>}
                {<-s>}
                {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>}
                {<-o>}
                {<ignore>}
                {<rump.route>}
                {<add>}
                {<-net>}
                {<'10.0.0.0/24'>}
                {<127.0.0.1>}
                {<-blackhole>}
              ]
              redirects: []
              do_fork: T
            )
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <Id.VSub_DollarName '$DEBUG'>
                  more_env: []
                  words: [{($ Id.VSub_DollarName DEBUG)}]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <rump.netstat>
                  more_env: []
                  words: [{<rump.netstat>} {<-rn>} {<-f>} {<inet>}]
                  redirects: []
                  do_fork: T
                )
              ]
              ops: [<Id.Op_DAmp _>]
            )
            (command.Simple
              blame_tok: <check_route_flags>
              more_env: []
              words: [{<check_route_flags>} {<'10.0.0/24'>} {<UGBS>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_check>
              more_env: []
              words: [
                {<atf_check>}
                {<-s>}
                {<not-exit> <Id.Lit_Colon ':'> <0>}
                {<-o>}
                {<match> <Id.Lit_Colon ':'> (SQ <'100.0% packet loss'>)}
                {<rump.ping>}
                {<-n>}
                {<-w>}
                {<1>}
                {<-c>}
                {<1>}
                {<10.0.0.1>}
              ]
              redirects: []
              do_fork: T
            )
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <Id.VSub_DollarName '$DEBUG'>
                  more_env: []
                  words: [{($ Id.VSub_DollarName DEBUG)}]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <rump.netstat>
                  more_env: []
                  words: [{<rump.netstat>} {<-rn>} {<-f>} {<inet>}]
                  redirects: []
                  do_fork: T
                )
              ]
              ops: [<Id.Op_DAmp _>]
            )
            (command.Simple
              blame_tok: <check_route_no_entry>
              more_env: []
              words: [{<check_route_no_entry>} {<10.0.0.1>}]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <test_reject>
      name: test_reject
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <export>
              more_env: []
              words: [{<export>} {<Id.Lit_VarLike 'RUMP_SERVER='> ($ Id.VSub_DollarName SOCK_LOCAL)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_check>
              more_env: []
              words: [
                {<atf_check>}
                {<-s>}
                {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>}
                {<-o>}
                {<ignore>}
                {<rump.route>}
                {<delete>}
                {<-net>}
                {<'10.0.0.0/24'>}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_check>
              more_env: []
              words: [
                {<atf_check>}
                {<-s>}
                {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>}
                {<-o>}
                {<ignore>}
                {<rump.route>}
                {<add>}
                {<-net>}
                {<'10.0.0.0/24'>}
                {<10.0.0.1>}
                {<-reject>}
              ]
              redirects: []
              do_fork: T
            )
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <Id.VSub_DollarName '$DEBUG'>
                  more_env: []
                  words: [{($ Id.VSub_DollarName DEBUG)}]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <rump.netstat>
                  more_env: []
                  words: [{<rump.netstat>} {<-rn>} {<-f>} {<inet>}]
                  redirects: []
                  do_fork: T
                )
              ]
              ops: [<Id.Op_DAmp _>]
            )
            (command.Simple
              blame_tok: <check_route_flags>
              more_env: []
              words: [{<check_route_flags>} {<'10.0.0/24'>} {<UGRS>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_check>
              more_env: []
              words: [
                {<atf_check>}
                {<-s>}
                {<not-exit> <Id.Lit_Colon ':'> <0>}
                {<-o>}
                {<ignore>}
                {<-e>}
                {<match> <Id.Lit_Colon ':'> (SQ <'No route to host'>)}
                {<rump.ping>}
                {<-n>}
                {<-w>}
                {<1>}
                {<-c>}
                {<1>}
                {<10.0.0.1>}
              ]
              redirects: []
              do_fork: T
            )
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <Id.VSub_DollarName '$DEBUG'>
                  more_env: []
                  words: [{($ Id.VSub_DollarName DEBUG)}]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <rump.netstat>
                  more_env: []
                  words: [{<rump.netstat>} {<-rn>} {<-f>} {<inet>}]
                  redirects: []
                  do_fork: T
                )
              ]
              ops: [<Id.Op_DAmp _>]
            )
            (command.Simple
              blame_tok: <check_route_no_entry>
              more_env: []
              words: [{<check_route_no_entry>} {<10.0.0.1>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_check>
              more_env: []
              words: [
                {<atf_check>}
                {<-s>}
                {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>}
                {<-o>}
                {<ignore>}
                {<rump.route>}
                {<delete>}
                {<-net>}
                {<'10.0.0.0/24'>}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_check>
              more_env: []
              words: [
                {<atf_check>}
                {<-s>}
                {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>}
                {<-o>}
                {<ignore>}
                {<rump.route>}
                {<add>}
                {<-net>}
                {<'10.0.0.0/24'>}
                {<127.0.0.1>}
                {<-reject>}
              ]
              redirects: []
              do_fork: T
            )
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <Id.VSub_DollarName '$DEBUG'>
                  more_env: []
                  words: [{($ Id.VSub_DollarName DEBUG)}]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <rump.netstat>
                  more_env: []
                  words: [{<rump.netstat>} {<-rn>} {<-f>} {<inet>}]
                  redirects: []
                  do_fork: T
                )
              ]
              ops: [<Id.Op_DAmp _>]
            )
            (command.Simple
              blame_tok: <check_route_flags>
              more_env: []
              words: [{<check_route_flags>} {<'10.0.0/24'>} {<UGRS>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_check>
              more_env: []
              words: [
                {<atf_check>}
                {<-s>}
                {<not-exit> <Id.Lit_Colon ':'> <0>}
                {<-o>}
                {<ignore>}
                {<-e>}
                {<match> <Id.Lit_Colon ':'> (SQ <'Network is unreachable'>)}
                {<rump.ping>}
                {<-n>}
                {<-w>}
                {<1>}
                {<-c>}
                {<1>}
                {<10.0.0.1>}
              ]
              redirects: []
              do_fork: T
            )
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <Id.VSub_DollarName '$DEBUG'>
                  more_env: []
                  words: [{($ Id.VSub_DollarName DEBUG)}]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <rump.netstat>
                  more_env: []
                  words: [{<rump.netstat>} {<-rn>} {<-f>} {<inet>}]
                  redirects: []
                  do_fork: T
                )
              ]
              ops: [<Id.Op_DAmp _>]
            )
            (command.Simple
              blame_tok: <check_route_no_entry>
              more_env: []
              words: [{<check_route_no_entry>} {<10.0.0.1>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_check>
              more_env: []
              words: [
                {<atf_check>}
                {<-s>}
                {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>}
                {<-o>}
                {<ignore>}
                {<rump.route>}
                {<delete>}
                {<-net>}
                {<'10.0.0.0/24'>}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_check>
              more_env: []
              words: [
                {<atf_check>}
                {<-s>}
                {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>}
                {<-o>}
                {<ignore>}
                {<rump.route>}
                {<add>}
                {<-host>}
                {<'10.0.0.1/24'>}
                {<127.0.0.1>}
                {<-iface>}
                {<-reject>}
              ]
              redirects: []
              do_fork: T
            )
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <Id.VSub_DollarName '$DEBUG'>
                  more_env: []
                  words: [{($ Id.VSub_DollarName DEBUG)}]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <rump.netstat>
                  more_env: []
                  words: [{<rump.netstat>} {<-rn>} {<-f>} {<inet>}]
                  redirects: []
                  do_fork: T
                )
              ]
              ops: [<Id.Op_DAmp _>]
            )
            (command.Simple
              blame_tok: <check_route_flags>
              more_env: []
              words: [{<check_route_flags>} {<10.0.0.1>} {<UHRS>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_check>
              more_env: []
              words: [
                {<atf_check>}
                {<-s>}
                {<not-exit> <Id.Lit_Colon ':'> <0>}
                {<-o>}
                {<ignore>}
                {<-e>}
                {<match> <Id.Lit_Colon ':'> (SQ <'No route to host'>)}
                {<rump.ping>}
                {<-n>}
                {<-w>}
                {<1>}
                {<-c>}
                {<1>}
                {<10.0.0.1>}
              ]
              redirects: []
              do_fork: T
            )
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <Id.VSub_DollarName '$DEBUG'>
                  more_env: []
                  words: [{($ Id.VSub_DollarName DEBUG)}]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <rump.netstat>
                  more_env: []
                  words: [{<rump.netstat>} {<-rn>} {<-f>} {<inet>}]
                  redirects: []
                  do_fork: T
                )
              ]
              ops: [<Id.Op_DAmp _>]
            )
            (command.ControlFlow keyword:<Id.ControlFlow_Return return> arg_word:{<0>})
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <test_icmp_redirect>
      name: test_icmp_redirect
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          doc_token: <Id.Ignored_Comment _>
          children: [
            (command.Simple
              blame_tok: <setup_gw>
              more_env: []
              words: [{<setup_gw>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <export>
              more_env: []
              words: [{<export>} {<Id.Lit_VarLike 'RUMP_SERVER='> ($ Id.VSub_DollarName SOCK_PEER)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_check>
              more_env: []
              words: [
                {<atf_check>}
                {<-s>}
                {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>}
                {<-o>}
                {<ignore>}
                {<rump.route>}
                {<add>}
                {<-net>}
                {<'10.0.2.0/24'>}
                {<10.0.0.254>}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <check_route_flags>
              more_env: []
              words: [{<check_route_flags>} {<'10.0.2/24'>} {<UGS>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <export>
              more_env: []
              words: [{<export>} {<Id.Lit_VarLike 'RUMP_SERVER='> ($ Id.VSub_DollarName SOCK_LOCAL)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_check>
              more_env: []
              words: [
                {<atf_check>}
                {<-s>}
                {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>}
                {<-o>}
                {<ignore>}
                {<rump.route>}
                {<add>}
                {<default>}
                {<10.0.0.1>}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <check_route_flags>
              more_env: []
              words: [{<check_route_flags>} {<default>} {<UGS>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_check>
              more_env: []
              words: [
                {<atf_check>}
                {<-s>}
                {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>}
                {<-o>}
                {<ignore>}
                {<rump.ping>}
                {<-n>}
                {<-w>}
                {<1>}
                {<-c>}
                {<1>}
                {<10.0.2.1>}
              ]
              redirects: []
              do_fork: T
            )
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <Id.VSub_DollarName '$DEBUG'>
                  more_env: []
                  words: [{($ Id.VSub_DollarName DEBUG)}]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <rump.netstat>
                  more_env: []
                  words: [{<rump.netstat>} {<-rn>} {<-f>} {<inet>}]
                  redirects: []
                  do_fork: T
                )
              ]
              ops: [<Id.Op_DAmp _>]
            )
            (command.Simple
              blame_tok: <check_route_flags>
              more_env: []
              words: [{<check_route_flags>} {<10.0.2.1>} {<UGHD>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <check_route_gw>
              more_env: []
              words: [{<check_route_gw>} {<10.0.2.1>} {<10.0.0.254>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <export>
              more_env: []
              words: [{<export>} {<Id.Lit_VarLike 'RUMP_SERVER='> ($ Id.VSub_DollarName SOCK_PEER)}]
              redirects: []
              do_fork: T
            )
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <Id.VSub_DollarName '$DEBUG'>
                  more_env: []
                  words: [{($ Id.VSub_DollarName DEBUG)}]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <rump.netstat>
                  more_env: []
                  words: [{<rump.netstat>} {<-rn>} {<-f>} {<inet>}]
                  redirects: []
                  do_fork: T
                )
              ]
              ops: [<Id.Op_DAmp _>]
            )
            (command.Simple
              blame_tok: <export>
              more_env: []
              words: [{<export>} {<Id.Lit_VarLike 'RUMP_SERVER='> ($ Id.VSub_DollarName SOCK_LOCAL)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_check>
              more_env: []
              words: [
                {<atf_check>}
                {<-s>}
                {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>}
                {<-o>}
                {<ignore>}
                {<rump.route>}
                {<add>}
                {<10.0.2.2>}
                {<10.0.0.1>}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <check_route_flags>
              more_env: []
              words: [{<check_route_flags>} {<10.0.2.2>} {<UGHS>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <check_route_gw>
              more_env: []
              words: [{<check_route_gw>} {<10.0.2.2>} {<10.0.0.1>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_check>
              more_env: []
              words: [
                {<atf_check>}
                {<-s>}
                {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>}
                {<-o>}
                {<ignore>}
                {<rump.ping>}
                {<-n>}
                {<-w>}
                {<1>}
                {<-c>}
                {<1>}
                {<10.0.2.2>}
              ]
              redirects: []
              do_fork: T
            )
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <Id.VSub_DollarName '$DEBUG'>
                  more_env: []
                  words: [{($ Id.VSub_DollarName DEBUG)}]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <rump.netstat>
                  more_env: []
                  words: [{<rump.netstat>} {<-rn>} {<-f>} {<inet>}]
                  redirects: []
                  do_fork: T
                )
              ]
              ops: [<Id.Op_DAmp _>]
            )
            (command.Simple
              blame_tok: <check_route_flags>
              more_env: []
              words: [{<check_route_flags>} {<10.0.2.2>} {<UGHMS>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <check_route_gw>
              more_env: []
              words: [{<check_route_gw>} {<10.0.2.2>} {<10.0.0.254>}]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <test_announce>
      name: test_announce
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <export>
              more_env: []
              words: [{<export>} {<Id.Lit_VarLike 'RUMP_SERVER='> ($ Id.VSub_DollarName SOCK_LOCAL)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_check>
              more_env: []
              words: [
                {<atf_check>}
                {<-s>}
                {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>}
                {<-o>}
                {<ignore>}
                {<rump.route>}
                {<delete>}
                {<-net>}
                {<'10.0.0.0/24'>}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_check>
              more_env: []
              words: [
                {<atf_check>}
                {<-s>}
                {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>}
                {<-o>}
                {<ignore>}
                {<rump.route>}
                {<add>}
                {<-net>}
                {<'10.0.0.0/24'>}
                {<10.0.0.1>}
                {<-proxy>}
              ]
              redirects: []
              do_fork: T
            )
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <Id.VSub_DollarName '$DEBUG'>
                  more_env: []
                  words: [{($ Id.VSub_DollarName DEBUG)}]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <rump.netstat>
                  more_env: []
                  words: [{<rump.netstat>} {<-rn>} {<-f>} {<inet>}]
                  redirects: []
                  do_fork: T
                )
              ]
              ops: [<Id.Op_DAmp _>]
            )
            (command.Simple
              blame_tok: <check_route_flags>
              more_env: []
              words: [{<check_route_flags>} {<'10.0.0/24'>} {<UGSp>}]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <add_test>
      name: add_test
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <local>
              more_env: []
              words: [{<local>} {<Id.Lit_VarLike 'name='> ($ Id.VSub_Number 1)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <local>
              more_env: []
              words: [{<local>} {<Id.Lit_VarLike 'desc='> (DQ ($ Id.VSub_Number 2))}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_test_case>
              more_env: []
              words: [{<atf_test_case>} {(DQ <route_flags_> (${ Id.VSub_Name name))} {<cleanup>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <eval>
              more_env: []
              words: [
                {<eval>}
                {
                  (DQ <route_flags_> (${ Id.VSub_Name name) <'_head() { '> <'\t\t\tatf_set '> 
                    (word_part.EscapedLiteral
                      token: <Id.Lit_EscapedChar '\\"'>
                      ch: '"'
                    ) <descr> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <' '> 
                    (word_part.EscapedLiteral
                      token: <Id.Lit_EscapedChar '\\"'>
                      ch: '"'
                    ) (${ Id.VSub_Name desc) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <'; '> 
                    <'\t\t\tatf_set '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <require.progs> 
                    (word_part.EscapedLiteral
                      token: <Id.Lit_EscapedChar '\\"'>
                      ch: '"'
                    ) <' '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <rump_server> 
                    (word_part.EscapedLiteral
                      token: <Id.Lit_EscapedChar '\\"'>
                      ch: '"'
                    ) <'; '> <'\t\t}; '> <'\t    route_flags_'> (${ Id.VSub_Name name) <'_body() { '> <'\t\t\tsetup_local; '> 
                    <'\t\t\tsetup_peer; '> <'\t\t\ttest_'> (${ Id.VSub_Name name) <'; '> <'\t\t\trump_server_destroy_ifaces; '> <'\t\t}; '> 
                    <'\t    route_flags_'> (${ Id.VSub_Name name) <'_cleanup() { '> <'\t\t\t'> ($ Id.VSub_DollarName DEBUG) <' && dump; '> 
                    <'\t\t\tcleanup; '> <'\t\t}'>
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <atf_add_test_case>
              more_env: []
              words: [{<atf_add_test_case>} {(DQ <route_flags_> (${ Id.VSub_Name name))}]
              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: <add_test>
              more_env: []
              words: [{<add_test>} {<lo>} {(DQ <'Tests route flags: loop back interface'>)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <add_test>
              more_env: []
              words: [{<add_test>} {<connected>} {(DQ <'Tests route flags: connected route'>)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <add_test>
              more_env: []
              words: [{<add_test>} {<default_gateway>} {(DQ <'Tests route flags: default gateway'>)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <add_test>
              more_env: []
              words: [{<add_test>} {<static>} {(DQ <'Tests route flags: static route'>)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <add_test>
              more_env: []
              words: [{<add_test>} {<blackhole>} {(DQ <'Tests route flags: blackhole route'>)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <add_test>
              more_env: []
              words: [{<add_test>} {<reject>} {(DQ <'Tests route flags: reject route'>)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <add_test>
              more_env: []
              words: [{<add_test>} {<icmp_redirect>} {(DQ <'Tests route flags: icmp redirect'>)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <add_test>
              more_env: []
              words: [{<add_test>} {<announce>} {(DQ <'Tests route flags: announce flag'>)}]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
  ]
)