From: John Snow <jsnow@redhat.com>
To: Kevin Wolf <kwolf@redhat.com>
Cc: qemu-devel@nongnu.org, stefanha@redhat.com, armbru@redhat.com
Subject: Re: [Qemu-devel] [PATCH v2 7/8] qtest/ahci: add qcow2 support to ahci-test
Date: Mon, 09 Mar 2015 16:34:48 -0400 [thread overview]
Message-ID: <54FE03E8.8010903@redhat.com> (raw)
In-Reply-To: <20150309142734.GE3593@noname.str.redhat.com>
On 03/09/2015 10:27 AM, Kevin Wolf wrote:
> Am 26.02.2015 um 00:06 hat John Snow geschrieben:
>> This will enable the testing of high offsets without
>> wasting a lot of disk space, and does not impact the
>> previous tests.
>>
>> mkimg and mkqcow2 are added to libqos for other tests.
>>
>> Signed-off-by: John Snow <jsnow@redhat.com>
>> ---
>> tests/Makefile | 1 +
>> tests/ahci-test.c | 16 ++++++----------
>> tests/libqos/libqos.c | 37 +++++++++++++++++++++++++++++++++++++
>> tests/libqos/libqos.h | 2 ++
>> 4 files changed, 46 insertions(+), 10 deletions(-)
>>
>> diff --git a/tests/Makefile b/tests/Makefile
>> index 307035c..09ecb66 100644
>> --- a/tests/Makefile
>> +++ b/tests/Makefile
>> @@ -413,6 +413,7 @@ GCOV_OPTIONS = -n $(if $(V),-f,)
>> $(patsubst %, check-qtest-%, $(QTEST_TARGETS)): check-qtest-%: $(check-qtest-y)
>> $(if $(CONFIG_GCOV),@rm -f *.gcda */*.gcda */*/*.gcda */*/*/*.gcda,)
>> $(call quiet-command,QTEST_QEMU_BINARY=$*-softmmu/qemu-system-$* \
>> + QTEST_QEMU_IMG=qemu-img$(EXESUF) \
>> MALLOC_PERTURB_=$${MALLOC_PERTURB_:-$$((RANDOM % 255 + 1))} \
>> gtester $(GTESTER_OPTIONS) -m=$(SPEED) $(check-qtest-$*-y),"GTESTER $@")
>> $(if $(CONFIG_GCOV),@for f in $(gcov-files-$*-y); do \
>> diff --git a/tests/ahci-test.c b/tests/ahci-test.c
>> index cf0b98b..3f93c15 100644
>> --- a/tests/ahci-test.c
>> +++ b/tests/ahci-test.c
>> @@ -39,8 +39,8 @@
>> #include "hw/pci/pci_ids.h"
>> #include "hw/pci/pci_regs.h"
>>
>> -/* Test-specific defines. */
>> -#define TEST_IMAGE_SIZE (64 * 1024 * 1024)
>> +/* Test-specific defines -- in MiB */
>> +#define TEST_IMAGE_SIZE_MB (200 * 1024)
>>
>> /*** Globals ***/
>> static char tmp_path[] = "/tmp/qtest.XXXXXX";
>> @@ -81,7 +81,7 @@ static AHCIQState *ahci_boot(void)
>> s = g_malloc0(sizeof(AHCIQState));
>>
>> cli = "-drive if=none,id=drive0,file=%s,cache=writeback,serial=%s"
>> - ",format=raw"
>> + ",format=qcow2"
>> " -M q35 "
>> "-device ide-hd,drive=drive0 "
>> "-global ide-hd.ver=%s";
>> @@ -1051,7 +1051,6 @@ static void create_ahci_io_test(enum IOMode type, enum AddrMode addr,
>> int main(int argc, char **argv)
>> {
>> const char *arch;
>> - int fd;
>> int ret;
>> int c;
>> int i, j, k;
>> @@ -1088,12 +1087,9 @@ int main(int argc, char **argv)
>> return 0;
>> }
>>
>> - /* Create a temporary raw image */
>> - fd = mkstemp(tmp_path);
>> - g_assert(fd >= 0);
>> - ret = ftruncate(fd, TEST_IMAGE_SIZE);
>> - g_assert(ret == 0);
>> - close(fd);
>> + /* Create a temporary qcow2 image */
>> + close(mkstemp(tmp_path));
>> + mkqcow2(tmp_path, TEST_IMAGE_SIZE_MB);
>>
>> /* Run the tests */
>> qtest_add_func("/ahci/sanity", test_sanity);
>> diff --git a/tests/libqos/libqos.c b/tests/libqos/libqos.c
>> index bc8beb2..c825486 100644
>> --- a/tests/libqos/libqos.c
>> +++ b/tests/libqos/libqos.c
>> @@ -61,3 +61,40 @@ void qtest_shutdown(QOSState *qs)
>> qtest_quit(qs->qts);
>> g_free(qs);
>> }
>> +
>> +void mkimg(const char *file, const char *fmt, unsigned size_mb)
>> +{
>> + gchar *cli;
>> + bool ret;
>> + int rc;
>> + GError *err = NULL;
>> + char *qemu_img_path;
>> + gchar *out, *out2;
>> +
>> + qemu_img_path = getenv("QTEST_QEMU_IMG");
>> + assert(qemu_img_path);
>> +
>> + cli = g_strdup_printf("./%s create -f %s %s %uM", qemu_img_path,
>> + fmt, file, size_mb);
>> + ret = g_spawn_command_line_sync(cli, &out, &out2, &rc, &err);
>> + if (err) {
>> + fprintf(stderr, "%s\n", err->message);
>> + g_error_free(err);
>> + }
>> + g_assert(ret && !err);
>> +
>> + ret = g_spawn_check_exit_status(rc, &err);
>
> This function only exists since glib 2.34. Dropping the following
> patches from the queue:
>
I'm looking at this some more. The glib code basically does this:
If windows: Set an error if rc is nonzero.
If linux: use the WIFEXITED, WIFSIGNALED or WIFSTOPPED macros to
determine the domain of the error code. If WIFEXITED, check for nonzero
status. if WIFSIGNALED, WIFSTOPPED or !WIFEXITED, return an error.
I *think* I can just generalize this all, if I am not interested in
*why* we failed, to just checking rc to be nonzero. That should be
adequately multiplatform.
Agree?
> pick 23134a5 qtest/ahci: add qcow2 support to ahci-test
> pick 6ca5609 qtest/ahci: test different disk sectors
> pick e2f0dee qtest/ahci: Add simple flush test
> pick 396491b qtest/ahci: Allow override of default CLI options
> pick eb8c8bd libqtest: add qmp_eventwait
> pick 398bfc3 libqtest: add qmp_async
> pick d3f77d1 libqos: add blkdebug_prepare_script
> pick d628e51 qtest/ahci: add flush retry test
>
> This is patch 7 and 8 from this series and the complete series "ahci:
> rerror/werror=stop resume tests", which seems to depend on them.
>
> Kevin
>
next prev parent reply other threads:[~2015-03-09 20:35 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-02-25 23:06 [Qemu-devel] [PATCH v2 0/8] ahci: add more IO tests John Snow
2015-02-25 23:06 ` [Qemu-devel] [PATCH v2 1/8] libqos/ahci: Zero-fill AHCI headers John Snow
2015-02-25 23:06 ` [Qemu-devel] [PATCH v2 2/8] qtest/ahci: Add a macro bootup routine John Snow
2015-02-25 23:06 ` [Qemu-devel] [PATCH v2 3/8] libqos/ahci: add ahci command helpers John Snow
2015-02-25 23:06 ` [Qemu-devel] [PATCH v2 4/8] qtest/ahci: Add DMA test variants John Snow
2015-02-25 23:06 ` [Qemu-devel] [PATCH v2 5/8] qtest/ahci: Add PIO and LBA48 tests John Snow
2015-02-25 23:06 ` [Qemu-devel] [PATCH v2 6/8] qtest/ahci: add fragmented dma test John Snow
2015-02-25 23:06 ` [Qemu-devel] [PATCH v2 7/8] qtest/ahci: add qcow2 support to ahci-test John Snow
2015-03-09 14:27 ` Kevin Wolf
2015-03-09 16:03 ` John Snow
2015-03-09 16:27 ` Kevin Wolf
2015-03-09 16:35 ` John Snow
2015-03-09 16:33 ` Markus Armbruster
2015-03-09 20:34 ` John Snow [this message]
2015-03-10 8:16 ` Kevin Wolf
2015-02-25 23:06 ` [Qemu-devel] [PATCH v2 8/8] qtest/ahci: test different disk sectors John Snow
2015-02-26 15:12 ` [Qemu-devel] [PATCH v2 0/8] ahci: add more IO tests Stefan Hajnoczi
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=54FE03E8.8010903@redhat.com \
--to=jsnow@redhat.com \
--cc=armbru@redhat.com \
--cc=kwolf@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=stefanha@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.