From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:40454) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YQdsa-00070l-0n for qemu-devel@nongnu.org; Wed, 25 Feb 2015 10:28:05 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1YQdsX-0001or-9e for qemu-devel@nongnu.org; Wed, 25 Feb 2015 10:28:03 -0500 Received: from mail-we0-x22e.google.com ([2a00:1450:400c:c03::22e]:46689) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YQdsX-0001ok-2s for qemu-devel@nongnu.org; Wed, 25 Feb 2015 10:28:01 -0500 Received: by wevm14 with SMTP id m14so4281505wev.13 for ; Wed, 25 Feb 2015 07:28:00 -0800 (PST) Date: Wed, 25 Feb 2015 15:27:57 +0000 From: Stefan Hajnoczi Message-ID: <20150225152757.GD2922@stefanha-thinkpad.redhat.com> References: <1424385003-9412-1-git-send-email-jsnow@redhat.com> <1424385003-9412-8-git-send-email-jsnow@redhat.com> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="tEFtbjk+mNEviIIX" Content-Disposition: inline In-Reply-To: <1424385003-9412-8-git-send-email-jsnow@redhat.com> Subject: Re: [Qemu-devel] [PATCH 7/8] qtest/ahci: add qcow2 support to ahci-test List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: John Snow Cc: kwolf@redhat.com, qemu-devel@nongnu.org, stefanha@redhat.com, armbru@redhat.com --tEFtbjk+mNEviIIX Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Thu, Feb 19, 2015 at 05:30:02PM -0500, John Snow wrote: > diff --git a/tests/libqos/libqos.c b/tests/libqos/libqos.c > index bc8beb2..3577401 100644 > --- a/tests/libqos/libqos.c > +++ b/tests/libqos/libqos.c > @@ -61,3 +61,33 @@ void qtest_shutdown(QOSState *qs) > qtest_quit(qs->qts); > g_free(qs); > } > + > +int mkqcow2(const char *file, unsigned size_mb) > +{ > + pid_t pid; > + int rc; > + char buff[32]; > + > + snprintf(buff, 32, "%uM", size_mb); > + > + pid =3D fork(); > + switch (pid) { > + case -1: > + perror("fork failed"); > + return -1; > + case 0: > + close(fileno(stdout)); > + rc =3D open("/dev/null", O_WRONLY); > + g_assert_cmpint(rc, =3D=3D, fileno(stdout)); > + execl("./qemu-img", "qemu-img", "create", "-f", "qcow2", > + file, buff, NULL); Where is the current working directory set? Will this work for both in-tree and out-of-tree builds? BTW, glib abstracts process spawning, maybe all this can be done in a single function call: https://developer.gnome.org/glib/stable/glib-Spawning-Processes.html#g-spaw= n-sync > + perror("execl failed"); > + exit(-1); EXIT_FAILURE is provided by the C standard for returning failure. (-1 is confusing because the shell exit code value cannot be negative.) > + default: > + wait(&rc); > + g_assert_cmpint(rc, =3D=3D, 0); > + return rc; > + } > + > + g_assert_not_reached(); > +} > diff --git a/tests/libqos/libqos.h b/tests/libqos/libqos.h > index 612d41e..5abd2bd 100644 > --- a/tests/libqos/libqos.h > +++ b/tests/libqos/libqos.h > @@ -19,6 +19,7 @@ typedef struct QOSState { > QOSState *qtest_vboot(QOSOps *ops, const char *cmdline_fmt, va_list ap); > QOSState *qtest_boot(QOSOps *ops, const char *cmdline_fmt, ...); > void qtest_shutdown(QOSState *qs); > +int mkqcow2(const char *file, unsigned size_mb); > =20 > static inline uint64_t qmalloc(QOSState *q, size_t bytes) > { > --=20 > 1.9.3 >=20 >=20 --tEFtbjk+mNEviIIX Content-Type: application/pgp-signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v1 iQEcBAEBAgAGBQJU7en9AAoJEJykq7OBq3PIJNoH/0qBVeL0Po3Q+j8RPfgasz7V 6/igMz0Alto+eRUtmMpgFaYNORE+ZUhNYUKa8BGMzuZDQgd33QtQdnlE0S9royHc LTsZPxryTnIKuarkjSowltVbilGHvx4/c039BTFCvhXYrAgf+dOCu8cuxp/a0KPJ /i44Y57uDN/e+tBV6DI51YlQ2e9CqP+r8ptRg4xCmjxg57NHPoOq+Z5a6mmkdgNs kdmSvC2+18L43BsBqzNkgWxcd4mke+rMYqDZ83EFeQrjOQqheDsXP39+MziAhALs PlsbIEI8NRSrKZBSpQMBCyY+TDQzEtc9Wp9wzvJCxtO3Mdxfko4tNtcVtfChUf8= =q4tH -----END PGP SIGNATURE----- --tEFtbjk+mNEviIIX--