(command.CommandList children: [ (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: [87] ) ] ) (command.ShFunction name: run_test body: (BraceGroup children: [ (C {<local>} {<Id.Lit_VarLike 'name='> (DQ ($ Id.VSub_Number '$1'))}) (C {<local>} {<Id.Lit_VarLike 'opts='> (DQ ($ Id.VSub_Number '$2'))}) (C {<local>} {<Id.Lit_VarLike 'mcast='> (DQ (command_sub left_token:<Id.Left_DollarParen '$('> child:(C {<atf_get_srcdir>})) <'/mcast'> ) } ) (C {<rump_server_start>} {($ Id.VSub_DollarName '$RUMP_SERVER')} {<netinet6>}) (C {<rump_server_add_iface>} {($ Id.VSub_DollarName '$RUMP_SERVER')} {<shmif0>} {<bus1>}) (C {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<rump.ifconfig>} {<shmif0>} {<'10.0.0.2/24'>} ) (C {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<rump.ifconfig>} {<shmif0>} {<inet6>} {<fc00> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <'2/64'>} ) (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>} {<rump.ifconfig>} {<-w>} {<10>} ) (C {<atf_check>} {<-s>} {<not-exit> <Id.Lit_Colon ':'> <0>} {<-x>} {(DQ <'rump.ifconfig shmif0 |grep -q tentative'>)} ) (C {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<-o>} {<ignore>} {<rump.route>} {<add>} {<default>} {<10.0.0.1>} ) (C {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<-o>} {<ignore>} {<rump.route>} {<add>} {<-inet6>} {<default>} {<fc00> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <1>} ) (command.AndOr ops: [Id.Op_DAmp] children: [(C {($ Id.VSub_DollarName '$DEBUG')}) (C {<rump.ifconfig>})] ) (command.AndOr ops: [Id.Op_DAmp] children: [(C {($ Id.VSub_DollarName '$DEBUG')}) (C {<rump.netstat>} {<-nr>})] ) (C {<export>} {<Id.Lit_VarLike 'LD_PRELOAD='> <'/usr/lib/librumphijack.so'>}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {($ Id.VSub_DollarName '$DEBUG')}) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {<-o>} {<ignore>} {($ Id.VSub_DollarName '$mcast')} {<-d>} {(${ Id.VSub_Name opts)} ) ] spids: [307 312] ) ] else_action: [ (C {<atf_check>} {<-s>} {<Id.ControlFlow_Exit exit> <Id.Lit_Colon ':'> <0>} {($ Id.VSub_DollarName '$mcast')} {(${ Id.VSub_Name opts)} ) ] ) (C {<unset>} {<LD_PRELOAD>}) ] ) ) (command.ShFunction name: add_test body: (BraceGroup children: [ (C {<local>} {<Id.Lit_VarLike 'name='> ($ Id.VSub_Number '$1')}) (C {<local>} {<Id.Lit_VarLike 'opts='> (DQ ($ Id.VSub_Number '$2'))}) (C {<local>} {<Id.Lit_VarLike 'desc='> (DQ ($ Id.VSub_Number '$3'))}) (C {<atf_test_case>} {(DQ <mcast_> (${ Id.VSub_Name name))} {<cleanup>}) (C {<eval>} { (DQ <mcast_> (${ Id.VSub_Name name) <'_head() { '> <'\t\t\tatf_set '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <descr> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <' '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) (${ Id.VSub_Name desc) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <'; '> <'\t\t\tatf_set '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <require.progs> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <' '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <rump_server> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <'; '> <'\t\t}; '> <'\t mcast_'> (${ Id.VSub_Name name) <'_body() { '> <'\t\t\trun_test '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) (${ Id.VSub_Name name) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <' '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) (${ Id.VSub_Name opts) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <'; '> <'\t\t\trump_server_destroy_ifaces; '> <'\t\t}; '> <'\t mcast_'> (${ Id.VSub_Name name) <'_cleanup() { '> <'\t\t\t'> (${ Id.VSub_Name DEBUG) <' && dump; '> <'\t\t\tcleanup; '> <'\t\t}'> ) } ) (C {<atf_add_test_case>} {(DQ <mcast_> (${ Id.VSub_Name name))}) ] ) ) (command.ShFunction name: atf_init_test_cases body: (BraceGroup children: [ (C {<add_test>} {<conninet4>} {(DQ <'-c -4'>)} {(DQ <'Checks connected multicast for ipv4'>)}) (C {<add_test>} {<connmappedinet4>} {(DQ <'-c -m -4'>)} {(DQ <'Checks connected multicast for mapped ipv4'>)} ) (C {<add_test>} {<connmappedbuginet4>} {(DQ <'-c -m -b -4'>)} {(DQ <'Checks connected multicast for mapped ipv4 using the v4 ioctls'>)} ) (C {<add_test>} {<conninet6>} {(DQ <'-c -6'>)} {(DQ <'Checks connected multicast for ipv6'>)}) (C {<add_test>} {<unconninet4>} {(DQ <-4>)} {(DQ <'Checks unconnected multicast for ipv4'>)}) (C {<add_test>} {<unconnmappedinet4>} {(DQ <'-m -4'>)} {(DQ <'Checks unconnected multicast for mapped ipv4'>)} ) (C {<add_test>} {<unconnmappedbuginet4>} {(DQ <'-m -b -4'>)} {(DQ <'Checks unconnected multicast for mapped ipv4 using the v4 ioctls'>)} ) (C {<add_test>} {<unconninet6>} {(DQ <-6>)} {(DQ <'Checks unconnected multicast for ipv6'>)}) ] ) ) ] )