All of lore.kernel.org
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH 0/2] qtest: Add floppy media change test
@ 2012-05-08 15:51 Kevin Wolf
  2012-05-08 15:51 ` [Qemu-devel] [PATCH 1/2] qtest: Add function to send QMP commands Kevin Wolf
                   ` (2 more replies)
  0 siblings, 3 replies; 7+ messages in thread
From: Kevin Wolf @ 2012-05-08 15:51 UTC (permalink / raw)
  To: qemu-devel; +Cc: kwolf

Kevin Wolf (2):
  qtest: Add function to send QMP commands
  qtest: Add floppy test

 tests/Makefile   |    2 +
 tests/fdc-test.c |  186 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
 tests/libqtest.c |  123 ++++++++++++++++++++++++++++--------
 tests/libqtest.h |   17 +++++
 4 files changed, 301 insertions(+), 27 deletions(-)
 create mode 100644 tests/fdc-test.c

-- 
1.7.6.5

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [Qemu-devel] [PATCH 1/2] qtest: Add function to send QMP commands
  2012-05-08 15:51 [Qemu-devel] [PATCH 0/2] qtest: Add floppy media change test Kevin Wolf
@ 2012-05-08 15:51 ` Kevin Wolf
  2012-05-08 15:51 ` [Qemu-devel] [PATCH 2/2] qtest: Add floppy test Kevin Wolf
  2012-05-10  7:31 ` [Qemu-devel] [PATCH 0/2] qtest: Add floppy media change test Paolo Bonzini
  2 siblings, 0 replies; 7+ messages in thread
From: Kevin Wolf @ 2012-05-08 15:51 UTC (permalink / raw)
  To: qemu-devel; +Cc: kwolf

Signed-off-by: Kevin Wolf <kwolf@redhat.com>
---
 tests/libqtest.c |  123 ++++++++++++++++++++++++++++++++++++++++++------------
 tests/libqtest.h |   17 +++++++
 2 files changed, 113 insertions(+), 27 deletions(-)

diff --git a/tests/libqtest.c b/tests/libqtest.c
index 295c6d4..6d333ef 100644
--- a/tests/libqtest.c
+++ b/tests/libqtest.c
@@ -36,6 +36,7 @@ QTestState *global_qtest;
 struct QTestState
 {
     int fd;
+    int qmp_fd;
     bool irq_level[MAX_IRQ];
     GString *rx;
     gchar *pid_file;
@@ -45,48 +46,76 @@ struct QTestState
     g_assert_cmpint(ret, !=, -1); \
 } while (0)
 
+static int init_socket(const char *socket_path)
+{
+    struct sockaddr_un addr;
+    int sock;
+    int ret;
+
+    sock = socket(PF_UNIX, SOCK_STREAM, 0);
+    g_assert_no_errno(sock);
+
+    addr.sun_family = AF_UNIX;
+    snprintf(addr.sun_path, sizeof(addr.sun_path), "%s", socket_path);
+    qemu_set_cloexec(sock);
+
+    do {
+        ret = bind(sock, (struct sockaddr *)&addr, sizeof(addr));
+    } while (ret == -1 && errno == EINTR);
+    g_assert_no_errno(ret);
+    listen(sock, 1);
+
+    return sock;
+}
+
+static int socket_accept(int sock)
+{
+    struct sockaddr_un addr;
+    socklen_t addrlen;
+    int ret;
+
+    do {
+        ret = accept(sock, (struct sockaddr *)&addr, &addrlen);
+    } while (ret == -1 && errno == EINTR);
+    g_assert_no_errno(ret);
+    close(sock);
+
+    return ret;
+}
+
 QTestState *qtest_init(const char *extra_args)
 {
     QTestState *s;
-    struct sockaddr_un addr;
-    int sock, ret, i;
+    int sock, qmpsock, ret, i;
     gchar *socket_path;
+    gchar *qmp_socket_path;
     gchar *pid_file;
     gchar *command;
     const char *qemu_binary;
     pid_t pid;
-    socklen_t addrlen;
 
     qemu_binary = getenv("QTEST_QEMU_BINARY");
     g_assert(qemu_binary != NULL);
 
     socket_path = g_strdup_printf("/tmp/qtest-%d.sock", getpid());
+    qmp_socket_path = g_strdup_printf("/tmp/qtest-%d.qmp", getpid());
     pid_file = g_strdup_printf("/tmp/qtest-%d.pid", getpid());
 
     s = g_malloc(sizeof(*s));
 
-    sock = socket(PF_UNIX, SOCK_STREAM, 0);
-    g_assert_no_errno(sock);
-
-    addr.sun_family = AF_UNIX;
-    snprintf(addr.sun_path, sizeof(addr.sun_path), "%s", socket_path);
-    qemu_set_cloexec(sock);
-
-    do {
-        ret = bind(sock, (struct sockaddr *)&addr, sizeof(addr));
-    } while (ret == -1 && errno == EINTR);
-    g_assert_no_errno(ret);
-    listen(sock, 1);
+    sock = init_socket(socket_path);
+    qmpsock = init_socket(qmp_socket_path);
 
     pid = fork();
     if (pid == 0) {
         command = g_strdup_printf("%s "
                                   "-qtest unix:%s,nowait "
                                   "-qtest-log /dev/null "
+                                  "-qmp unix:%s,nowait "
                                   "-pidfile %s "
                                   "-machine accel=qtest "
                                   "%s", qemu_binary, socket_path,
-                                  pid_file,
+                                  qmp_socket_path, pid_file,
                                   extra_args ?: "");
 
         ret = system(command);
@@ -94,13 +123,9 @@ QTestState *qtest_init(const char *extra_args)
         g_free(command);
     }
 
-    do {
-        ret = accept(sock, (struct sockaddr *)&addr, &addrlen);
-    } while (ret == -1 && errno == EINTR);
-    g_assert_no_errno(ret);
-    close(sock);
+    s->fd = socket_accept(sock);
+    s->qmp_fd = socket_accept(qmpsock);
 
-    s->fd = ret;
     s->rx = g_string_new("");
     s->pid_file = pid_file;
     for (i = 0; i < MAX_IRQ; i++) {
@@ -108,6 +133,11 @@ QTestState *qtest_init(const char *extra_args)
     }
 
     g_free(socket_path);
+    g_free(qmp_socket_path);
+
+    /* Read the QMP greeting and then do the handshake */
+    qtest_qmp(s, "");
+    qtest_qmp(s, "{ 'execute': 'qmp_capabilities' }");
 
     return s;
 }
@@ -131,22 +161,19 @@ void qtest_quit(QTestState *s)
     }
 }
 
-static void GCC_FMT_ATTR(2, 3) qtest_sendf(QTestState *s, const char *fmt, ...)
+static void socket_sendf(int fd, const char *fmt, va_list ap)
 {
-    va_list ap;
     gchar *str;
     size_t size, offset;
 
-    va_start(ap, fmt);
     str = g_strdup_vprintf(fmt, ap);
-    va_end(ap);
     size = strlen(str);
 
     offset = 0;
     while (offset < size) {
         ssize_t len;
 
-        len = write(s->fd, str + offset, size - offset);
+        len = write(fd, str + offset, size - offset);
         if (len == -1 && errno == EINTR) {
             continue;
         }
@@ -158,6 +185,15 @@ static void GCC_FMT_ATTR(2, 3) qtest_sendf(QTestState *s, const char *fmt, ...)
     }
 }
 
+static void GCC_FMT_ATTR(2, 3) qtest_sendf(QTestState *s, const char *fmt, ...)
+{
+    va_list ap;
+
+    va_start(ap, fmt);
+    socket_sendf(s->fd, fmt, ap);
+    va_end(ap);
+}
+
 static GString *qtest_recv_line(QTestState *s)
 {
     GString *line;
@@ -233,6 +269,39 @@ redo:
     return words;
 }
 
+void qtest_qmp(QTestState *s, const char *fmt, ...)
+{
+    va_list ap;
+    bool has_reply = false;
+    int nesting = 0;
+
+    /* Send QMP request */
+    va_start(ap, fmt);
+    socket_sendf(s->qmp_fd, fmt, ap);
+    va_end(ap);
+
+    /* Receive reply */
+    while (!has_reply || nesting > 0) {
+        ssize_t len;
+        char c;
+
+        len = read(s->qmp_fd, &c, 1);
+        if (len == -1 && errno == EINTR) {
+            continue;
+        }
+
+        switch (c) {
+        case '{':
+            nesting++;
+            has_reply = true;
+            break;
+        case '}':
+            nesting--;
+            break;
+        }
+    }
+}
+
 const char *qtest_get_arch(void)
 {
     const char *qemu = getenv("QTEST_QEMU_BINARY");
diff --git a/tests/libqtest.h b/tests/libqtest.h
index 2ca85a9..c8ade85 100644
--- a/tests/libqtest.h
+++ b/tests/libqtest.h
@@ -38,6 +38,15 @@ QTestState *qtest_init(const char *extra_args);
 void qtest_quit(QTestState *s);
 
 /**
+ * qtest_qmp:
+ * @s: QTestState instance to operate on.
+ * @fmt...: QMP message to send to qemu
+ *
+ * Sends a QMP message to QEMU
+ */
+void qtest_qmp(QTestState *s, const char *fmt, ...);
+
+/**
  * qtest_get_irq:
  * @s: QTestState instance to operate on.
  * @num: Interrupt to observe.
@@ -207,6 +216,14 @@ void qtest_add_func(const char *str, void (*fn));
         )
 
 /**
+ * qmp:
+ * @fmt...: QMP message to send to qemu
+ *
+ * Sends a QMP message to QEMU
+ */
+#define qmp(fmt, ...) qtest_qmp(global_qtest, fmt, ## __VA_ARGS__)
+
+/**
  * get_irq:
  * @num: Interrupt to observe.
  *
-- 
1.7.6.5

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [Qemu-devel] [PATCH 2/2] qtest: Add floppy test
  2012-05-08 15:51 [Qemu-devel] [PATCH 0/2] qtest: Add floppy media change test Kevin Wolf
  2012-05-08 15:51 ` [Qemu-devel] [PATCH 1/2] qtest: Add function to send QMP commands Kevin Wolf
@ 2012-05-08 15:51 ` Kevin Wolf
  2012-05-09 17:11   ` Andreas Färber
  2012-05-10  7:31 ` [Qemu-devel] [PATCH 0/2] qtest: Add floppy media change test Paolo Bonzini
  2 siblings, 1 reply; 7+ messages in thread
From: Kevin Wolf @ 2012-05-08 15:51 UTC (permalink / raw)
  To: qemu-devel; +Cc: kwolf

Let's start with testing media change.

Signed-off-by: Kevin Wolf <kwolf@redhat.com>
---
 tests/Makefile   |    2 +
 tests/fdc-test.c |  186 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 188 insertions(+), 0 deletions(-)
 create mode 100644 tests/fdc-test.c

diff --git a/tests/Makefile b/tests/Makefile
index 9988681..a7697bd 100644
--- a/tests/Makefile
+++ b/tests/Makefile
@@ -19,6 +19,7 @@ check-block-$(CONFIG_POSIX) += tests/qemu-iotests-quick.sh
 # All QTests for now are POSIX-only, but the dependencies are
 # really in libqtest, not in the testcases themselves.
 check-qtest-i386-y = tests/rtc-test
+check-qtest-i386-y = tests/fdc-test
 check-qtest-x86_64-y = $(check-qtest-i386-y)
 check-qtest-sparc-y = tests/m48t59-test$(EXESUF)
 check-qtest-sparc64-y = tests/m48t59-test$(EXESUF)
@@ -67,6 +68,7 @@ tests/test-qmp-commands$(EXESUF): tests/test-qmp-commands.o tests/test-qmp-marsh
 
 tests/rtc-test$(EXESUF): tests/rtc-test.o $(trace-obj-y)
 tests/m48t59-test$(EXESUF): tests/m48t59-test.o $(trace-obj-y)
+tests/fdc-test$(EXESUF): tests/fdc-test.o tests/libqtest.o
 
 # QTest rules
 
diff --git a/tests/fdc-test.c b/tests/fdc-test.c
new file mode 100644
index 0000000..502cdca
--- /dev/null
+++ b/tests/fdc-test.c
@@ -0,0 +1,186 @@
+/*
+ * Floppy test cases.
+ *
+ * Copyright (c) 2012 Kevin Wolf <kwolf@redhat.com>
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+
+#include <stdint.h>
+#include <string.h>
+#include <stdio.h>
+
+#include <glib.h>
+
+#include "libqtest.h"
+#include "qemu-common.h"
+
+#define TEST_IMAGE_SIZE 1440 * 1024
+
+#define FLOPPY_BASE 0x3f0
+#define FLOPPY_IRQ 6
+
+enum {
+    reg_sra         = 0x0,
+    reg_srb         = 0x1,
+    reg_dor         = 0x2,
+    reg_msr         = 0x4,
+    reg_dsr         = 0x4,
+    reg_fifo        = 0x5,
+    reg_dir         = 0x7,
+};
+
+enum {
+    CMD_SENSE_INT   = 0x08,
+    CMD_SEEK        = 0x0f,
+};
+
+enum {
+    RQM     = 0x80,
+    DIO     = 0x40,
+
+    DSKCHG  = 0x80,
+};
+
+char test_image[] = "/tmp/qtest.XXXXXX";
+
+#define assert_bit_set(data, mask) g_assert_cmphex((data) & (mask), ==, (mask))
+#define assert_bit_clear(data, mask) g_assert_cmphex((data) & (mask), ==, 0)
+
+static void floppy_send(uint8_t byte)
+{
+    uint8_t msr;
+
+    msr = inb(FLOPPY_BASE + reg_msr);
+    assert_bit_set(msr, RQM);
+    assert_bit_clear(msr, DIO);
+
+    outb(FLOPPY_BASE + reg_fifo, byte);
+}
+
+static uint8_t floppy_recv(void)
+{
+    uint8_t msr;
+
+    msr = inb(FLOPPY_BASE + reg_msr);
+    assert_bit_set(msr, RQM | DIO);
+
+    return inb(FLOPPY_BASE + reg_fifo);
+}
+
+static void ack_irq(void)
+{
+    g_assert(get_irq(FLOPPY_IRQ));
+    floppy_send(CMD_SENSE_INT);
+    floppy_recv();
+    floppy_recv();
+    g_assert(!get_irq(FLOPPY_IRQ));
+}
+
+static void send_step_pulse(void)
+{
+    int drive = 0;
+    int head = 0;
+    static int cyl = 0;
+
+    floppy_send(CMD_SEEK);
+    floppy_send(head << 2 | drive);
+    g_assert(!get_irq(FLOPPY_IRQ));
+    floppy_send(cyl);
+    ack_irq();
+
+    cyl = (cyl + 1) % 4;
+}
+
+static void test_media_change(void)
+{
+    uint8_t dir;
+
+    /* Media changed bit must be up-to-date after step pulse. Do two SEEKs
+     * because we may already happen to be on the right cylinder initially. */
+    send_step_pulse();
+    send_step_pulse();
+    dir = inb(FLOPPY_BASE + reg_dir);
+    assert_bit_clear(dir, DSKCHG);
+
+    /* Eject the floppy and check that DSKCHG is set. Reading it out doesn't
+     * reset the bit. */
+    qmp("{'execute':'eject', 'arguments':{ 'device':'floppy0' }}");
+    qmp(""); /* ignore event */
+    send_step_pulse();
+    dir = inb(FLOPPY_BASE + reg_dir);
+    assert_bit_set(dir, DSKCHG);
+    dir = inb(FLOPPY_BASE + reg_dir);
+    assert_bit_set(dir, DSKCHG);
+
+    /* And then insert it again. DSKCHK should not be reset until a step pulse
+     * is sent. */
+    qmp("{'execute':'change', 'arguments':{ 'device':'floppy0', "
+        "'target': '%s' }}", test_image);
+    qmp(""); /* ignore event (FIXME open -> open transition?!) */
+    qmp(""); /* ignore event */
+
+    dir = inb(FLOPPY_BASE + reg_dir);
+    assert_bit_set(dir, DSKCHG);
+    send_step_pulse();
+    dir = inb(FLOPPY_BASE + reg_dir);
+    assert_bit_clear(dir, DSKCHG);
+    dir = inb(FLOPPY_BASE + reg_dir);
+    assert_bit_clear(dir, DSKCHG);
+}
+
+int main(int argc, char **argv)
+{
+    const char *arch = qtest_get_arch();
+    char *cmdline;
+    int fd;
+    int ret;
+
+    /* Check architecture */
+    if (strcmp(arch, "i386") && strcmp(arch, "x86_64")) {
+        g_test_message("Skipping test for non-x86\n");
+        return 0;
+    }
+
+    /* Create a temporary raw image */
+    fd = mkstemp(test_image);
+    g_assert(fd >= 0);
+    ret = ftruncate(fd, TEST_IMAGE_SIZE);
+    g_assert(ret == 0);
+    close(fd);
+
+    /* Run the tests */
+    g_test_init(&argc, &argv, NULL);
+
+    cmdline = g_strdup_printf("-vnc none "
+        "-drive file=%s,if=floppy,cache=writeback ",
+        test_image);
+
+    qtest_start(cmdline);
+    qtest_irq_intercept_in(global_qtest, "ioapic");
+    qtest_add_func("/fdc/media_change", test_media_change);
+
+    ret = g_test_run();
+
+    /* Cleanup */
+    qtest_quit(global_qtest);
+    unlink(test_image);
+
+    return ret;
+}
-- 
1.7.6.5

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* Re: [Qemu-devel] [PATCH 2/2] qtest: Add floppy test
  2012-05-08 15:51 ` [Qemu-devel] [PATCH 2/2] qtest: Add floppy test Kevin Wolf
@ 2012-05-09 17:11   ` Andreas Färber
  2012-05-10  7:30     ` Kevin Wolf
  2012-05-10  7:31     ` Paolo Bonzini
  0 siblings, 2 replies; 7+ messages in thread
From: Andreas Färber @ 2012-05-09 17:11 UTC (permalink / raw)
  To: Kevin Wolf; +Cc: Blue Swirl, Stefan Weil, qemu-devel

Am 08.05.2012 17:51, schrieb Kevin Wolf:
> Let's start with testing media change.
> 
> Signed-off-by: Kevin Wolf <kwolf@redhat.com>
> ---
>  tests/Makefile   |    2 +
>  tests/fdc-test.c |  186 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
>  2 files changed, 188 insertions(+), 0 deletions(-)
>  create mode 100644 tests/fdc-test.c
> 
> diff --git a/tests/Makefile b/tests/Makefile
> index 9988681..a7697bd 100644
> --- a/tests/Makefile
> +++ b/tests/Makefile
> @@ -19,6 +19,7 @@ check-block-$(CONFIG_POSIX) += tests/qemu-iotests-quick.sh
>  # All QTests for now are POSIX-only, but the dependencies are
>  # really in libqtest, not in the testcases themselves.
>  check-qtest-i386-y = tests/rtc-test
> +check-qtest-i386-y = tests/fdc-test

$(EXESUF)?

>  check-qtest-x86_64-y = $(check-qtest-i386-y)
>  check-qtest-sparc-y = tests/m48t59-test$(EXESUF)
>  check-qtest-sparc64-y = tests/m48t59-test$(EXESUF)

Or are these wrong?

Andreas

> @@ -67,6 +68,7 @@ tests/test-qmp-commands$(EXESUF): tests/test-qmp-commands.o tests/test-qmp-marsh
>  
>  tests/rtc-test$(EXESUF): tests/rtc-test.o $(trace-obj-y)
>  tests/m48t59-test$(EXESUF): tests/m48t59-test.o $(trace-obj-y)
> +tests/fdc-test$(EXESUF): tests/fdc-test.o tests/libqtest.o
>  
>  # QTest rules
>  

-- 
SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany
GF: Jeff Hawn, Jennifer Guild, Felix Imendörffer; HRB 16746 AG Nürnberg

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [Qemu-devel] [PATCH 2/2] qtest: Add floppy test
  2012-05-09 17:11   ` Andreas Färber
@ 2012-05-10  7:30     ` Kevin Wolf
  2012-05-10  7:31     ` Paolo Bonzini
  1 sibling, 0 replies; 7+ messages in thread
From: Kevin Wolf @ 2012-05-10  7:30 UTC (permalink / raw)
  To: Andreas Färber; +Cc: Blue Swirl, Stefan Weil, qemu-devel

Am 09.05.2012 19:11, schrieb Andreas Färber:
> Am 08.05.2012 17:51, schrieb Kevin Wolf:
>> Let's start with testing media change.
>>
>> Signed-off-by: Kevin Wolf <kwolf@redhat.com>
>> ---
>>  tests/Makefile   |    2 +
>>  tests/fdc-test.c |  186 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
>>  2 files changed, 188 insertions(+), 0 deletions(-)
>>  create mode 100644 tests/fdc-test.c
>>
>> diff --git a/tests/Makefile b/tests/Makefile
>> index 9988681..a7697bd 100644
>> --- a/tests/Makefile
>> +++ b/tests/Makefile
>> @@ -19,6 +19,7 @@ check-block-$(CONFIG_POSIX) += tests/qemu-iotests-quick.sh
>>  # All QTests for now are POSIX-only, but the dependencies are
>>  # really in libqtest, not in the testcases themselves.
>>  check-qtest-i386-y = tests/rtc-test
>> +check-qtest-i386-y = tests/fdc-test
> 
> $(EXESUF)?
> 
>>  check-qtest-x86_64-y = $(check-qtest-i386-y)
>>  check-qtest-sparc-y = tests/m48t59-test$(EXESUF)
>>  check-qtest-sparc64-y = tests/m48t59-test$(EXESUF)
> 
> Or are these wrong?

I think we should add $(EXESUF) indeed. I copied the rtc-test line where
it's missing as well, so I'll send a patch on top that fixes both.

Kevin

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [Qemu-devel] [PATCH 2/2] qtest: Add floppy test
  2012-05-09 17:11   ` Andreas Färber
  2012-05-10  7:30     ` Kevin Wolf
@ 2012-05-10  7:31     ` Paolo Bonzini
  1 sibling, 0 replies; 7+ messages in thread
From: Paolo Bonzini @ 2012-05-10  7:31 UTC (permalink / raw)
  To: Andreas Färber; +Cc: Kevin Wolf, Blue Swirl, qemu-devel, Stefan Weil

Il 09/05/2012 19:11, Andreas Färber ha scritto:
>> >  # All QTests for now are POSIX-only, but the dependencies are
>> >  # really in libqtest, not in the testcases themselves.
>> >  check-qtest-i386-y = tests/rtc-test
>> > +check-qtest-i386-y = tests/fdc-test
> $(EXESUF)?

In practice qtests will only run on machines with empty EXESUF, so it
makes really no difference.  Consistency would be nice though.

>> >  check-qtest-x86_64-y = $(check-qtest-i386-y)
>> >  check-qtest-sparc-y = tests/m48t59-test$(EXESUF)
>> >  check-qtest-sparc64-y = tests/m48t59-test$(EXESUF)
> Or are these wrong?

Paolo

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [Qemu-devel] [PATCH 0/2] qtest: Add floppy media change test
  2012-05-08 15:51 [Qemu-devel] [PATCH 0/2] qtest: Add floppy media change test Kevin Wolf
  2012-05-08 15:51 ` [Qemu-devel] [PATCH 1/2] qtest: Add function to send QMP commands Kevin Wolf
  2012-05-08 15:51 ` [Qemu-devel] [PATCH 2/2] qtest: Add floppy test Kevin Wolf
@ 2012-05-10  7:31 ` Paolo Bonzini
  2 siblings, 0 replies; 7+ messages in thread
From: Paolo Bonzini @ 2012-05-10  7:31 UTC (permalink / raw)
  To: Kevin Wolf; +Cc: qemu-devel

Il 08/05/2012 17:51, Kevin Wolf ha scritto:
> Kevin Wolf (2):
>   qtest: Add function to send QMP commands
>   qtest: Add floppy test
> 
>  tests/Makefile   |    2 +
>  tests/fdc-test.c |  186 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
>  tests/libqtest.c |  123 ++++++++++++++++++++++++++++--------
>  tests/libqtest.h |   17 +++++
>  4 files changed, 301 insertions(+), 27 deletions(-)
>  create mode 100644 tests/fdc-test.c
> 

Thanks for the QMP bits especially!

Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2012-05-10  7:32 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-05-08 15:51 [Qemu-devel] [PATCH 0/2] qtest: Add floppy media change test Kevin Wolf
2012-05-08 15:51 ` [Qemu-devel] [PATCH 1/2] qtest: Add function to send QMP commands Kevin Wolf
2012-05-08 15:51 ` [Qemu-devel] [PATCH 2/2] qtest: Add floppy test Kevin Wolf
2012-05-09 17:11   ` Andreas Färber
2012-05-10  7:30     ` Kevin Wolf
2012-05-10  7:31     ` Paolo Bonzini
2012-05-10  7:31 ` [Qemu-devel] [PATCH 0/2] qtest: Add floppy media change test Paolo Bonzini

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.