static int mymain(void) { struct metadataTest test; int ret = EXIT_SUCCESS; if (!(test.conn = virConnectOpen("test:///default"))) return EXIT_FAILURE; if (!(test.dom = virDomainLookupByName(test.conn, "test"))) { virConnectClose(test.conn); return EXIT_FAILURE; } virtTestQuiesceLibvirtErrors(false); if (virtTestRun("Assign metadata ", testAssignMetadata, &test) < 0) ret = EXIT_FAILURE; if (virtTestRun("Rewrite Metadata ", testRewriteMetadata, &test) < 0) ret = EXIT_FAILURE; if (virtTestRun("Erase metadata ", testEraseMetadata, &test) < 0) ret = EXIT_FAILURE; virDomainFree(test.dom); virConnectClose(test.conn); return ret; }
static int mymain(void) { struct metadataTest test; int ret = EXIT_SUCCESS; if (!(test.conn = virConnectOpen("test:///default"))) return EXIT_FAILURE; if (!(test.dom = virDomainLookupByName(test.conn, "test"))) { virConnectClose(test.conn); return EXIT_FAILURE; } virtTestQuiesceLibvirtErrors(false); if (virtTestRun("Assign metadata ", testAssignMetadata, &test) < 0) ret = EXIT_FAILURE; if (virtTestRun("Rewrite Metadata ", testRewriteMetadata, &test) < 0) ret = EXIT_FAILURE; if (virtTestRun("Erase metadata ", testEraseMetadata, &test) < 0) ret = EXIT_FAILURE; TEST_TITLE("1", "qwert"); TEST_TITLE("2", NULL); TEST_TITLE("3", "blah"); TEST_TITLE_FAIL("4", "qwe\nrt"); TEST_TITLE("5", ""); TEST_TITLE_FAIL("6", "qwert\n"); TEST_TITLE_FAIL("7", "\n"); TEST_DESCR("1", "qwert\nqwert"); TEST_DESCR("2", NULL); TEST_DESCR("3", "qwert"); TEST_DESCR("4", "\n"); TEST_DESCR("5", ""); virDomainFree(test.dom); virConnectClose(test.conn); return ret; }
static int mymain(void) { int ret = 0; /* Some of our tests deliberately test failure cases, so * register a handler to stop error messages cluttering * up display */ virtTestQuiesceLibvirtErrors(false); #define DO_TEST_PARSE_AND_FORMAT(addrstr, family, pass) \ do { \ virSocketAddr addr; \ struct testParseData data = { &addr, addrstr, family, pass }; \ memset(&addr, 0, sizeof(addr)); \ if (virtTestRun("Test parse " addrstr " family " #family, \ testParseHelper, &data) < 0) \ ret = -1; \ struct testFormatData data2 = { &addr, addrstr, pass }; \ if (virtTestRun("Test format " addrstr " family " #family, \ testFormatHelper, &data2) < 0) \ ret = -1; \ } while (0) #define DO_TEST_PARSE_AND_CHECK_FORMAT(addrstr, addrformated, family, pass) \ do { \ virSocketAddr addr; \ struct testParseData data = { &addr, addrstr, family, true}; \ memset(&addr, 0, sizeof(addr)); \ if (virtTestRun("Test parse " addrstr " family " #family, \ testParseHelper, &data) < 0) \ ret = -1; \ struct testFormatData data2 = { &addr, addrformated, pass }; \ if (virtTestRun("Test format " addrstr " family " #family, \ testFormatHelper, &data2) < 0) \ ret = -1; \ } while (0) #define DO_TEST_RANGE(saddr, eaddr, size, pass) \ do { \ struct testRangeData data = { saddr, eaddr, size, pass }; \ if (virtTestRun("Test range " saddr " -> " eaddr " size " #size, \ testRangeHelper, &data) < 0) \ ret = -1; \ } while (0) #define DO_TEST_NETMASK(addr1, addr2, netmask, pass) \ do { \ struct testNetmaskData data = { addr1, addr2, netmask, pass }; \ if (virtTestRun("Test netmask " addr1 " + " addr2 " in " netmask, \ testNetmaskHelper, &data) < 0) \ ret = -1; \ } while (0) #define DO_TEST_MASK_NETWORK(addr1, prefix, network) \ do { \ struct testMaskNetworkData data = { addr1, prefix, network }; \ if (virtTestRun("Test mask network " addr1 " / " #prefix " == " network, \ testMaskNetworkHelper, &data) < 0) \ ret = -1; \ } while (0) #define DO_TEST_WILDCARD(addr, pass) \ do { \ struct testWildcardData data = { addr, pass}; \ if (virtTestRun("Test wildcard " addr, \ testWildcardHelper, &data) < 0) \ ret = -1; \ } while (0) #define DO_TEST_NUMERIC_FAMILY(addr, pass) \ do { \ struct testNumericData data = { addr, pass }; \ if (virtTestRun("Test Numeric Family" addr, \ testNumericHelper, &data) < 0) \ ret = -1; \ } while (0) #define DO_TEST_LOCALHOST(addr, pass) \ do { \ struct testIsLocalhostData data = { addr, pass }; \ if (virtTestRun("Test localhost " addr, \ testIsLocalhostHelper, &data) < 0) \ ret = -1; \ } while (0) DO_TEST_PARSE_AND_FORMAT("127.0.0.1", AF_UNSPEC, true); DO_TEST_PARSE_AND_FORMAT("127.0.0.1", AF_INET, true); DO_TEST_PARSE_AND_FORMAT("127.0.0.1", AF_INET6, false); DO_TEST_PARSE_AND_FORMAT("127.0.0.1", AF_UNIX, false); DO_TEST_PARSE_AND_FORMAT("127.0.0.256", AF_UNSPEC, false); DO_TEST_PARSE_AND_CHECK_FORMAT("127.0.0.2", "127.0.0.2", AF_INET, true); DO_TEST_PARSE_AND_CHECK_FORMAT("127.0.0.2", "127.0.0.3", AF_INET, false); DO_TEST_PARSE_AND_CHECK_FORMAT("0", "0.0.0.0", AF_INET, true); DO_TEST_PARSE_AND_CHECK_FORMAT("127", "0.0.0.127", AF_INET, true); DO_TEST_PARSE_AND_CHECK_FORMAT("127", "127.0.0.0", AF_INET, false); DO_TEST_PARSE_AND_CHECK_FORMAT("127.2", "127.0.0.2", AF_INET, true); DO_TEST_PARSE_AND_CHECK_FORMAT("127.2", "127.2.0.0", AF_INET, false); DO_TEST_PARSE_AND_CHECK_FORMAT("1.2.3", "1.2.0.3", AF_INET, true); DO_TEST_PARSE_AND_CHECK_FORMAT("1.2.3", "1.2.3.0", AF_INET, false); DO_TEST_PARSE_AND_FORMAT("::1", AF_UNSPEC, true); DO_TEST_PARSE_AND_FORMAT("::1", AF_INET, false); DO_TEST_PARSE_AND_FORMAT("::1", AF_INET6, true); DO_TEST_PARSE_AND_FORMAT("::1", AF_UNIX, false); DO_TEST_PARSE_AND_FORMAT("::ffff", AF_UNSPEC, true); DO_TEST_RANGE("192.168.122.1", "192.168.122.1", 1, true); DO_TEST_RANGE("192.168.122.1", "192.168.122.20", 20, true); DO_TEST_RANGE("192.168.122.0", "192.168.122.255", 256, true); DO_TEST_RANGE("192.168.122.20", "192.168.122.1", -1, false); DO_TEST_RANGE("10.0.0.1", "192.168.122.20", -1, false); DO_TEST_RANGE("192.168.122.20", "10.0.0.1", -1, false); DO_TEST_RANGE("2000::1", "2000::1", 1, true); DO_TEST_RANGE("2000::1", "2000::2", 2, true); DO_TEST_RANGE("2000::2", "2000::1", -1, false); DO_TEST_RANGE("2000::1", "9001::1", -1, false); DO_TEST_NETMASK("192.168.122.1", "192.168.122.2", "255.255.255.0", true); DO_TEST_NETMASK("192.168.122.1", "192.168.122.4", "255.255.255.248", true); DO_TEST_NETMASK("192.168.122.1", "192.168.123.2", "255.255.255.0", false); DO_TEST_NETMASK("192.168.122.1", "192.168.123.2", "255.255.0.0", true); DO_TEST_NETMASK("2000::1:1", "2000::1:1", "ffff:ffff:ffff:ffff:ffff:ffff:ffff:0", true); DO_TEST_NETMASK("2000::1:1", "2000::2:1", "ffff:ffff:ffff:ffff:ffff:ffff:ffff:0", false); DO_TEST_NETMASK("2000::1:1", "2000::2:1", "ffff:ffff:ffff:ffff:ffff:ffff:fff8:0", true); DO_TEST_NETMASK("2000::1:1", "9000::1:1", "ffff:ffff:ffff:ffff:ffff:ffff:ffff:0", false); DO_TEST_MASK_NETWORK("2001:db8:ca2:2::1", 64, "2001:db8:ca2:2::"); DO_TEST_WILDCARD("0.0.0.0", true); DO_TEST_WILDCARD("::", true); DO_TEST_WILDCARD("0", true); DO_TEST_WILDCARD("0.0", true); DO_TEST_WILDCARD("0.0.0", true); DO_TEST_WILDCARD("1", false); DO_TEST_WILDCARD("0.1", false); DO_TEST_NUMERIC_FAMILY("0.0.0.0", AF_INET); DO_TEST_NUMERIC_FAMILY("::", AF_INET6); DO_TEST_NUMERIC_FAMILY("1", AF_INET); DO_TEST_NUMERIC_FAMILY("::ffff", AF_INET6); DO_TEST_NUMERIC_FAMILY("examplehost", -1); DO_TEST_LOCALHOST("127.0.0.1", true); DO_TEST_LOCALHOST("2130706433", true); DO_TEST_LOCALHOST("0177.0.0.01", true); DO_TEST_LOCALHOST("::1", true); DO_TEST_LOCALHOST("0::1", true); DO_TEST_LOCALHOST("0:0:0::1", true); DO_TEST_LOCALHOST("[00:0::1]", false); DO_TEST_LOCALHOST("[::1]", false); DO_TEST_LOCALHOST("128.0.0.1", false); DO_TEST_LOCALHOST("0.0.0.1", false); DO_TEST_LOCALHOST("hello", false); DO_TEST_LOCALHOST("fe80::1:1", false); return ret == 0 ? EXIT_SUCCESS : EXIT_FAILURE; }
static int mymain(void) { int ret = 0; virCommandPtr cmd; struct utsname ut; /* Skip test if xend is not running. Calling xend on a non-xen kernel causes some versions of xend to issue a crash report, so we first probe uname results. */ uname(&ut); if (strstr(ut.release, "xen") == NULL) return EXIT_AM_SKIP; cmd = virCommandNewArgList("/usr/sbin/xend", "status", NULL); if (virCommandRun(cmd, NULL) < 0) { virCommandFree(cmd); return EXIT_AM_SKIP; } virCommandFree(cmd); /* Some of our tests deliberately test failure cases, so * register a handler to stop error messages cluttering * up display */ virtTestQuiesceLibvirtErrors(false); #define DO_TEST(dev, num) \ do { \ struct testInfo info = { dev, num }; \ if (virtTestRun("Device " dev " -> " # num, \ testDeviceHelper, &info) < 0) \ ret = -1; \ } while (0) /******************************** * Xen paravirt disks ********************************/ DO_TEST("xvd", -1); /* first valid disk */ DO_TEST("xvda", 51712); DO_TEST("xvda1", 51713); DO_TEST("xvda15", 51727); /* Last non-extended disk */ DO_TEST("xvdp", 51952); DO_TEST("xvdp1", 51953); DO_TEST("xvdp15", 51967); /* First extended disk */ DO_TEST("xvdq", 268439552); DO_TEST("xvdq1", 268439553); DO_TEST("xvdq15", 268439567); /* Last extended disk */ DO_TEST("xvdiz", 268501760); DO_TEST("xvdiz1", 268501761); DO_TEST("xvdiz15", 268501775); /* Disk letter too large */ DO_TEST("xvdja", -1); /* missing disk letter */ DO_TEST("xvd1", -1); /* partition too large */ DO_TEST("xvda16", -1); /* partition too small */ DO_TEST("xvda0", -1); /* leading zeros */ DO_TEST("xvda01", -1); /* leading + */ DO_TEST("xvda+1", -1); /* leading - */ DO_TEST("xvda-1", -1); /******************************** * IDE disks ********************************/ DO_TEST("hd", -1); /* first numbered disk */ DO_TEST("hda", 768); DO_TEST("hda1", 769); DO_TEST("hda63", 831); /* second numbered disk */ DO_TEST("hdb", 832); DO_TEST("hdb1", 833); DO_TEST("hdb63", 895); /* third numbered disk */ DO_TEST("hdc", 5632); DO_TEST("hdc1", 5633); DO_TEST("hdc63", 5695); /* fourth numbered disk */ DO_TEST("hdd", 5696); DO_TEST("hdd1", 5697); DO_TEST("hdd63", 5759); /* last valid disk */ DO_TEST("hdt", 23360); DO_TEST("hdt1", 23361); DO_TEST("hdt63", 23423); /* Disk letter to large */ DO_TEST("hdu", -1); /* missing disk letter */ DO_TEST("hd1", -1); /* partition too large */ DO_TEST("hda64", -1); /* partition too small */ DO_TEST("hda0", -1); /******************************** * SCSI disks ********************************/ DO_TEST("sd", -1); /* first valid disk */ DO_TEST("sda", 2048); DO_TEST("sda1", 2049); DO_TEST("sda15", 2063); /* last valid disk of first SCSI major number */ DO_TEST("sdp", 2288); DO_TEST("sdp1", 2289); DO_TEST("sdp15", 2303); /* first valid disk of second SCSI major number */ DO_TEST("sdq", 16640); DO_TEST("sdq1", 16641); DO_TEST("sdq15", 16655); /* last valid single letter disk */ DO_TEST("sdz", 16784); DO_TEST("sdz1", 16785); DO_TEST("sdz15", 16799); /* first valid dual letter disk */ DO_TEST("sdaa", 16800); DO_TEST("sdaa1", 16801); DO_TEST("sdaa15", 16815); /* second valid dual letter disk */ DO_TEST("sdab", 16816); DO_TEST("sdab1", 16817); DO_TEST("sdab15", 16831); /* first letter of second sequence of dual letter disk */ DO_TEST("sdba", 17216); DO_TEST("sdba1", 17217); DO_TEST("sdba15", 17231); /* last valid dual letter disk */ DO_TEST("sdiv", 34800); DO_TEST("sdiv1", 34801); DO_TEST("sdiv15", 34815); /* Disk letter too large */ DO_TEST("sdix", -1); /* missing disk letter */ DO_TEST("sd1", -1); /* partition too large */ DO_TEST("sda16", -1); /* partition too small */ DO_TEST("sda0", -1); /* Path stripping */ DO_TEST("/dev", -1); DO_TEST("/dev/", -1); DO_TEST("/dev/xvd", -1); DO_TEST("/dev/xvda", 51712); DO_TEST("/dev/xvda1", 51713); DO_TEST("/dev/xvda15", 51727); return ret == 0 ? EXIT_SUCCESS : EXIT_FAILURE; }