virstoragetest: Stop rewriting images in 'mymain'

For testing of real images formatted by 'qemu-img' it's now sufficient
to format them once without the need to rewrtie them since we use the
real images only for testing of one scenario.

This allows us to also remove most of the global variables holding the
path to the images which was necessary when they were being rewritten.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
This commit is contained in:
Peter Krempa 2021-09-08 16:49:03 +02:00
parent dc80ca18e0
commit 2d6bd113e2
1 changed files with 4 additions and 29 deletions

View File

@ -37,28 +37,11 @@ VIR_LOG_INIT("tests.storagetest");
#define datadir abs_builddir "/virstoragedata"
/* This test creates the following files, all in datadir:
* raw: 1024-byte raw file
* qcow2: qcow2 file with 'raw' as backing
* wrap: qcow2 file with 'qcow2' as backing
*
* Relative names to these files are known at compile time, but absolute
* names depend on where the test is run; for convenience,
* we pre-populate the computation of these names for use during the test.
*/
static char *qemuimg;
static char *absraw;
static char *absqcow2;
static char *abswrap;
static void
testCleanupImages(void)
{
VIR_FREE(qemuimg);
VIR_FREE(absraw);
VIR_FREE(absqcow2);
VIR_FREE(abswrap);
if (chdir(abs_builddir) < 0) {
@ -106,8 +89,10 @@ testPrepImages(void)
bool compat = false;
g_autoptr(virCommand) cmd = NULL;
g_autofree char *buf = NULL;
g_autofree char *absraw = g_strdup_printf("%s/raw", datadir);
g_autofree char *absqcow2 = g_strdup_printf("%s/qcow2", datadir);
g_autofree char *qemuimg = virFindFileInPath("qemu-img");
qemuimg = virFindFileInPath("qemu-img");
if (!qemuimg)
goto skip;
@ -126,8 +111,6 @@ testPrepImages(void)
compat = true;
VIR_FREE(buf);
absraw = g_strdup_printf("%s/raw", datadir);
absqcow2 = g_strdup_printf("%s/qcow2", datadir);
abswrap = g_strdup_printf("%s/wrap", datadir);
if (g_mkdir_with_parents(datadir, 0777) < 0) {
@ -158,7 +141,7 @@ testPrepImages(void)
/* Make sure our later uses of 'qemu-img rebase' will work */
virCommandFree(cmd);
cmd = virCommandNewArgList(qemuimg, "rebase", "-u", "-f", "qcow2",
"-F", "raw", "-b", "raw", "qcow2", NULL);
"-F", "raw", "-b", absraw, "qcow2", NULL);
if (virCommandRun(cmd, NULL) < 0)
goto skip;
@ -469,7 +452,6 @@ mymain(void)
virStorageSource *chain = &fakeChain[0];
virStorageSource *chain2 = &fakeChain[1];
virStorageSource *chain3 = &fakeChain[2];
g_autoptr(virCommand) cmd = NULL;
if (storageRegisterAll() < 0)
return EXIT_FAILURE;
@ -505,13 +487,6 @@ mymain(void)
abs_srcdir "/virstoragetestdata/images/qcow2_raw-raw-relative.qcow2",
VIR_STORAGE_FILE_AUTO, EXP_PASS);
/* Rewrite qcow2 file to use absolute backing name */
virCommandFree(cmd);
cmd = virCommandNewArgList(qemuimg, "rebase", "-u", "-f", "qcow2",
"-F", "raw", "-b", absraw, "qcow2", NULL);
if (virCommandRun(cmd, NULL) < 0)
ret = -1;
/* qcow2 chain with absolute backing formatted with a real qemu-img */
TEST_CHAIN("qcow2-qcow2_qcow2-qcow2_raw-raw", abswrap, VIR_STORAGE_FILE_QCOW2, EXP_PASS);
TEST_CHAIN("qcow2-auto_qcow2-qcow2_raw-raw", abswrap, VIR_STORAGE_FILE_AUTO, EXP_PASS);