提交 caf8e915 编写于 作者: C Cole Robinson

tests: Add storage volume XML 2 XML tests.

上级 6d8331fd
......@@ -16,6 +16,7 @@ qemuhelptest
networkxml2xmltest
nodedevxml2xmltest
interfacexml2xmltest
storagevolxml2xmltest
storagepoolxml2xmltest
nodeinfotest
statstest
......
......@@ -65,7 +65,8 @@ EXTRA_DIST = \
storagepoolxml2xmlout \
storagepoolxml2xmlin \
storagevolschematest \
storagevolschemadata \
storagevolxml2xmlout \
storagevolxml2xmlin \
nodedevschematest \
nodedevschemadata \
$(patsubst %,qemuhelpdata/%,$(qemuhelpdata))
......@@ -99,7 +100,7 @@ endif
noinst_PROGRAMS += networkxml2xmltest
noinst_PROGRAMS += storagepoolxml2xmltest
noinst_PROGRAMS += storagevolxml2xmltest storagepoolxml2xmltest
noinst_PROGRAMS += nodedevxml2xmltest
......@@ -176,7 +177,7 @@ endif
TESTS += networkxml2xmltest
TESTS += storagepoolxml2xmltest
TESTS += storagevolxml2xmltest storagepoolxml2xmltest
TESTS += nodedevxml2xmltest
......@@ -279,6 +280,11 @@ networkxml2xmltest_SOURCES = \
testutils.c testutils.h
networkxml2xmltest_LDADD = $(LDADDS)
storagevolxml2xmltest_SOURCES = \
storagevolxml2xmltest.c \
testutils.c testutils.h
storagevolxml2xmltest_LDADD = $(LDADDS)
storagepoolxml2xmltest_SOURCES = \
storagepoolxml2xmltest.c \
testutils.c testutils.h
......
......@@ -2,8 +2,7 @@
source ./schematestutils.sh
DIRS="storagevolschemadata"
DIRS="storagevolxml2xmlin storagevolxml2xmlout"
SCHEMA="storagevol.rng"
check_schema "$DIRS" "$SCHEMA"
<volume>
<name>sparse.img</name>
<source/>
<capacity>10000000000</capacity>
<allocation>0</allocation>
<target>
<path>/var/lib/libvirt/images/sparse.img</path>
<permissions>
<mode>0</mode>
<owner>0744</owner>
<group>0</group>
</permissions>
</target>
<backingStore>
<path>/var/lib/virt/images/master.img</path>
<format type='vmdk'/>
<permissions>
<mode>0744</mode>
<owner>1</owner>
<group>1</group>
<label>virt_image_t</label>
</permissions>
</backingStore>
</volume>
<volume>
<name>sparse.img</name>
<source/>
<capacity unit="T">1</capacity>
<allocation>0</allocation>
<target>
<path>/var/lib/libvirt/images/sparse.img</path>
<permissions>
<mode>0</mode>
<owner>0744</owner>
<group>0</group>
<label>virt_image_t</label>
</permissions>
</target>
</volume>
<volume>
<name>Swap</name>
<key>r4xkCv-MQhr-WKIT-R66x-Epn2-e8hG-1Z5gY0</key>
<source>
<device path='/dev/sda2'>
<extent start='31440502784' end='33520877568'/>
</device>
</source>
<capacity>2080374784</capacity>
<allocation>2080374784</allocation>
<target>
<path>/dev/HostVG/Swap</path>
<permissions>
<mode>0660</mode>
<owner>0</owner>
<group>6</group>
<label>system_u:object_r:fixed_disk_device_t:s0</label>
</permissions>
</target>
<backingStore>
<path>/dev/HostVG/snapshot</path>
<permissions>
<mode>0744</mode>
<owner>1</owner>
<group>1</group>
<label>virt_image_t</label>
</permissions>
</backingStore>
</volume>
......@@ -11,7 +11,7 @@
<target>
<path>/dev/HostVG/Swap</path>
<permissions>
<mode>060660</mode>
<mode>0660</mode>
<owner>0</owner>
<group>6</group>
<label>system_u:object_r:fixed_disk_device_t:s0</label>
......
......@@ -12,7 +12,7 @@
<path>/dev/sda1</path>
<format type='none'/>
<permissions>
<mode>060660</mode>
<mode>0660</mode>
<owner>0</owner>
<group>6</group>
<label>system_u:object_r:fixed_disk_device_t:s0</label>
......
......@@ -9,7 +9,7 @@
<path>/var/lib/libvirt/images/OtherDemo.img</path>
<format type='qcow2'/>
<permissions>
<mode>0100644</mode>
<mode>0644</mode>
<owner>0</owner>
<group>0</group>
<label>unconfined_u:object_r:virt_image_t:s0</label>
......@@ -22,7 +22,7 @@
<path>/var/lib/libvirt/images/BaseDemo.img</path>
<format type='raw'/>
<permissions>
<mode>0100644</mode>
<mode>0644</mode>
<owner>0</owner>
<group>0</group>
<label>unconfined_u:object_r:virt_image_t:s0</label>
......
<volume>
<name>sparse.img</name>
<key>(null)</key>
<source>
</source>
<capacity>10000000000</capacity>
<allocation>0</allocation>
<target>
<path>/var/lib/libvirt/images/sparse.img</path>
<format type='raw'/>
<permissions>
<mode>00</mode>
<owner>744</owner>
<group>0</group>
</permissions>
</target>
<backingStore>
<path>/var/lib/virt/images/master.img</path>
<format type='vmdk'/>
<permissions>
<mode>0744</mode>
<owner>1</owner>
<group>1</group>
<label>virt_image_t</label>
</permissions>
</backingStore>
</volume>
<volume>
<name>sparse.img</name>
<key>(null)</key>
<source>
</source>
<capacity>1099511627776</capacity>
<allocation>0</allocation>
<target>
<path>/var/lib/libvirt/images/sparse.img</path>
<format type='raw'/>
<permissions>
<mode>00</mode>
<owner>744</owner>
<group>0</group>
<label>virt_image_t</label>
</permissions>
</target>
</volume>
<volume>
<name>Swap</name>
<key>(null)</key>
<source>
</source>
<capacity>2080374784</capacity>
<allocation>2080374784</allocation>
<target>
<path>/dev/HostVG/Swap</path>
<permissions>
<mode>0660</mode>
<owner>0</owner>
<group>6</group>
<label>system_u:object_r:fixed_disk_device_t:s0</label>
</permissions>
</target>
<backingStore>
<path>/dev/HostVG/snapshot</path>
<permissions>
<mode>0744</mode>
<owner>1</owner>
<group>1</group>
<label>virt_image_t</label>
</permissions>
</backingStore>
</volume>
<volume>
<name>Swap</name>
<key>(null)</key>
<source>
</source>
<capacity>2080374784</capacity>
<allocation>2080374784</allocation>
<target>
<path>/dev/HostVG/Swap</path>
<permissions>
<mode>0660</mode>
<owner>0</owner>
<group>6</group>
<label>system_u:object_r:fixed_disk_device_t:s0</label>
</permissions>
</target>
</volume>
<volume>
<name>sda1</name>
<key>(null)</key>
<source>
</source>
<capacity>106896384</capacity>
<allocation>106896384</allocation>
<target>
<path>/dev/sda1</path>
<format type='none'/>
<permissions>
<mode>0660</mode>
<owner>0</owner>
<group>6</group>
<label>system_u:object_r:fixed_disk_device_t:s0</label>
</permissions>
</target>
</volume>
<volume>
<name>OtherDemo.img</name>
<key>(null)</key>
<source>
</source>
<capacity>5368709120</capacity>
<allocation>294912</allocation>
<target>
<path>/var/lib/libvirt/images/OtherDemo.img</path>
<format type='qcow2'/>
<permissions>
<mode>0644</mode>
<owner>0</owner>
<group>0</group>
<label>unconfined_u:object_r:virt_image_t:s0</label>
</permissions>
<encryption format='qcow'>
<secret type='passphrase' uuid='e78d4b51-a2af-485f-b0f5-afca709a80f4'/>
</encryption>
</target>
<backingStore>
<path>/var/lib/libvirt/images/BaseDemo.img</path>
<format type='raw'/>
<permissions>
<mode>0644</mode>
<owner>0</owner>
<group>0</group>
<label>unconfined_u:object_r:virt_image_t:s0</label>
</permissions>
</backingStore>
</volume>
#include <config.h>
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <string.h>
#include <sys/types.h>
#include <fcntl.h>
#include "internal.h"
#include "testutils.h"
#include "storage_conf.h"
#include "testutilsqemu.h"
static char *progname;
static char *abs_srcdir;
#define MAX_FILE 4096
static int testCompareXMLToXMLFiles(const char *poolxml,
const char *inxml,
const char *outxml) {
char poolXmlData[MAX_FILE];
char *poolXmlPtr = &(poolXmlData[0]);
char inXmlData[MAX_FILE];
char *inXmlPtr = &(inXmlData[0]);
char outXmlData[MAX_FILE];
char *outXmlPtr = &(outXmlData[0]);
char *actual = NULL;
int ret = -1;
virStoragePoolDefPtr pool = NULL;
virStorageVolDefPtr dev = NULL;
if (virtTestLoadFile(poolxml, &poolXmlPtr, MAX_FILE) < 0)
goto fail;
if (virtTestLoadFile(inxml, &inXmlPtr, MAX_FILE) < 0)
goto fail;
if (virtTestLoadFile(outxml, &outXmlPtr, MAX_FILE) < 0)
goto fail;
if (!(pool = virStoragePoolDefParseString(NULL, poolXmlData)))
goto fail;
if (!(dev = virStorageVolDefParseString(NULL, pool, inXmlData)))
goto fail;
if (!(actual = virStorageVolDefFormat(NULL, pool, dev)))
goto fail;
if (STRNEQ(outXmlData, actual)) {
virtTestDifference(stderr, outXmlData, actual);
goto fail;
}
ret = 0;
fail:
free(actual);
virStoragePoolDefFree(pool);
virStorageVolDefFree(dev);
return ret;
}
struct testInfo {
const char *pool;
const char *name;
};
static int testCompareXMLToXMLHelper(const void *data) {
char poolxml[PATH_MAX];
char inxml[PATH_MAX];
char outxml[PATH_MAX];
const struct testInfo *info = data;
snprintf(poolxml, PATH_MAX, "%s/storagepoolxml2xmlin/%s.xml",
abs_srcdir, (const char*)info->pool);
snprintf(inxml, PATH_MAX, "%s/storagevolxml2xmlin/%s.xml",
abs_srcdir, (const char*)info->name);
snprintf(outxml, PATH_MAX, "%s/storagevolxml2xmlout/%s.xml",
abs_srcdir, (const char*)info->name);
return testCompareXMLToXMLFiles(poolxml, inxml, outxml);
}
static int
mymain(int argc, char **argv)
{
int ret = 0;
char cwd[PATH_MAX];
progname = argv[0];
if (argc > 1) {
fprintf(stderr, "Usage: %s\n", progname);
return (EXIT_FAILURE);
}
abs_srcdir = getenv("abs_srcdir");
if (!abs_srcdir)
abs_srcdir = getcwd(cwd, sizeof(cwd));
#define DO_TEST(pool, name) \
do { \
struct testInfo info = { pool, name }; \
if (virtTestRun("Storage Vol XML-2-XML " name, \
1, testCompareXMLToXMLHelper, &info) < 0) \
ret = -1; \
} \
while(0);
DO_TEST("pool-dir", "vol-file");
DO_TEST("pool-dir", "vol-file-backing");
DO_TEST("pool-dir", "vol-qcow2");
DO_TEST("pool-disk", "vol-partition");
DO_TEST("pool-logical", "vol-logical");
DO_TEST("pool-logical", "vol-logical-backing");
return (ret==0 ? EXIT_SUCCESS : EXIT_FAILURE);
}
VIRT_TEST_MAIN(mymain)
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册