atf_tc_set_md_var(tc, "descr", "Checks that OOSIOCGIFBRDADDR works "
"(PR kern/44054)");
}
ATF_TC_BODY(OOSIOCGIFBRDADDR, tc)
{
int fd, ifnum;
struct oifreq ifreq;
struct sockaddr_in *sin;
int rv;
memset(&ifreq,'\0',sizeof ifreq);
rump_init();
/* create an interface and give it netmask 0xffff0000 */
rv = rump_pub_shmif_create("bus", &ifnum);
if (rv)
atf_tc_fail("failed to create shmif: %s", strerror(rv));
sprintf(ifreq.ifr_name, "shmif%d", ifnum);
netcfg_rump_if(ifreq.ifr_name, "1.7.64.10", "255.255.0.0");
atf_tc_expect_fail("PR kern/51610: rump does not include COMPAT_43");
/* make sure we got what we deserve */
sin = (struct sockaddr_in *)&ifreq.ifr_broadaddr;
ATF_REQUIRE_EQ(sin->sin_addr.s_addr, htonl(0x0107ffff));
rump_sys_close(fd);
}