(command.CommandList children: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:RUMP_FLAGS spids:[79]) op: Equal rhs: {(DQ ('-lrumpnet -lrumpnet_net -lrumpnet_netinet -lrumpnet_netinet6'))} spids: [79] ) ] spids: [79] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:RUMP_FLAGS spids:[84]) op: Equal rhs: {(DQ ($ VSub_DollarName '$RUMP_FLAGS') (' -lrumpnet_shmif -lrumpnet_tun -lrumpdev'))} spids: [84] ) ] spids: [84] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:BUS spids:[91]) op: Equal rhs: {(bus)} spids: [91] ) ] spids: [91] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:SOCK_LOCAL spids:[94]) op: Equal rhs: {(unix) (Lit_Other ':') (//commsock1)} spids: [94] ) ] spids: [94] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:SOCK_REMOTE spids:[99]) op: Equal rhs: {(unix) (Lit_Other ':') (//commsock2)} spids: [99] ) ] spids: [99] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:IP_LOCAL spids:[104]) op: Equal rhs: {(10.0.0.1)} spids: [104] ) ] spids: [104] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:IP_REMOTE spids:[107]) op: Equal rhs: {(10.0.0.2)} spids: [107] ) ] spids: [107] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:DEBUG spids:[111]) op: Equal rhs: { (word_part.BracedVarSub token: <VSub_Name DEBUG> suffix_op: (suffix_op.StringUnary op_id:VTest_ColonHyphen arg_word:{(true)}) spids: [112 116] ) } spids: [111] ) ] spids: [111] ) (C {(atf_test_case)} {(tun_create_destroy)} {(cleanup)}) (command.FuncDef name: tun_create_destroy_head body: (command.BraceGroup children: [ (C {(atf_set)} {(DQ (descr))} {(DQ ('tests of creation and deletion of tun interface'))}) (C {(atf_set)} {(DQ (require.progs))} {(DQ (rump_server))}) ] spids: [129] ) spids: [125 128] ) (command.FuncDef name: tun_create_destroy_body body: (command.BraceGroup children: [ (C {(atf_check)} {(-s)} {(ControlFlow_Exit exit) (Lit_Other ':') (0)} {(rump_server)} {(${ VSub_Name RUMP_FLAGS)} {(${ VSub_Name SOCK_LOCAL)} ) (C {(export)} {(Lit_VarLike 'RUMP_SERVER=') (${ VSub_Name SOCK_LOCAL)}) (C {(atf_check)} {(-s)} {(ControlFlow_Exit exit) (Lit_Other ':') (0)} {(rump.ifconfig)} {(tun0)} {(create)} ) (C {(atf_check)} {(-s)} {(ControlFlow_Exit exit) (Lit_Other ':') (0)} {(rump.ifconfig)} {(tun0)} {(up)} ) (C {(atf_check)} {(-s)} {(ControlFlow_Exit exit) (Lit_Other ':') (0)} {(rump.ifconfig)} {(tun0)} {(down)} ) (C {(atf_check)} {(-s)} {(ControlFlow_Exit exit) (Lit_Other ':') (0)} {(rump.ifconfig)} {(tun0)} {(destroy)} ) ] spids: [161] ) spids: [157 160] ) (command.FuncDef name: tun_create_destroy_cleanup body: (command.BraceGroup children: [ (command.SimpleCommand words: [{(rump.halt)}] more_env: [(env_pair name:RUMP_SERVER val:{(${ VSub_Name SOCK_LOCAL)} spids:[264])] ) ] spids: [260] ) spids: [256 259] ) (C {(atf_test_case)} {(tun_setup)} {(cleanup)}) (command.FuncDef name: tun_setup_head body: (command.BraceGroup children: [ (C {(atf_set)} {(DQ (descr))} {(DQ ('tests of setting up a tunnel'))}) (C {(atf_set)} {(DQ (require.progs))} {(DQ (rump_server))}) ] spids: [284] ) spids: [280 283] ) (command.FuncDef name: check_route_entry body: (command.BraceGroup children: [ (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:ip spids:[321]) op: Equal rhs: { (word_part.CommandSubPart command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {(echo)} {($ VSub_Number '$1')}) (C {(sed)} {(SQ <'s/\\./\\\\./g'>)}) ] negated: F ) ] ) left_token: <Left_CommandSub '$('> spids: [322 333] ) } spids: [321] ) ] spids: [319] ) (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:gw spids:[338]) op: Equal rhs: {($ VSub_Number '$2')} spids: [338] ) ] spids: [336] ) (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:flags spids:[344]) op: Equal rhs: {($ VSub_Number '$3')} spids: [344] ) ] spids: [342] ) (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:iface spids:[350]) op: Equal rhs: {($ VSub_Number '$4')} spids: [350] ) ] spids: [348] ) (C {(atf_check)} {(-s)} {(ControlFlow_Exit exit) (Lit_Other ':') (0)} {(-o)} {(match) (Lit_Other ':') (DQ (' ') ($ VSub_DollarName '$flags') (' '))} {(-e)} {(ignore)} {(-x)} {(DQ ("rump.netstat -rn -f inet | grep ^'") ($ VSub_DollarName '$ip') ("'"))} ) (C {(atf_check)} {(-s)} {(ControlFlow_Exit exit) (Lit_Other ':') (0)} {(-o)} {(match) (Lit_Other ':') (DQ (' ') ($ VSub_DollarName '$gw') (' '))} {(-e)} {(ignore)} {(-x)} {(DQ ("rump.netstat -rn -f inet | grep ^'") ($ VSub_DollarName '$ip') ("'"))} ) (C {(atf_check)} {(-s)} {(ControlFlow_Exit exit) (Lit_Other ':') (0)} {(-o)} {(match) (Lit_Other ':') (DQ (' ') ($ VSub_DollarName '$iface'))} {(-e)} {(ignore)} {(-x)} {(DQ ("rump.netstat -rn -f inet | grep ^'") ($ VSub_DollarName '$ip') ("'"))} ) ] spids: [316] ) spids: [312 315] ) (command.FuncDef name: tun_setup_body body: (command.BraceGroup children: [ (C {(atf_check)} {(-s)} {(ControlFlow_Exit exit) (Lit_Other ':') (0)} {(rump_server)} {(${ VSub_Name RUMP_FLAGS)} {(${ VSub_Name SOCK_LOCAL)} ) (C {(atf_check)} {(-s)} {(ControlFlow_Exit exit) (Lit_Other ':') (0)} {(rump_server)} {(${ VSub_Name RUMP_FLAGS)} {(${ VSub_Name SOCK_REMOTE)} ) (C {(export)} {(Lit_VarLike 'RUMP_SERVER=') (${ VSub_Name SOCK_LOCAL)}) (C {(atf_check)} {(-s)} {(ControlFlow_Exit exit) (Lit_Other ':') (0)} {(rump.ifconfig)} {(shmif0)} {(create)} ) (C {(atf_check)} {(-s)} {(ControlFlow_Exit exit) (Lit_Other ':') (0)} {(rump.ifconfig)} {(shmif0)} {(linkstr)} {($ VSub_DollarName '$BUS')} ) (C {(atf_check)} {(-s)} {(ControlFlow_Exit exit) (Lit_Other ':') (0)} {(rump.ifconfig)} {(shmif0)} {(${ VSub_Name IP_LOCAL) (/24)} {(up)} ) (C {(atf_check)} {(-s)} {(ControlFlow_Exit exit) (Lit_Other ':') (0)} {(rump.ifconfig)} {(-w)} {(10)} ) (C {(export)} {(Lit_VarLike 'RUMP_SERVER=') (${ VSub_Name SOCK_REMOTE)}) (C {(atf_check)} {(-s)} {(ControlFlow_Exit exit) (Lit_Other ':') (0)} {(rump.ifconfig)} {(shmif0)} {(create)} ) (C {(atf_check)} {(-s)} {(ControlFlow_Exit exit) (Lit_Other ':') (0)} {(rump.ifconfig)} {(shmif0)} {(linkstr)} {($ VSub_DollarName '$BUS')} ) (C {(atf_check)} {(-s)} {(ControlFlow_Exit exit) (Lit_Other ':') (0)} {(rump.ifconfig)} {(shmif0)} {(${ VSub_Name IP_REMOTE) (/24)} {(up)} ) (C {(atf_check)} {(-s)} {(ControlFlow_Exit exit) (Lit_Other ':') (0)} {(rump.ifconfig)} {(-w)} {(10)} ) (C {(export)} {(Lit_VarLike 'RUMP_SERVER=') (${ VSub_Name SOCK_LOCAL)}) (C {(atf_check)} {(-s)} {(ControlFlow_Exit exit) (Lit_Other ':') (0)} {(rump.ifconfig)} {(tun0)} {(create)} ) (C {(atf_check)} {(-s)} {(ControlFlow_Exit exit) (Lit_Other ':') (0)} {(rump.ifconfig)} {(tun0)} {(${ VSub_Name IP_LOCAL)} {(${ VSub_Name IP_REMOTE)} {(up)} ) (C {(atf_check)} {(-s)} {(ControlFlow_Exit exit) (Lit_Other ':') (0)} {(-o)} {(match) (Lit_Other ':') (DQ ('inet ') (${ VSub_Name IP_LOCAL) ('/32 -> ') (${ VSub_Name IP_REMOTE)) } {(rump.ifconfig)} {(tun0)} ) (command.AndOr ops: [Op_DAmp] children: [(C {($ VSub_DollarName '$DEBUG')}) (C {(rump.netstat)} {(-nr)} {(-f)} {(inet)})] ) (C {(check_route_entry)} {(${ VSub_Name IP_REMOTE)} {(${ VSub_Name IP_LOCAL)} {(UH)} {(tun0)}) (C {(export)} {(Lit_VarLike 'RUMP_SERVER=') (${ VSub_Name SOCK_REMOTE)}) (C {(atf_check)} {(-s)} {(ControlFlow_Exit exit) (Lit_Other ':') (0)} {(rump.ifconfig)} {(tun0)} {(create)} ) (C {(atf_check)} {(-s)} {(ControlFlow_Exit exit) (Lit_Other ':') (0)} {(rump.ifconfig)} {(tun0)} {(${ VSub_Name IP_REMOTE)} {(${ VSub_Name IP_LOCAL)} {(up)} ) (C {(atf_check)} {(-s)} {(ControlFlow_Exit exit) (Lit_Other ':') (0)} {(-o)} {(match) (Lit_Other ':') (DQ ('inet ') (${ VSub_Name IP_REMOTE) ('/32 -> ') (${ VSub_Name IP_LOCAL)) } {(rump.ifconfig)} {(tun0)} ) (command.AndOr ops: [Op_DAmp] children: [(C {($ VSub_DollarName '$DEBUG')}) (C {(rump.netstat)} {(-nr)} {(-f)} {(inet)})] ) (C {(check_route_entry)} {(${ VSub_Name IP_LOCAL)} {(${ VSub_Name IP_REMOTE)} {(UH)} {(tun0)}) ] spids: [459] ) spids: [455 458] ) (command.FuncDef name: tun_setup_cleanup body: (command.BraceGroup children: [ (command.SimpleCommand words: [{(rump.halt)}] more_env: [(env_pair name:RUMP_SERVER val:{(${ VSub_Name SOCK_LOCAL)} spids:[875])] ) (command.SimpleCommand words: [{(rump.halt)}] more_env: [(env_pair name:RUMP_SERVER val:{(${ VSub_Name SOCK_REMOTE)} spids:[883])] ) ] spids: [871] ) spids: [867 870] ) (command.FuncDef name: atf_init_test_cases body: (command.BraceGroup children: [ (C {(atf_add_test_case)} {(tun_create_destroy)}) (C {(atf_add_test_case)} {(tun_setup)}) ] spids: [897] ) spids: [893 896] ) ] )