]> git.proxmox.com Git - mirror_qemu.git/commitdiff
Merge remote-tracking branch 'remotes/ericb/tags/pull-nbd-2021-01-20' into staging
authorPeter Maydell <peter.maydell@linaro.org>
Thu, 21 Jan 2021 10:44:27 +0000 (10:44 +0000)
committerPeter Maydell <peter.maydell@linaro.org>
Thu, 21 Jan 2021 10:44:28 +0000 (10:44 +0000)
nbd patches for 2021-01-20

- minor resource leak fixes in qemu-nbd
- ensure proper aio context when nbd server uses iothreads
- iotest refactorings in preparation for rewriting ./check to be more
flexible, and preparing for more nbd server reconnect features

# gpg: Signature made Thu 21 Jan 2021 02:28:19 GMT
# gpg:                using RSA key 71C2CC22B1C4602927D2F3AAA7A16B4A2527436A
# gpg: Good signature from "Eric Blake <eblake@redhat.com>" [full]
# gpg:                 aka "Eric Blake (Free Software Programmer) <ebb9@byu.net>" [full]
# gpg:                 aka "[jpeg image of size 6874]" [full]
# Primary key fingerprint: 71C2 CC22 B1C4 6029 27D2  F3AA A7A1 6B4A 2527 436A

* remotes/ericb/tags/pull-nbd-2021-01-20:
  iotests.py: qemu_io(): reuse qemu_tool_pipe_and_status()
  iotests.py: fix qemu_tool_pipe_and_status()
  iotests/264: fix style
  iotests: define group in each iotest
  iotests/294: add shebang line
  iotests: make tests executable
  iotests: fix some whitespaces in test output files
  iotests/303: use dot slash for qcow2.py running
  iotests/277: use dot slash for nbd-fault-injector.py running
  nbd/server: Quiesce coroutines on context switch
  block: Honor blk_set_aio_context() context requirements
  qemu-nbd: Fix a memleak in nbd_client_thread()
  qemu-nbd: Fix a memleak in qemu_nbd_client_list()

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
301 files changed:
hw/block/dataplane/virtio-blk.c
hw/block/dataplane/xen-block.c
hw/scsi/virtio-scsi.c
nbd/server.c
qemu-nbd.c
tests/qemu-iotests/001
tests/qemu-iotests/002
tests/qemu-iotests/003
tests/qemu-iotests/004
tests/qemu-iotests/005
tests/qemu-iotests/007
tests/qemu-iotests/008
tests/qemu-iotests/009
tests/qemu-iotests/010
tests/qemu-iotests/011
tests/qemu-iotests/012
tests/qemu-iotests/013
tests/qemu-iotests/014
tests/qemu-iotests/015
tests/qemu-iotests/017
tests/qemu-iotests/018
tests/qemu-iotests/019
tests/qemu-iotests/020
tests/qemu-iotests/021
tests/qemu-iotests/022
tests/qemu-iotests/023
tests/qemu-iotests/024
tests/qemu-iotests/025
tests/qemu-iotests/026
tests/qemu-iotests/027
tests/qemu-iotests/028
tests/qemu-iotests/029
tests/qemu-iotests/030
tests/qemu-iotests/031
tests/qemu-iotests/032
tests/qemu-iotests/033
tests/qemu-iotests/034
tests/qemu-iotests/035
tests/qemu-iotests/036
tests/qemu-iotests/037
tests/qemu-iotests/038
tests/qemu-iotests/039
tests/qemu-iotests/040
tests/qemu-iotests/041
tests/qemu-iotests/042
tests/qemu-iotests/043
tests/qemu-iotests/044
tests/qemu-iotests/045
tests/qemu-iotests/046
tests/qemu-iotests/047
tests/qemu-iotests/048
tests/qemu-iotests/049
tests/qemu-iotests/050
tests/qemu-iotests/051
tests/qemu-iotests/052
tests/qemu-iotests/053
tests/qemu-iotests/054
tests/qemu-iotests/055
tests/qemu-iotests/056
tests/qemu-iotests/057
tests/qemu-iotests/058
tests/qemu-iotests/059
tests/qemu-iotests/060
tests/qemu-iotests/061
tests/qemu-iotests/062
tests/qemu-iotests/063
tests/qemu-iotests/064
tests/qemu-iotests/065
tests/qemu-iotests/066
tests/qemu-iotests/068
tests/qemu-iotests/069
tests/qemu-iotests/070
tests/qemu-iotests/071
tests/qemu-iotests/072
tests/qemu-iotests/073
tests/qemu-iotests/074
tests/qemu-iotests/075
tests/qemu-iotests/076
tests/qemu-iotests/077
tests/qemu-iotests/078
tests/qemu-iotests/079
tests/qemu-iotests/080
tests/qemu-iotests/081
tests/qemu-iotests/082
tests/qemu-iotests/083
tests/qemu-iotests/084
tests/qemu-iotests/085
tests/qemu-iotests/086
tests/qemu-iotests/087
tests/qemu-iotests/088
tests/qemu-iotests/089
tests/qemu-iotests/090
tests/qemu-iotests/091
tests/qemu-iotests/092
tests/qemu-iotests/093
tests/qemu-iotests/094
tests/qemu-iotests/095
tests/qemu-iotests/096
tests/qemu-iotests/097
tests/qemu-iotests/098
tests/qemu-iotests/099
tests/qemu-iotests/101
tests/qemu-iotests/102
tests/qemu-iotests/103
tests/qemu-iotests/104
tests/qemu-iotests/105
tests/qemu-iotests/106
tests/qemu-iotests/107
tests/qemu-iotests/108
tests/qemu-iotests/109
tests/qemu-iotests/110
tests/qemu-iotests/111
tests/qemu-iotests/112
tests/qemu-iotests/113
tests/qemu-iotests/114
tests/qemu-iotests/115
tests/qemu-iotests/116
tests/qemu-iotests/117
tests/qemu-iotests/118
tests/qemu-iotests/119
tests/qemu-iotests/120
tests/qemu-iotests/121
tests/qemu-iotests/122
tests/qemu-iotests/123
tests/qemu-iotests/124
tests/qemu-iotests/125
tests/qemu-iotests/126
tests/qemu-iotests/127
tests/qemu-iotests/128
tests/qemu-iotests/129
tests/qemu-iotests/130
tests/qemu-iotests/131
tests/qemu-iotests/132
tests/qemu-iotests/133
tests/qemu-iotests/134
tests/qemu-iotests/135
tests/qemu-iotests/136
tests/qemu-iotests/137
tests/qemu-iotests/138
tests/qemu-iotests/139
tests/qemu-iotests/140
tests/qemu-iotests/141
tests/qemu-iotests/143
tests/qemu-iotests/144
tests/qemu-iotests/145
tests/qemu-iotests/146
tests/qemu-iotests/147
tests/qemu-iotests/148
tests/qemu-iotests/149
tests/qemu-iotests/150
tests/qemu-iotests/151
tests/qemu-iotests/152
tests/qemu-iotests/153
tests/qemu-iotests/154
tests/qemu-iotests/155
tests/qemu-iotests/156
tests/qemu-iotests/157
tests/qemu-iotests/158
tests/qemu-iotests/159
tests/qemu-iotests/160
tests/qemu-iotests/161
tests/qemu-iotests/162
tests/qemu-iotests/163
tests/qemu-iotests/165
tests/qemu-iotests/169
tests/qemu-iotests/170
tests/qemu-iotests/171
tests/qemu-iotests/172
tests/qemu-iotests/173
tests/qemu-iotests/174
tests/qemu-iotests/175
tests/qemu-iotests/175.out
tests/qemu-iotests/176
tests/qemu-iotests/177
tests/qemu-iotests/178
tests/qemu-iotests/179
tests/qemu-iotests/181
tests/qemu-iotests/182
tests/qemu-iotests/183
tests/qemu-iotests/184
tests/qemu-iotests/185
tests/qemu-iotests/186
tests/qemu-iotests/187
tests/qemu-iotests/188
tests/qemu-iotests/189
tests/qemu-iotests/190
tests/qemu-iotests/191
tests/qemu-iotests/192
tests/qemu-iotests/194
tests/qemu-iotests/195
tests/qemu-iotests/196
tests/qemu-iotests/197
tests/qemu-iotests/198
tests/qemu-iotests/199
tests/qemu-iotests/200
tests/qemu-iotests/201
tests/qemu-iotests/202
tests/qemu-iotests/203
tests/qemu-iotests/204
tests/qemu-iotests/205
tests/qemu-iotests/206
tests/qemu-iotests/207
tests/qemu-iotests/208
tests/qemu-iotests/209
tests/qemu-iotests/210
tests/qemu-iotests/211
tests/qemu-iotests/212
tests/qemu-iotests/213
tests/qemu-iotests/214
tests/qemu-iotests/215
tests/qemu-iotests/216
tests/qemu-iotests/217
tests/qemu-iotests/218
tests/qemu-iotests/219
tests/qemu-iotests/220
tests/qemu-iotests/221
tests/qemu-iotests/222
tests/qemu-iotests/223
tests/qemu-iotests/224
tests/qemu-iotests/225
tests/qemu-iotests/226
tests/qemu-iotests/227
tests/qemu-iotests/228
tests/qemu-iotests/229
tests/qemu-iotests/231
tests/qemu-iotests/232
tests/qemu-iotests/233
tests/qemu-iotests/234
tests/qemu-iotests/235
tests/qemu-iotests/236
tests/qemu-iotests/237
tests/qemu-iotests/238
tests/qemu-iotests/239
tests/qemu-iotests/240
tests/qemu-iotests/241
tests/qemu-iotests/242
tests/qemu-iotests/243
tests/qemu-iotests/244
tests/qemu-iotests/245
tests/qemu-iotests/246
tests/qemu-iotests/247
tests/qemu-iotests/248
tests/qemu-iotests/249
tests/qemu-iotests/250
tests/qemu-iotests/251
tests/qemu-iotests/252
tests/qemu-iotests/253
tests/qemu-iotests/254
tests/qemu-iotests/255
tests/qemu-iotests/256
tests/qemu-iotests/257
tests/qemu-iotests/258
tests/qemu-iotests/259
tests/qemu-iotests/260
tests/qemu-iotests/261
tests/qemu-iotests/262
tests/qemu-iotests/263
tests/qemu-iotests/264
tests/qemu-iotests/265
tests/qemu-iotests/266
tests/qemu-iotests/267
tests/qemu-iotests/268
tests/qemu-iotests/270
tests/qemu-iotests/271
tests/qemu-iotests/271.out
tests/qemu-iotests/272
tests/qemu-iotests/273
tests/qemu-iotests/274
tests/qemu-iotests/277
tests/qemu-iotests/279
tests/qemu-iotests/280
tests/qemu-iotests/281
tests/qemu-iotests/282
tests/qemu-iotests/283 [changed mode: 0644->0755]
tests/qemu-iotests/284
tests/qemu-iotests/286
tests/qemu-iotests/287
tests/qemu-iotests/287.out
tests/qemu-iotests/288
tests/qemu-iotests/289
tests/qemu-iotests/290
tests/qemu-iotests/291
tests/qemu-iotests/292
tests/qemu-iotests/293
tests/qemu-iotests/294
tests/qemu-iotests/295
tests/qemu-iotests/296
tests/qemu-iotests/297
tests/qemu-iotests/298 [changed mode: 0644->0755]
tests/qemu-iotests/299 [changed mode: 0644->0755]
tests/qemu-iotests/300
tests/qemu-iotests/301
tests/qemu-iotests/302
tests/qemu-iotests/303
tests/qemu-iotests/304
tests/qemu-iotests/305
tests/qemu-iotests/307
tests/qemu-iotests/308
tests/qemu-iotests/309
tests/qemu-iotests/312
tests/qemu-iotests/iotests.py

index 37499c5564822521a7168ff913862189c8a0e90e..e9050c8987e7d4c8496135dd87ea43bb10862915 100644 (file)
@@ -172,6 +172,7 @@ int virtio_blk_data_plane_start(VirtIODevice *vdev)
     VirtIOBlockDataPlane *s = vblk->dataplane;
     BusState *qbus = BUS(qdev_get_parent_bus(DEVICE(vblk)));
     VirtioBusClass *k = VIRTIO_BUS_GET_CLASS(qbus);
+    AioContext *old_context;
     unsigned i;
     unsigned nvqs = s->conf->num_queues;
     Error *local_err = NULL;
@@ -214,7 +215,10 @@ int virtio_blk_data_plane_start(VirtIODevice *vdev)
     vblk->dataplane_started = true;
     trace_virtio_blk_data_plane_start(s);
 
+    old_context = blk_get_aio_context(s->conf->conf.blk);
+    aio_context_acquire(old_context);
     r = blk_set_aio_context(s->conf->conf.blk, s->ctx, &local_err);
+    aio_context_release(old_context);
     if (r < 0) {
         error_report_err(local_err);
         goto fail_guest_notifiers;
index 71c337c7b7e74085532754bb28b2f343e55416b5..3675f8deaf9d11cc58689d6c035288dba871e2ff 100644 (file)
@@ -725,6 +725,7 @@ void xen_block_dataplane_start(XenBlockDataPlane *dataplane,
 {
     ERRP_GUARD();
     XenDevice *xendev = dataplane->xendev;
+    AioContext *old_context;
     unsigned int ring_size;
     unsigned int i;
 
@@ -808,10 +809,14 @@ void xen_block_dataplane_start(XenBlockDataPlane *dataplane,
         goto stop;
     }
 
-    aio_context_acquire(dataplane->ctx);
+    old_context = blk_get_aio_context(dataplane->blk);
+    aio_context_acquire(old_context);
     /* If other users keep the BlockBackend in the iothread, that's ok */
     blk_set_aio_context(dataplane->blk, dataplane->ctx, NULL);
+    aio_context_release(old_context);
+
     /* Only reason for failure is a NULL channel */
+    aio_context_acquire(dataplane->ctx);
     xen_device_set_event_channel_context(xendev, dataplane->event_channel,
                                          dataplane->ctx, &error_abort);
     aio_context_release(dataplane->ctx);
index 9690bc63c860d700d5a7c8bf67281b4ce6c10ec4..99ff261cead13b35de9c998641df968c5b2fbb37 100644 (file)
@@ -849,15 +849,17 @@ static void virtio_scsi_hotplug(HotplugHandler *hotplug_dev, DeviceState *dev,
     VirtIODevice *vdev = VIRTIO_DEVICE(hotplug_dev);
     VirtIOSCSI *s = VIRTIO_SCSI(vdev);
     SCSIDevice *sd = SCSI_DEVICE(dev);
+    AioContext *old_context;
     int ret;
 
     if (s->ctx && !s->dataplane_fenced) {
         if (blk_op_is_blocked(sd->conf.blk, BLOCK_OP_TYPE_DATAPLANE, errp)) {
             return;
         }
-        virtio_scsi_acquire(s);
+        old_context = blk_get_aio_context(sd->conf.blk);
+        aio_context_acquire(old_context);
         ret = blk_set_aio_context(sd->conf.blk, s->ctx, errp);
-        virtio_scsi_release(s);
+        aio_context_release(old_context);
         if (ret < 0) {
             return;
         }
index 613ed2634ada0e629a4ec087d4591fbdf7d14658..7229f487d29649ee5747b79786d2857fc55f6cf6 100644 (file)
@@ -132,6 +132,9 @@ struct NBDClient {
     CoMutex send_lock;
     Coroutine *send_coroutine;
 
+    bool read_yielding;
+    bool quiescing;
+
     QTAILQ_ENTRY(NBDClient) next;
     int nb_requests;
     bool closing;
@@ -1352,14 +1355,60 @@ static coroutine_fn int nbd_negotiate(NBDClient *client, Error **errp)
     return 0;
 }
 
-static int nbd_receive_request(QIOChannel *ioc, NBDRequest *request,
+/* nbd_read_eof
+ * Tries to read @size bytes from @ioc. This is a local implementation of
+ * qio_channel_readv_all_eof. We have it here because we need it to be
+ * interruptible and to know when the coroutine is yielding.
+ * Returns 1 on success
+ *         0 on eof, when no data was read (errp is not set)
+ *         negative errno on failure (errp is set)
+ */
+static inline int coroutine_fn
+nbd_read_eof(NBDClient *client, void *buffer, size_t size, Error **errp)
+{
+    bool partial = false;
+
+    assert(size);
+    while (size > 0) {
+        struct iovec iov = { .iov_base = buffer, .iov_len = size };
+        ssize_t len;
+
+        len = qio_channel_readv(client->ioc, &iov, 1, errp);
+        if (len == QIO_CHANNEL_ERR_BLOCK) {
+            client->read_yielding = true;
+            qio_channel_yield(client->ioc, G_IO_IN);
+            client->read_yielding = false;
+            if (client->quiescing) {
+                return -EAGAIN;
+            }
+            continue;
+        } else if (len < 0) {
+            return -EIO;
+        } else if (len == 0) {
+            if (partial) {
+                error_setg(errp,
+                           "Unexpected end-of-file before all bytes were read");
+                return -EIO;
+            } else {
+                return 0;
+            }
+        }
+
+        partial = true;
+        size -= len;
+        buffer = (uint8_t *) buffer + len;
+    }
+    return 1;
+}
+
+static int nbd_receive_request(NBDClient *client, NBDRequest *request,
                                Error **errp)
 {
     uint8_t buf[NBD_REQUEST_SIZE];
     uint32_t magic;
     int ret;
 
-    ret = nbd_read(ioc, buf, sizeof(buf), "request", errp);
+    ret = nbd_read_eof(client, buf, sizeof(buf), errp);
     if (ret < 0) {
         return ret;
     }
@@ -1480,11 +1529,37 @@ static void blk_aio_attached(AioContext *ctx, void *opaque)
 
     QTAILQ_FOREACH(client, &exp->clients, next) {
         qio_channel_attach_aio_context(client->ioc, ctx);
+
+        assert(client->recv_coroutine == NULL);
+        assert(client->send_coroutine == NULL);
+
+        if (client->quiescing) {
+            client->quiescing = false;
+            nbd_client_receive_next_request(client);
+        }
+    }
+}
+
+static void nbd_aio_detach_bh(void *opaque)
+{
+    NBDExport *exp = opaque;
+    NBDClient *client;
+
+    QTAILQ_FOREACH(client, &exp->clients, next) {
+        qio_channel_detach_aio_context(client->ioc);
+        client->quiescing = true;
+
         if (client->recv_coroutine) {
-            aio_co_schedule(ctx, client->recv_coroutine);
+            if (client->read_yielding) {
+                qemu_aio_coroutine_enter(exp->common.ctx,
+                                         client->recv_coroutine);
+            } else {
+                AIO_WAIT_WHILE(exp->common.ctx, client->recv_coroutine != NULL);
+            }
         }
+
         if (client->send_coroutine) {
-            aio_co_schedule(ctx, client->send_coroutine);
+            AIO_WAIT_WHILE(exp->common.ctx, client->send_coroutine != NULL);
         }
     }
 }
@@ -1492,13 +1567,10 @@ static void blk_aio_attached(AioContext *ctx, void *opaque)
 static void blk_aio_detach(void *opaque)
 {
     NBDExport *exp = opaque;
-    NBDClient *client;
 
     trace_nbd_blk_aio_detach(exp->name, exp->common.ctx);
 
-    QTAILQ_FOREACH(client, &exp->clients, next) {
-        qio_channel_detach_aio_context(client->ioc);
-    }
+    aio_wait_bh_oneshot(exp->common.ctx, nbd_aio_detach_bh, exp);
 
     exp->common.ctx = NULL;
 }
@@ -2151,20 +2223,23 @@ static int nbd_co_send_bitmap(NBDClient *client, uint64_t handle,
 
 /* nbd_co_receive_request
  * Collect a client request. Return 0 if request looks valid, -EIO to drop
- * connection right away, and any other negative value to report an error to
- * the client (although the caller may still need to disconnect after reporting
- * the error).
+ * connection right away, -EAGAIN to indicate we were interrupted and the
+ * channel should be quiesced, and any other negative value to report an error
+ * to the client (although the caller may still need to disconnect after
+ * reporting the error).
  */
 static int nbd_co_receive_request(NBDRequestData *req, NBDRequest *request,
                                   Error **errp)
 {
     NBDClient *client = req->client;
     int valid_flags;
+    int ret;
 
     g_assert(qemu_in_coroutine());
     assert(client->recv_coroutine == qemu_coroutine_self());
-    if (nbd_receive_request(client->ioc, request, errp) < 0) {
-        return -EIO;
+    ret = nbd_receive_request(client, request, errp);
+    if (ret < 0) {
+        return  ret;
     }
 
     trace_nbd_co_receive_request_decode_type(request->handle, request->type,
@@ -2507,6 +2582,17 @@ static coroutine_fn void nbd_trip(void *opaque)
         return;
     }
 
+    if (client->quiescing) {
+        /*
+         * We're switching between AIO contexts. Don't attempt to receive a new
+         * request and kick the main context which may be waiting for us.
+         */
+        nbd_client_put(client);
+        client->recv_coroutine = NULL;
+        aio_wait_kick();
+        return;
+    }
+
     req = nbd_request_get(client);
     ret = nbd_co_receive_request(req, &request, &local_err);
     client->recv_coroutine = NULL;
@@ -2519,6 +2605,11 @@ static coroutine_fn void nbd_trip(void *opaque)
         goto done;
     }
 
+    if (ret == -EAGAIN) {
+        assert(client->quiescing);
+        goto done;
+    }
+
     nbd_client_receive_next_request(client);
     if (ret == -EIO) {
         goto disconnect;
@@ -2565,7 +2656,8 @@ disconnect:
 
 static void nbd_client_receive_next_request(NBDClient *client)
 {
-    if (!client->recv_coroutine && client->nb_requests < MAX_NBD_REQUESTS) {
+    if (!client->recv_coroutine && client->nb_requests < MAX_NBD_REQUESTS &&
+        !client->quiescing) {
         nbd_client_get(client);
         client->recv_coroutine = qemu_coroutine_create(nbd_trip, client);
         aio_co_schedule(client->exp->common.ctx, client->recv_coroutine);
index a7075c5419d710d773a5c5ed749f9e75f32c4aed..0d513cb38c88b022691a3893cf48650ea4a84298 100644 (file)
@@ -181,7 +181,7 @@ static int qemu_nbd_client_list(SocketAddress *saddr, QCryptoTLSCreds *tls,
     sioc = qio_channel_socket_new();
     if (qio_channel_socket_connect_sync(sioc, saddr, &err) < 0) {
         error_report_err(err);
-        return EXIT_FAILURE;
+        goto out;
     }
     rc = nbd_receive_export_list(QIO_CHANNEL(sioc), tls, hostname, &list,
                                  &err);
@@ -265,8 +265,8 @@ static void *nbd_client_thread(void *arg)
     char *device = arg;
     NBDExportInfo info = { .request_sizes = false, .name = g_strdup("") };
     QIOChannelSocket *sioc;
-    int fd;
-    int ret;
+    int fd = -1;
+    int ret = EXIT_FAILURE;
     pthread_t show_parts_thread;
     Error *local_error = NULL;
 
@@ -278,26 +278,24 @@ static void *nbd_client_thread(void *arg)
         goto out;
     }
 
-    ret = nbd_receive_negotiate(NULL, QIO_CHANNEL(sioc),
-                                NULL, NULL, NULL, &info, &local_error);
-    if (ret < 0) {
+    if (nbd_receive_negotiate(NULL, QIO_CHANNEL(sioc),
+                              NULL, NULL, NULL, &info, &local_error) < 0) {
         if (local_error) {
             error_report_err(local_error);
         }
-        goto out_socket;
+        goto out;
     }
 
     fd = open(device, O_RDWR);
     if (fd < 0) {
         /* Linux-only, we can use %m in printf.  */
         error_report("Failed to open %s: %m", device);
-        goto out_socket;
+        goto out;
     }
 
-    ret = nbd_init(fd, sioc, &info, &local_error);
-    if (ret < 0) {
+    if (nbd_init(fd, sioc, &info, &local_error) < 0) {
         error_report_err(local_error);
-        goto out_fd;
+        goto out;
     }
 
     /* update partition table */
@@ -311,24 +309,20 @@ static void *nbd_client_thread(void *arg)
         dup2(STDOUT_FILENO, STDERR_FILENO);
     }
 
-    ret = nbd_client(fd);
-    if (ret) {
-        goto out_fd;
+    if (nbd_client(fd) < 0) {
+        goto out;
     }
-    close(fd);
-    object_unref(OBJECT(sioc));
-    g_free(info.name);
-    kill(getpid(), SIGTERM);
-    return (void *) EXIT_SUCCESS;
 
-out_fd:
-    close(fd);
-out_socket:
+    ret = EXIT_SUCCESS;
+
+ out:
+    if (fd >= 0) {
+        close(fd);
+    }
     object_unref(OBJECT(sioc));
-out:
     g_free(info.name);
     kill(getpid(), SIGTERM);
-    return (void *) EXIT_FAILURE;
+    return (void *) (intptr_t) ret;
 }
 #endif /* HAVE_NBD_DEVICE */
 
index 696726e45f56d3b6e8e486d2736d8c412c7d83c9..6f980fd34d6c1b460000ad8f60feffd3d12cca32 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: rw auto quick
 #
 # Test simple read/write using plain bdrv_pread/bdrv_pwrite
 #
index 1a0d411df55b6c16371b64829ee22cbe2acce052..5ce16475312c44f905a6e24436f279884f4f6caa 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: rw auto quick
 #
 # Test simple read/write using plain bdrv_pread/bdrv_pwrite
 #
index 33eeade0deb552cf953a5cf2d57ca496989d3a77..03f902a83cbc2efa3814f3588b3ed3a86e3aa960 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: rw auto
 #
 # Test simple read/write using bdrv_aio_readv/bdrv_aio_writev
 #
index d308dc4b498920025707d90c4183cd04995612fd..e955579a671796567faaca3dfb197964d13b16d4 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: rw auto quick
 #
 # Make sure we can't read and write outside of the image size.
 #
index b6d03ac37deabcbf6372ffb1711398d20c81a176..40e64a9a8f7ae7a43e4307b6376ca8ccadd9c1ac 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: img auto quick
 #
 # Make sure qemu-img can create 5TB images
 #
index 160683adf8586418101c9cfe62fb702a736490a4..936d3f14fbada3243de19fd7fab2a25f22d8ea12 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: snapshot auto
 #
 # Check for one possible case of qcow2 refcount corruption.
 #
index 2b81b119bfe2af37ac937900f6effc19c9b156f1..fa4990b51398ea9eeb4e8930fe2415cc821a76ce 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: rw auto quick
 #
 # Test simple asynchronous read/write operations.
 #
index 4dc7d210f972188ebc9c54f680185ef1716127fb..efa852bad3084878d5b15d0afb38b0c5d2a83ea9 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: rw auto quick
 #
 # Nolan I qcow2 corruption - incorrectly reports free clusters
 #
index df809b3088bb50a560faac0b2cfe1def2001920a..4ae9027b475a4dbbe12ac1ee299581bd9ef69d79 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: rw auto quick
 #
 # Nolan II qcow2 corruption - wrong used cluster
 #
index 57b99ae4a925f6d69f57d652506728fc3fcef01b..5c99ac987ff52a7988eaca3ad15a07861812d09a 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: rw auto quick
 #
 # Test for AIO allocation on the same cluster
 #
index 12957285b330063662b3017f904a7fa6df518dd4..3a24d2ca8d262764227e4b0e749c391ac4d18a73 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: auto quick
 #
 # Make sure we can open read-only images
 #
index 5cb9032f1633359749b52cd922f44f6cc6004b62..d39d0cd88b6516f8514a1bf0e146f08c0fd72317 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: rw auto
 #
 # qcow2 pattern test, empty and compressed image - 4k cluster patterns
 #
index e1221c0fff771649a2397bb761c3c425937c2b65..2d23469332c08694c4b380284752b56b4394c837 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: rw
 #
 # qcow2 pattern test, complex patterns including compression and snapshots
 # Using patterns for 4k cluster size.
index 4d8effd0ae62e1045b48018197a454b91478fec6..40c23235a627811fdc2f12f4e07744b5ed4aeb2c 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: rw snapshot
 #
 # Combined test to grow the refcount table and test snapshots.
 #
index 3413e34f27d5b0c7d35aa3a9f45449a9b71c36bf..2024b85e79728f6e6e934c74f5278cd16253c41d 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: rw backing auto quick
 #
 # Simple backing file reads
 #
index 191b461a4d2919ef0098fdb0813145b9cc0181b5..6fcebbb40ec81407ba28dff1cf241b4c4e62ac40 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: rw backing auto quick
 #
 # Merge backing file into test image when converting the image
 #
index d3c11256dc0f6abbced08b981e28fbd67b008b5b..fa4458fd27be22c370a667d5c400134d7c70aed1 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: rw backing auto quick
 #
 # When using a backing file for the output image in qemu-img convert,
 # the backing file clusters must not copied. The data must still be
index 596505be2d89a17172fdda0bf189f69a356851f0..60c672e17b9c518784f590470ab0b1dd2871b365 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: rw backing auto quick
 #
 # Commit changes to backing file
 #
index f888269fd4ca1a3e270406986aacff7454a1b205..0fc89df2fe882daa349fdd041b5142671221daf8 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: io auto quick
 #
 # Test handling of invalid patterns arguments to qemu-io
 #
index 99eb08f57f61459e449f0e007afa1c7176fe4caa..a116cfe255938471ff615cdbce8bf6e6d9d058b1 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: rw snapshot auto
 #
 # Test bdrv_load/save_vmstate using the usual patterns
 #
index 02ed04782071c825cbab565f92d42f6ea78feafd..d19d13ff5dce4ca0329b669eeba9554ee9d366ed 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: rw
 #
 # qcow2 pattern test with various cluster sizes
 #
index 12aceb2d41f6a24e71833e690f8df6612ae1cf22..25a564a1505cf5266d702049226fa4566bf1f09b 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: rw backing auto quick
 #
 # Rebasing COW images
 #
index 1569d912f436429d063ddee2428b53d83e100736..da77ed31542f9cf1fbcb882c302f57955d5c2011 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: rw auto quick
 #
 # Resizing images
 #
index 9ecc5880b13c0d9ef0f721738227642deda1fac3..d37e266dade23eb784063d4b8d4fd6707ce69530 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: rw blkdbg
 #
 # qcow2 error path testing
 #
index 494be0921fa880b8c4700ad0f8f7d180e9645dec..b279c88f3370afc6e99eeaac30dc42237eb49814 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: rw auto quick
 #
 # Test that sub-cluster allocating writes zero the rest of the cluster
 #
index 57d34aae99b74728585a12af7b1ad0a88c740120..8c391f2adcba3255fdec153cc16307359055e10c 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: rw backing quick
 #
 # Test that backing files can be smaller than the image
 #
index 61d78c00a4c5975ea5f7c7a8ad385a3f5ad08a96..bd71dd2f2217fb94ab806016b63e428e917cc177 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: rw auto quick
 #
 # qcow2 internal snapshots/VM state tests
 #
index dcb4b5d6a68ec42b0690196c04ed48b384ae6e22..890784b116542e22672438aeceb6dc3b2dfa2487 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env python3
+# group: rw auto backing
 #
 # Tests for image streaming.
 #
index 2bcbc5886e63fd2b7c4db37e8e0ce1238890039c..58b57a0ef2c0973b6f595102802df2c55c8f3200 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: rw auto quick
 #
 # Test that all qcow2 header extensions survive a header rewrite
 #
index 8337a4d82515f46402fb8f1c206631fe5eb8de9c..ebbe7cb0ba17ced696be4773f8f11dbbda1ab091 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: rw auto quick
 #
 # Test that AIO requests are drained before an image is closed. This used
 # to segfault because the request coroutine kept running even after the
index 8b40991d555bdd7d424e3c99713d3d2ffeec9323..da9133c44bcea191d382f005669cf1224ab1ce50 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: rw auto quick
 #
 # Test aligned and misaligned write zeroes operations.
 #
index 08f7aea6d5a6ecb033902af07086fe4ee4b0d5bf..ac1af8f6464c48ce55b624d89b51cc79c24b4536 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: rw auto backing quick
 #
 # Test bdrv_pwrite_zeroes with backing files (see also 154)
 #
index d950a0dd1eabd0768ec6ee36789c5f94d1923bef..0c0c4fdd42fe9b1dc427dea17680955d07724fdc 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: rw auto quick
 #
 # Let a few AIO requests run in parallel and have them access different L2
 # tables so that the cache has a chance to get used up.
index 6b82638080361b6d242881762e6bdd4daa33ecaa..5e567012a8203e38b609fd86373606146791c785 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: rw auto quick
 #
 # Test qcow2 feature bits
 #
index bb893c43dcc1422c46a1a368ee8666a80ae6fbcf..85b1015056e8906670d56c215049541c52717ef6 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: rw auto backing quick
 #
 # Test COW from backing files
 #
index 30f1f73c25130ff49d4f76d0b5b976a423343ba3..65bf7a753e8f4f4ef9f609084083963e55e8ed26 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: rw auto backing quick
 #
 # Test COW from backing files with AIO
 #
index ad3867c3fcfbdae76e87961c93b6c5e6721540e8..12b2c7fa7b87d87db9c5f5688dfeba2ce5df7989 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: rw auto quick
 #
 # Test qcow2 lazy refcounts
 #
index dc6069edc0e131e72405cfdef443ff923b84284d..7ebc9ed82570d00ca7421cfe6835b6fd73c280a2 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env python3
+# group: rw auto
 #
 # Tests for image block commit.
 #
index a7780853cdcce53b6173766b9ea573f9157ac13b..5cc02b24fc7a8be3d28e0e9737cb249bd2751785 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env python3
+# group: rw auto backing
 #
 # Tests for image mirroring.
 #
index e8f23a174ce7e256cb560faa00c54935725311cc..411e54ae047d9340394b7b5237de83bfd4b445f2 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: rw auto quick
 #
 # Test qemu-img operation on zero size images
 #
index 3271737f69cce827393b912320afdb3b5863421b..f8ce3288db421795c672791956431bb9af292bf4 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: rw auto backing
 #
 # Test that qemu-img info --backing-chain detects infinite loops
 #
index 7e99ea7c6849f05ecd0aeb06d4f4e8e372e1e693..64b18eb7c89f49c8fc7192dbb0e8bd5e4a810509 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env python3
+# group: rw
 #
 # Tests growing a large refcount table.
 #
index 5acc89099c37afb081b0061a605a5d2887db1596..45eb239baaf6e5981dbb92fd2214c989c372c31c 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env python3
+# group: rw quick
 #
 # Tests for fdsets and getfd.
 #
index ed6fae3529fd389bf4df5810c6bb8e9b9b3210ce..50b0678f6025d0d47eeba553681a130860a8ef6b 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: rw auto aio quick
 #
 # Test concurrent cluster allocations
 #
index 4528465fb0232b7de3634ba5869277dcee93d2ff..8dd21e0a818bbcc5b38fd20d6669a96aafc3a57f 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: rw auto quick
 #
 # Regression test for commit b7ab0fea (which was a corruption fix,
 # despite the commit message claiming otherwise)
index 2af6b74b41707c058080e7b3ecfbd35b6f89140b..bf8e4bf5282c6e54bbd90fe100c2c222cef44f9c 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: img auto quick
 ##
 ## qemu-img compare test
 ##
index 82b1e6c202211a177423959bf70ef06acf9a2687..ed12fa49d7f5dfeb253d095a301eb56a280fa7b3 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: rw auto
 #
 # Check qemu-img option parsing
 #
index 741bdb610ee00540776fa20dd219231c6e9e12e4..1de01c312e2ed9a42055fc77a242513948091ff7 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: rw auto backing quick
 #
 # Test qemu-img rebase with zero clusters
 #
index bee26075b207ad9af3f096d7860e19a4927563fc..7cbd1415ce7ba95a62e765cdb22871002ae5bbf9 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: rw
 #
 # Test command line configuration of block devices and driver-specific options
 #
index 8d5c10601fe9bde73577a001f0846ad674a530ca..2f23ac9b65a0ee04dfc3c31dbd1d15f1ab4881c8 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: rw auto backing quick
 #
 # Test bdrv_pread/bdrv_pwrite using BDRV_O_SNAPSHOT
 #
index 71d299c4f927012b007260988daf3b1499f88641..9a2958d42dc56b9aca278591f9fc7da656967ba8 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: rw auto quick
 #
 # Test qemu-img convert when image length is not a multiple of cluster size
 #
index 40922db2b14f6f150a272519eaa1ba66c880e216..ea147012c314be8c21befa732f372d7f1d824d12 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: rw auto quick
 #
 # Test huge qcow2 images
 #
index 4d3744b0d3db733e9b8a42121064a0e2988fed2b..5d6b607051d04f89b78ba7c31c57a70282c2d561 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env python3
+# group: rw
 #
 # Tests for drive-backup and blockdev-backup
 #
index 052456aa003ffceb8f5601582005b98f85eeb28a..0e6b8591e7870fa44a234f6fe8c052a74b5ecd27 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env python3
+# group: rw backing
 #
 # Tests for drive-backup
 #
index a8b4bb60e0d83f90a4c0fd9eb44243e53da55bf5..b0d431999e7a64f7e6e5b933d29dc65a93b6c1d4 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env python3
+# group: rw
 #
 # Tests for internal snapshot.
 #
index d84740ed9f0a251429c2344639361783ddd176e6..ce35ff4ee0ad8deb674aac4e5ab5444095ee2e23 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: rw quick
 #
 # Test export internal snapshot by qemu-nbd, convert it by qemu-img.
 #
index dcc442be9f3ca5ff8a9505a3b0f5dc42d9952f28..65c0c32b26f0be26ff368e50756f29d31f71a28d 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: rw quick
 #
 # Test case for vmdk
 #
index 4b81d1aa516e70b689b5555c6b08661cbc5b5d17..db26c6b246cda94e9258c51b0b6c1903359e56d3 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: rw auto quick
 #
 # Test case for image corruption (overlapping data structures) in qcow2
 #
index 5747beb7ed60cd96f2ce6f836589b8872ab60c42..e26d94a0df3144dbfece8fcc18cf37cf0bb7ecc5 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: rw auto
 #
 # Test case for image option amendment in qcow2.
 #
index f26b88df9d8610bba9a8a06668e9b5b812f27eb2..321252298db02d57e23f10dd869d41c7b37c0429 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: rw auto quick
 #
 # Test case for snapshotting images with unallocated zero clusters in
 # qcow2
index c750b3806ea419ba202900d8b992c82b5753a765..3a44758053c4f4ad9c28889c4cd771189c0ec527 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: rw auto quick
 #
 # test of qemu-img convert -n - convert without creation
 #
index 90673186ec39a8fe88421470ca1361564228da36..71fc575b216557872a96ce4f2fcc54536e43c852 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: rw quick
 #
 # Test VHDX read/write from a sample image created with Hyper-V
 #
index 29a7f7ad60c9baf6796f3027ec74bc4ec7b41ee9..3c2ca27627f0d6343ba04c857b3853b66b3e8edb 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env python3
+# group: rw quick
 #
 # Test for additional information emitted by qemu-img info on qcow2
 # images
index a4ac613f8ecefeccff84699619753ca11b7ab7fa..a780ed7ab510dc3353c6b05516e3126f25a6fb9e 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: rw auto quick
 #
 # Test case for preallocated zero clusters in qcow2
 #
index ccd1a9f1db79980b8987eacd250ae210873c465c..03e03508a6e2a75c1c770cc88229891c0da74eaa 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: rw quick
 #
 # Test case for loading a saved VM state from a qcow2 image
 #
index a4da83b2d9da8743e6969f09c2403fcafac2587e..222dcba741eb37251018a87423b4e551a4c5498c 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: rw auto quick
 #
 # Test case for deleting a backing file
 #
index cb0f927c165af3ff2304b9ba33b5418094bf9fd5..b181e00f9b7d733124721bde4a96fa7278ff6cab 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: rw quick
 #
 # Test VHDX log replay from an image with a journal that needs to be
 # replayed
index 49faae668401ff3d211a49f4e5276ed710cbb4af..d99cef5a424996fed327f46a51e9c50757b5c57e 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: rw auto quick
 #
 # Test case for the QMP blkdebug and blkverify interfaces
 #
index f0b73e7e658fd2b0ec0ee7969a4eba22baa26097..c492ab8a787c2eb363a3f40238afd676896cdbe7 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: rw auto quick
 #
 # Test case for nested image formats
 #
index 68517821e875aed4384de94ee3b1cc3c2c66d8a4..90afd420bdb76122b02e7db84d1f9610f08aeff1 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: rw auto quick
 #
 # Test count_contiguous_clusters in qcow2
 #
index db03edf0b0522d7ef57d412cc6f1ec2ac1ddc392..c32c94b50dc20be2ae6da78aa7e730fa70f58b76 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: rw auto quick
 ##
 ## qemu-img compare test (qcow2 only ones)
 ##
index 389d5675fab949416da4c82ee99f4791433e4aad..ca2ed2a05c420e1ca5b6b5b042f04f68dca099e6 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: rw quick
 #
 # cloop format input validation tests
 #
index 0d405ef3f2d354b54ab81532948bc31545100bb5..1a8927d765d39aff677b19340a5c5c695dee6c52 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: io
 #
 # parallels format input validation tests
 #
index c28495208222093c39a8542b814fb20811083861..fbb90d80361a542a51ab7e11db0e94dfdb62b637 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: rw quick
 #
 # Test concurrent pread/pwrite
 #
index 54fc654d8e652c0d1a405e4cc641b1c0c496cc1c..0b48b7f137f980891a94a1e07e128f1342c0c2fc 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: rw quick
 #
 # bochs format input validation tests
 #
index 0f0d94a2ac6a6e26ccb450f8bf68d9c0cb4b2c9c..793e1f9d08fb21e0f139d89713175eaf381e6c83 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: rw auto
 #
 # Test qcow2 preallocation with different cluster_sizes
 #
index bda8617c384351405c5b508669fcc1852f740d4a..3306500683760c8c263f32c78a36c8ca41caf3b8 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: rw auto
 #
 # qcow2 format input validation tests
 #
index 4e199729317135b492cbe185cd07bd158f42e020..1ac66f197e46814285295818267df08546e75e2d 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: rw quick
 #
 # Test Quorum block driver
 #
index 213558186734673874cb64f31226f4fa29d48a30..021b9bef063cea32c489399319a9d96d563b5739 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: rw quick
 #
 # Test qemu-img command line parsing
 #
index 10fdfc8ebb61f0296b7bf87b7225ee5561afc9a7..bc32b537b2bf657e3848563fd79d23a6883930f5 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: rw
 #
 # Test NBD client unexpected disconnect
 #
index c29d7395e9808787a7a2b5934a02bac5839d3c14..e51e91a7c81bc550e600f1ea9c1364f6c91c68db 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: img quick
 #
 # Test case for VDI header corruption; image too large, and too many blocks.
 # Also simple test for creating dynamic and static VDI images.
index e99eb44581e8549dc7700b9a33f8f071a7f11895..d557522943db367465159206a4443372bd7094db 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: rw
 #
 # Live snapshot tests
 #
index fea1a7bd8ac7ca8176f2ce67a884142212648b9a..c055e7bfe18874a7bee029894bd810ee71feec7c 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: rw auto quick
 #
 # Test qemu-img progress output
 #
index 678e748c58c737de8d035c8d2ed7d5bcc375e027..edd43f1a28193afe16b90f91818b2a91c50b9d83 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: rw quick
 #
 # Test unsupported blockdev-add cases
 #
index ef1163346cf08ee3a20bf21afe23d98d7acbb5c6..e3102fe888b395cee93b94743a8868b809432613 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: rw quick
 #
 # vpc (VHD) format input validation tests
 #
index f0929b64c0c1dd192614a08b7cc1a6fa79e3a978..48bdc42e42e012429ffaa6a0de44a5e47fc82380 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: rw auto quick
 #
 # Test case for support of JSON filenames
 #
index 87e872ebf492c602012dfc4c18ac0d09957f7d3d..2044c09e9bd9bf20b0d9c63adbb30e5d67217c7e 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: rw auto quick
 #
 # Test for discarding compressed clusters on qcow2 images
 #
index 8dee168bf697e978f2951161a8e95f2394434d2e..9d144b94393a341855a6d10c7fc6edd9cde1fe9d 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: rw migration quick
 #
 # Live migration test
 #
index 40ec62b6f14f77e7c2f6838fec88cef8eee73052..bfa116d1919d152f073276d2d4a479103357a85e 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: rw quick
 #
 # qcow1 format input validation tests
 #
index 32ded11430733dcd8f285a02b2c875eb7417e492..7745cb04b611f619f9a4e83639dc978c0d331301 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env python3
+# group: throttle
 #
 # Tests for IO throttling
 #
index 2d3e1004d344d630a2ea63c61f62cc28bf7649bc..a295fb20ef1de9b3a0e59c05ba541aeff21dcd27 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: rw quick
 #
 # Test case for drive-mirror to NBD
 #
index 7604ae696698ef6f632d911d9ed333f1ab03adfa..20b5f9bf613ae70b21db0720f0fa2c5fc70e03f0 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: rw quick
 #
 # Test for commit of larger active layer
 #
index 5915f92786fc56d332bbe21a9b7f962610d35aec..b5d7636bdc3dbfb7c6f8213f5a1e37234ee10ccc 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env python3
+# group: rw quick
 #
 # Test that snapshots move the throttling configuration to the active
 # layer
index 1837d4e8e0ed0116b1c245a007e2408ca1694c23..30313f8867d15ccc1e019493a062cfefc868f1d5 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: rw auto backing
 #
 # Commit changes into backing chains and empty the top image if the
 # backing image is not explicitly specified
index a35ce7205edeabf2155864a2f2413ca36f799988..4c37eb0cf56c065434400026fc8b1da3000b32ca 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: rw auto backing quick
 #
 # Test qcow2's bdrv_make_empty for images without internal snapshots
 #
index 65e8e9257200c2951a088def307b55d2e1c0e3d5..2f1199ce04f999c2ce7470e188dee88b85aebd49 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: rw auto quick
 #
 # Test valid filenames for blkdebug and blkverify representatively for
 # other protocols (such as NBD) when queried
index a4c1b6366ae621adcf8ad3acea0a7a35b11ff519..4c4a8cea112fd7fe165d9d0d78ba6ed601ba6399 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: rw quick
 #
 # Test short file I/O
 #
index 9d747c7bbfdbbe93a3a88e354a6b7d2c323632a9..8b4c4c905f2274f3bc5d3a44fefa778b3f5451ca 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: rw quick
 #
 # Test case for qemu-io -c map and qemu-img map
 #
index 220481db4c067abb5cff8d9a1b66a83c6ba6f5ac..726f8313ef75ae8d761fafb520448acc21c5e03c 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: rw auto quick
 #
 # Test case for qcow2 metadata cache size specification
 #
index c70f28a9a1c1d4cec33ca016b44b0b3d4fd69626..3ebb74cf6e0491e74582ebd2491701573410d5aa 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: rw auto
 #
 # Test image creation with aligned and unaligned sizes
 #
index 4d55a2d3ef79011838cdf85019305b530b2ee2fa..d804685110db7527cb6fb45d6df31a6e776feed0 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: rw auto quick
 #
 # Create, read, write big image
 #
index 20ad7bd5a226219a1d41d7b948dd23404a070ba6..333144502c906e24081c1d75e324ad687420a6c2 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: rw quick
 #
 # Test preallocated resize of raw images
 #
index d24829ccf9ee602865ea0818b5cb790ed2780df9..e68f1e07c76a25512ac7b9516a3c25b0d631a3b0 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: rw auto quick
 #
 # Tests updates of the qcow2 L1 table
 #
index ba67748bdf33aee287c3fb04d9573b51cfe2c2d3..8eaef0b8bf27592912d23ba6b36e3e70901c88d7 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: rw auto quick
 #
 # Test case for repairing qcow2 images which cannot be repaired using
 # the on-disk refcount structures
index 3ffeaf3c557b80584051206a603c58d869ddc824..e207a555f371b65846fec9da513b145bb7ccb920 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: rw
 #
 # Test writing image headers of other formats into raw images
 #
index f1813d0dfb50e5675e1aef5028018040e4b5ebec..1fa36ccdb79890573d1a556430b2c1d61c4cdea9 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: rw auto backing quick
 #
 # Test case for relative backing file names in complex BDS trees
 #
index bd839a39f4b272c4efd05010d09d9e7cabb2425b..3ba25f6161b517f071f23a955304198b79cc007a 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: rw auto quick
 #
 # Test case for non-existing backing file when creating a qcow2 image
 # and not specifying the size
index 6e413f56510dc7840bd6e42749fd109bd3388e6d..07ac74fb2c184c0580ebbedd70f9d6d3f208a6b8 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: rw
 #
 # Test cases for different refcount_bits values
 #
index 71a65de2e750a7e8f626deb1b168afc48f15f35f..ee59b9a4b8a11b6ebe619ea736ebfb860e2b6bb0 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: rw quick
 #
 # Test case for accessing creation options on image formats and
 # protocols not supporting image creation
index 80e5e5e5910eb8298aced88d8fa7994223d43d32..43cb0bc6c3443a809f4dcd42ecce8231d854ac28 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: rw auto quick
 #
 # Test invalid backing file format in qcow2 images
 #
index 7f53987d1b885be7a6330cd494b52ecc0d39d4c9..26dd37dd6d150dd1c3fa4c3892e53ea7d97ddc20 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: rw
 #
 # Test case for non-self-referential qcow2 refcount blocks
 #
index 941b07a1a96fa7883ef6bdd1300fd90023065d63..4f40fcb3d21d5bcb7e811bc8a331ac488af8aa98 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: rw quick
 #
 # Test error code paths for invalid QED images
 #
index 9039555ac4bd40ce273b7f32eaf12eb511febf7f..48ebc012b160e033464a0d1e86ceb0f83b44c3ce 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: rw auto
 #
 # Test case for shared BDS between backend trees
 #
index 2350929fd833f4ec2b4640a7891c7cc7a8bd1876..1a2e219057997e509db88b6a8a37e3b14a3087f4 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env python3
+# group: rw
 #
 # Test case for the QMP 'change' command and all other associated
 # commands
index ea6770a48498b4d100d02bf68ce7ec94ba2b55d2..5770b500450d4c61cb6d33047a1aedecafa401fa 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: rw quick
 #
 # NBD test case for overriding BDRV_O_PROTOCOL by explicitly specifying
 # a driver
index 45c55c1c017dd2475554a912a64c31f69677a8d7..71877312537dc5e784b24a68859ba65d7ec49463 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: rw auto quick
 #
 # Non-NBD test cases for overriding BDRV_O_PROTOCOL by explicitly
 # specifying a driver
index 8357ce089a2d5e2b36d5e7442973286cbb4e9cfd..ba3d8d9377a967e9dfb35f5e4e020c929f2db82b 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: rw
 #
 # Test cases for qcow2 refcount table growth
 #
index 0f3d4ca851bfe26b05770a9864bb0fe0373d4f91..5d550ed13ea31d6e1c74530d9391720321c7af51 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: rw
 #
 # Test some qemu-img convert cases
 #
index 01b771c76ebc0e49eb70f3069ffb200df950ea3d..e19111f70d930ae2b855dc7f6ff6255ed943e4d3 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: rw quick
 #
 # Test case for qemu-img convert to NBD
 #
index 3705cbb6b33c5eca38e937bdf7baba00bde280f4..3b21bc497f67d9b2f310447e3f24664bb5154041 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env python3
+# group: rw backing
 #
 # Tests for incremental drive-backup
 #
index 5720e86dcef2152e6d8ff7cd0e1da95e79be0f20..bd390b3a99c09d477e12bc3c3b117dd0d6c033b4 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: rw
 #
 # Test preallocated growth of qcow2 images
 #
index dd5a2112278d97497020f94d507a6cd66191ae54..92c0547746bf9a483be088307c688fc7424e6d8c 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: rw auto backing
 #
 # Tests handling of colons in filenames (which may be confused with protocol
 # prefixes)
index 77fdfd020521997aadb76d4f55f48a6de5e2c654..98e8e82a82100b544d8791fb41a737c4b96c3cd0 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: rw auto backing quick
 #
 # Test case for mirroring with dataplane
 #
index 3606c4176079b52251e466e3e9afa44607f3ca3f..d0e00d24b1d0ef0ca3c0d8dee965e6a508ed1c9c 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: rw quick
 #
 # Test that opening O_DIRECT succeeds when image file I/O produces EIO
 #
index 0e13244d850e62cff5289e97182fae7e830482fd..f57a2e19f6e774c1cbc1a655380e5ebb491317c3 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env python3
+# group: rw quick
 #
 # Tests that "bdrv_drain_all" doesn't drain block jobs
 #
index a7b365701c490b4b4894eb0c26a8d997620e7454..7257f096774f6e9e835479006ba478a3b376f310 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: rw quick
 #
 # Test that temporary backing file overrides (on the command line or in
 # blockdev-add) don't replace the original path stored in the image during
index 27870231cfab6328fba5322468453678fbe532ce..d7456cae5bbb4894690a5852385cc59479cd5f08 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: rw quick
 #
 # parallels format validation tests (created by QEMU)
 #
index 39ea43067e6099b77f47783f879f216213d47b73..367ea080365f6e3d8a06e5cf8c316e6ed089c1bd 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env python3
+# group: rw quick
 #
 # Test mirror with unmap
 #
index bc82d8ebd79c2805a901bf207b50bc906edc27a5..d997db16855003b8a1a0aa71de76574779bfbe79 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: auto quick
 #
 # Test for reopen
 #
index 17fe1d6ed48d7fe42c0bc21054dc42ba259e94ac..ded153c0b9f3df65719cc845a25a9a50e1352df3 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: rw auto quick
 #
 # Test encrypted read/write using plain bdrv_pread/bdrv_pwrite
 #
index 3b3d1dc2a54a9c53ad4bc9f5bfa033313ef2ecaf..299075b4c9efde17f6deb4ad071251c7d028ed49 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: rw
 #
 # Test VPC open of image with large Max Table Entries value.
 #
index d59400c9fcb1bee83005e8b6b1d504913b721250..8fce88bd677eb6f6c3c30fba867da948217beab4 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env python3
+# group: rw
 #
 # Tests for block device statistics
 #
index de555a91c9f746dc7d7199b70c756ea44b300629..4680d5df3d0fe8be4041f4df38332ecadb75ca7e 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: rw auto
 #
 # Test qcow2 reopen
 #
index e87a64eb89e552fbf076694159f02e1bef783059..951cfa67d47cd42343377d441ff440482f96eb7c 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: rw auto quick
 #
 # General test case for qcow2's image check
 #
index 1452fd24b335ce045f5a7f48dc96eb9d50c66cd7..e79b3c21fdce1b7b167238487bf0a04176e7451c 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env python3
+# group: rw quick
 #
 # Test cases for the QMP 'blockdev-del' command
 #
index ff6b904fa0e8b41ed42659729994848e65ac0acb..91e08c30d42869179243fd6e4de3bfcfe52dc2b0 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: rw auto quick
 #
 # Test case for ejecting a BlockBackend with an NBD server attached to it
 #
index 21aa0b42d81333d96ac38ef1e59a3cff3834883d..115cc1691e5e18076827c7071b5d05e62d724055 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: rw auto quick
 #
 # Test case for ejecting BDSs with block jobs still running on them
 #
index d2349903b1b5fa1b48ffc3e7a00dec91ab45abf1..72151acf27c4697dc0f595e370d56fdaf73956ac 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: auto quick
 #
 # Test case for connecting to a non-existing NBD export name
 #
index 4569ac0b4bfc36a1176c84facef33fa433fc71bc..60e9ddd75fb54b0cac66ed94326bb4ef54392299 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: rw quick
 # Check live snapshot, followed by active commit, and another snapshot.
 #
 # This test is to catch the error case of BZ #1300209:
index 94275496514265b79ffcd44aa14fdba87c004852..a2ce92516dc54f0b02f9a8052c593ba1069c1631 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: quick
 #
 # Test the combination of -incoming and snapshot=on
 #
index ddc3c1fd8041c3750ce49f7594b1fb6ed3b17095..98aca96732cf6616072d96c467672a3b5a12ffe3 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: quick
 #
 # Test VHD image format creator detection and override
 #
index d7a9f310896c771bde930ab31dfbc0395f65c866..47dfa62e6b471da8e0dffadd6f80bf46f62bed2c 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env python3
+# group: img
 #
 # Test case for NBD's blockdev-add interface
 #
index 5e14a455b165cb541cfd365caa1278efedd6fa99..7ccbde4633c23054a8bbdc34ecec7b5507e79ac8 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env python3
+# group: rw quick
 #
 # Test the rate limit of QMP events
 #
index 852768f80a1c95a68984bd82d91688a413714d92..328fd05a4c9186ff12c8f228dab711ab76fb2eba 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env python3
+# group: rw sudo
 #
 # Copyright (C) 2016 Red Hat, Inc.
 #
index 3b1f32197ac526d173cfe4211d53070035d239dd..ac6930ae20c91b686edf375ca54a6dccbbbaf540 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: rw auto quick
 #
 # Test that qemu-img convert -S 0 fully allocates the target image
 #
index f2df72c29c2e9677911070be4747022cd562b52e..182f6b5321ab48c7336571c7d8bb63bbef1ae7e5 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env python3
+# group: rw
 #
 # Tests for active mirroring
 #
index cc2ea09654fbc87d641eae4d7cb069acddb7f334..4e179c340ff340bc83d20dd78eb43e1e7df22115 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env python3
+# group: rw quick
 #
 # Tests for drive-mirror with source size unaligned to granularity
 #
index 34045ea3cfeb5e30acac17ae8a1038bdfb0577b6..607af590918aaccd12490493b42ae8034a368e77 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: rw quick
 #
 # Test image locking
 #
index 34a1c051b6e6da332f4e0411645ede47f25e1b7c..24e29ae2ffe3e12d2c67c1da6284fe25f48e93e1 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: rw auto backing quick
 #
 # qcow2 specific bdrv_pwrite_zeroes tests with backing files (complements 034)
 #
index 988f9861447c2ff8feb9d92f5b25044b466bb9f3..bafef9dd9ae6ffeb22f39b97f2e589ce017cd055 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env python3
+# group: rw
 #
 # Test whether the backing BDSs are correct after completion of a
 # mirror block job; in "existing" modes (drive-mirror with
index 9c7878dd2dd30e8226c78125c72cefc43bce3f51..65dcedd4930ed349772755627cf1128d9a212ebc 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: rw auto quick
 #
 # Tests oVirt-like storage migration:
 #  - Create snapshot
index 7cbac38099900b7459a22e90be91a17d2484c789..0dc9ba68d20f4aecaef8054e4d2a121fd57b3f16 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: quick
 #
 # Test command line configuration of block devices with qdev
 #
index cf23742c5946fadf0f704bd0ad3143acf7393ea1..a95878e4cee8614cce5769c0cb8b41e2e1b54e84 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: rw auto quick
 #
 # Test encrypted read/write using backing files
 #
index f9690053a24a16824087dd2a9d528a3dde8db325..4eb476d3a8e22ed23ad675f321a66cbc60b7f5a4 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: rw auto quick
 #
 # qemu-img dd test with different block sizes
 #
index 0572b5ae9abee580993e6c3329ba1fb975e8fa18..7984a9c6f7e64aa2e1196b8ff4b53b86544b90ad 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: rw quick
 #
 # qemu-img dd test for the skip option
 #
index 4fb7d0cbf0367c096e138a3b00a739180bd5e81e..f25effab93600d7453854a1f0e9417427ac53ee4 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: rw auto quick
 #
 # Test reopening a backing image after block-stream and block-commit
 #
index c0053ed975869864edb0ef1adfa999b4805bea7f..cf17f494d8216f63b639f160fbf43145eb5e39f6 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: quick
 #
 # Test case for specifying runtime options of the wrong type to some
 # block drivers
index 5a3cc840a5df04c5fa5a320039c1a7805683729c..dedce8ef4322d3cec0303049b280cd0efdb75e2f 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env python3
+# group: rw
 #
 # Tests for shrinking images
 #
index fb56a769b4f1479ad1ea861138f3b71d84907d1e..abc4ffadd50ea798392d2f97912df3b1e4db5982 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env python3
+# group: rw quick
 #
 # Tests for persistent dirty bitmaps.
 #
index 40afb15299861a4a8bc0fa3cae60f48313e565cf..a5c7bc83e0e54bb1b33553f5924b442c4d501107 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env python3
+# group: rw migration
 #
 # Tests for dirty bitmaps migration.
 #
index 6c8f0e8085ba1c9ce0756ad6e200da5af1b6de89..41387e4d6608db83c647f8b4d954196a224e0e68 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: rw auto quick
 #
 # qemu-img dd test
 #
index f3582edb1032b9bca97b6f8848e5eba347b7c224..d1d77f7013041177b0460a81e1a1354cf593847a 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: rw quick
 #
 # Test 'offset' and 'size' options of the raw driver. Make sure we can't
 # (or can) read and write outside of the image size.
index b45782e8db6d1e0aa4258940a480f35d660f8caa..0ac942a6c5fb4cddf20a6618ad1c79d20eed3788 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: auto
 #
 # Test floppy configuration
 #
index ec6d1705e5867deb3a22d944523e842a89453a47..9594f3c5eaeb074212d6b5dc5b295dd42a2c963d 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: rw
 #
 # Test QAPI commands looking up protocol based images with relative
 # filename backing strings
index 1b0dd2e8b7b64886c8ac45286f2873a86cadd59a..d4cecb575668a4be3f3d08dcbb5a804b3f7d604d 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: auto
 #
 # Test that qemu-io fail with non-zero exit code
 #
index 21a77a2bf55abeb55d7ecb7c05202771e88eba70..f74f053b719cbdc31856793810ca8b28a3ff6748 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: quick
 #
 # Test creating raw image preallocation mode
 #
index 39c2ee0f62505c977eb42990986b933cd0ecab27..40a5bd1ce6c22cf5a9d8776acc28f159d516c2ea 100644 (file)
@@ -23,4 +23,4 @@ size=4096, min allocation
 == resize empty image with block_resize ==
 Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=0
 size=1048576, min allocation
- *** done
+*** done
index 5ce3b270697179a2ae712113ce3349d88c14abfb..27ac25467f5611df24d9189a2c89873d143b7487 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: rw auto backing
 #
 # Commit changes into backing chains and empty the top image if the
 # backing image is not explicitly specified.
index 595bfd4236d72c9bcd56825a87c8493396eec00f..8d8745b29a69e516e3964417ee58d16298b9473e 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: rw auto quick
 #
 # Test corner cases with unusual block geometries
 #
index f09b27caacf3eeef0b9d66ce4792f31c9118d675..3b1a7adce4b52363e9fc87cb43860c4ddd57bcb8 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: img
 #
 # qemu-img measure sub-command tests
 #
index 7ada04c6410976f29237e4bddf91d2a68081d41a..09447b561030561e3a49bff07ca23dad3f7d8b49 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: rw auto quick
 #
 # Test case for write zeroes with unmap
 #
index 438c2dcd808a19986c7f78a852d3678cbcd692d3..820c53ef35f8f9228a91f0d557f7046b5cb8f66d 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: rw auto migration quick
 #
 # Test postcopy live migration with shared storage
 #
index 56a2dd58e6fefa35b46e20275ddfd51e1ab52427..55a0384c0873c3758a61b37670ebe035554c4101 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: rw quick
 #
 # Test image locking for POSIX locks
 #
index d889a3b19cce5b069a26205bb64cd25da3ad08be..ee62939e72f69bc7cdc7ca780a519a151126a160 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: rw migration quick
 #
 # Test old-style block migration (migrate -b)
 #
index eebb53faedef0289e7e3c05e83191d9701377e45..513d167098edd271839ed71fbbd8a30312a717f6 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: rw auto quick
 #
 # Test I/O throttle block filter driver interface
 #
index fd5e6ebe11f2da3c44f37b72df08b29ce22a2a00..7bc8fe5767a3fee97c1ce7f2bfe5d824f27a6b0a 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: rw
 #
 # Test exiting qemu while jobs are still running
 #
index 0db25b0e682027fafc9d23e1f2f2b8a1904fd444..072e54e62bd2c2f73d3ae3f2abf4744cc64f3cb4 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: rw auto
 #
 # Test 'info block' with all kinds of configurations
 #
index f262d83e3aea59e909c4258c2b45cc6ccf6ea1f4..70b74b033c394b22a779a3b7add72007c5b687a5 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: rw auto
 #
 # Test switching between read-only and read-write
 #
index 13b225fded475eb18527af5f1d1c21a56f70bf8a..ce087d18739f142ead492402e0a1de4089fab050 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: rw quick
 #
 # Test encrypted read/write using plain bdrv_pread/bdrv_pwrite
 #
index 3e5ded14c6c17ad990b1bdd3f105314f76a3e22d..4e463385b26f931d3955fa2e4e2f72432ac001a0 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: rw
 #
 # Test encrypted read/write using backing files
 #
index c22d8d64f924799cea9f0b2d154d2c927b922c27..7fb84473547a8d34ece880e650656d7ee9fe96d3 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: rw auto quick
 #
 # qemu-img measure sub-command tests on huge qcow2 files
 #
index 95a891350dcfe0b742fd6508440b63ddb2d35cf1..ce695b95c25377846cb34ebfb3314543d1dddd90 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: rw auto
 #
 # Test commit block job where top has two parents
 #
index d2ba55dd908da4e49e0736fe8734e37479493c13..d809187fca7ce8bef05c2d9339832d5ef5f7362e 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: rw auto quick
 #
 # Test NBD export with -incoming (non-shared storage migration use case from
 # libvirt)
index 7a4863ab180865fe54748cd9d07e72d01448086c..3889266afaacd37f04646d830a5a7a04852eff0a 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env python3
+# group: rw migration quick
 #
 # Copyright (C) 2017 Red Hat, Inc.
 #
index 967af5b7b5fb56da5ab2c30ff41b19cb114edc37..f1df69079f53e2b06080c5333857162f8b358b92 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: rw auto quick
 #
 # Test change-backing-file command
 #
index e8fcf37273e4528acfd8bab1dc8bdcce4b28a437..2451515094f2e582dc8dbe838e602229a00b7fd5 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env python3
+# group: rw quick migration
 #
 # Test clearing unknown autoclear_features flag by qcow2 after
 # migration. This test mimics migration to older qemu.
index a161c898168a0a46fd2bd70f1206a744c7327bec..a2547bc280ca4cc8a08e84464a257f41fc2ef5c1 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: rw quick
 #
 # Test case for copy-on-read into qcow2
 #
index 46f0c5453736b4c75e41802977e549fc33b2c892..b333a8f281c6383c325bfefb31bf91193e04b37e 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: rw
 #
 # Test commit of encrypted qcow2 files
 #
index 58fad872a12ce90b2e1c3857304582b772ac7b3d..dbf10e58d3b2dc0cb426a3fce4fffece1b3a6dff 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env python3
+# group: rw migration
 #
 # Tests for dirty bitmaps postcopy migration.
 #
index 046539154f55fce0fd01146484396cd0993dc780..f80517e3421749005f605c74a0adbedad355a93c 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: rw
 #
 # Block job co-routine race condition test.
 #
index 483eb189c5e65fcaae8cd1a0cc0a04c72bcd75be..1b8eb51d8f389e212d0248c71a4336b77bfbe524 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: rw migration quick
 #
 # Test savevm and loadvm after live migration with postcopy flag
 #
index e3900a44d112867968fc31ff3c0d318fc15723ae..8eb5f32d15394bddd5466aa75168572d1edc196c 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env python3
+# group: rw quick
 #
 # Copyright (C) 2017 Red Hat, Inc.
 #
index 4b4bd3307d4581548b52d488d230571658ebb75a..ea30e504976ad82e5d9d85e3d1ed1893884fc3c5 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env python3
+# group: rw auto migration quick
 #
 # Copyright (C) 2017 Red Hat, Inc.
 #
index 536bb8b534eaa4f563c922357163ec03478d0e88..ab68b6d75cfa5fc3be326e8c2ce233b58733b5a2 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: rw quick
 #
 # Test corner cases with unusual block geometries
 #
index 43432cb5997d26e5e08d9be1e41ace0b9ebbb1f6..c0e107328f16f439da9117f6052f28066c28d6f8 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env python3
+# group: rw quick
 #
 # Tests for qmp command nbd-server-remove.
 #
index d12d7cb56618503de2c38ee67c08413952d5ec0d..c3cdad4ce440f2098937487e6ca0c1bbbda859a8 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env python3
+# group: rw
 #
 # Test qcow2 and file image creation
 #
index a6621410dab751dd13a3690613e9fdbf27b91908..f9f3fd7131305a5ea81e537a966be97a7e51b15a 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env python3
+# group: rw
 #
 # Test ssh image creation
 #
index 54aa4be2734c889bbdcbe1f66f06ff59684fca65..6117f165fadf7e7a396bead2cfbbcd47a72edcea 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env python3
+# group: rw quick
 #
 # Copyright (C) 2018 Red Hat, Inc.
 #
index 8c804f4a308e4bd9d3e922ac4397129ecb1b6094..ff7efea11bc69d64ed3ba41c586db435f2370e63 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env python3
+# group: rw quick
 #
 # Tests for NBD BLOCK_STATUS extension
 #
index 7bf591f3132634fe2aeaaf10c0f49ed9b1aad605..5a62ed4dd1e3121a0b02781e9e9db1112078465c 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env python3
+# group: rw
 #
 # Test luks and file image creation
 #
index 4969edb00c517ad327e054277ccf197f30397b5a..f52cadade12f83798bb02bfaf68acbfd4ee2d906 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env python3
+# group: rw quick
 #
 # Test VDI and file image creation
 #
index 45d08842bb45711cae784e4dd7824b41ec47b36e..d4af0c4ac80e1cdaea753b783cc117989e7da545 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env python3
+# group: rw quick
 #
 # Test parallels and file image creation
 #
index cf638eb9277b91e62f88678f678875160a378aca..78d839ab6414d969eb239a7ad875ada46c12e1c9 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env python3
+# group: rw quick
 #
 # Test vhdx and file image creation
 #
index 75ae7a14b534de75ada19b2006ea6059b271f4bc..0889089d81cfa9375b5f4d30bfd5a13cdfdb679f 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: rw auto
 #
 # Test qcow2 image compression
 #
index f99bae78c736a11dabe611062aaba3b2ef852bcf..d464596f14046a324ac1afa01072d4c2b2c30240 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: rw quick
 #
 # Test case for copy-on-read into qcow2, using the COR filter driver
 #
index f93c61aad665a9bc1fa04106be94e72c7fc4c87d..c02f8d2880f6152942e8e08af95226f3ad625885 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env python3
+# group: rw quick
 #
 # Copy-on-read tests using a COR filter node
 #
index 73853424985aa30cef5a8cb130bcec6572067cf4..e693f326a3033b74c035b51543054dd753755a78 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: rw auto quick
 #
 # I/O errors when working with internal qcow2 snapshots, and repairing
 # the result
index 5586870456ce99b5496dd7c5485f1c0a4898ee59..ae7c4fb187e91241ca39b273b1517dd8973581a0 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env python3
+# group: rw quick
 #
 # This test covers what happens when a mirror block job is cancelled
 # in various phases of its existence.
index db272c524948159a208b7b4740137c091a415606..16c3ca7fffc3177eea2d04500fc7bee98a6ae121 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env python3
+# group: rw
 #
 # Copyright (C) 2018 Red Hat, Inc.
 #
index 9ba3b3fdcb6b74e8e9c6f2f0a796861071ccb3a4..7d08b9b0401f2af67b36e7dd84431c577c12bc3e 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: rw auto
 #
 # max limits on compression in huge qcow2 files
 #
index 7e6086b205d0407ee63da6bce54c5b2ffd5421f7..c463fd4b113e7af6b99a659cdd1c0873d0a6561a 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: rw quick
 #
 # Test qemu-img vs. unaligned images
 # (See also 253, which is the O_DIRECT version)
index 14d67c875bd881b628b7c2bbbecc7ab55fbf6023..b48afe623e36e98a08c3fec893b16f8112d438a9 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env python3
+# group: rw quick
 #
 # This test covers the basic fleecing workflow, which provides a
 # point-in-time snapshot of a node that can be queried over NBD.
index d68bc3cb6f1a2033eb8ca7283e54aff679283715..da87f2f4a233d73e8368d8f8c7c8e7911361c030 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: rw quick
 #
 # Test reading dirty bitmap over NBD
 #
index 017b0685ba15bc98262771513a49173da4ffa416..38dd1536254de19cde5d6dbcd42bcc5cccc27777 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env python3
+# group: rw quick
 #
 # Test json:{} filenames with qemu-internal BDSs
 # (the one of commit, to be precise)
index 0186ec8156606560335f45bb13cffa43910db6da..c0053790db877e1604ddea14292a7503f7f239ad 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: rw quick
 #
 # Test vmdk backing file correlation
 #
index c1e1fb2b1cdfef5256edec7a57c01fe6b5d84518..6a9adb4a0bcd68d8e030dd17237a78324a6e98e9 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: auto quick
 #
 # This test covers expected filetypes for the file, host_cdrom and
 # host_device drivers.
index 637d7c37261092bc9c541ae35b4c6b945686f740..7e45a47ac6165ec04a7e6daf925aa522de8054df 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: quick
 #
 # Test query-blockstats with different ways to create a BB
 #
index 266fce6cda2c59faa0cea8f7bfaa9a74a0254f13..a5eda2e149bd5fbe498fec773be4e4189ffb9b04 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env python3
+# group: rw quick
 #
 # Test for when a backing file is considered overridden (thus, a
 # json:{} filename is generated for the overlay) and when it is not
index 273ac2472d71f84f05a46bf076622fe0fd6626e1..4bc99390b541ede287768440c998ef99da2fc08e 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: auto quick
 #
 # Test for force canceling a running blockjob that is paused in
 # an error state.
index c0b053ac30aeed00ac034efc6611ef7b7efc0eb6..0f66d0ca3621be4690794913d8cceeb9642f12ae 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: quick
 #
 # Test legacy and modern option parsing for rbd/ceph.  This will not
 # actually connect to a ceph server, but rather looks for the appropriate
index 685356ac3bae6da1bb80a3365373abf53f043872..b30faaa21806d31e65d511980386100bd9da87de 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: quick
 #
 # Test for auto-read-only
 #
index a5c17c39639de6fc94cb7c2cab3bf603f62e6d62..7ce5764903b27368491131d3e173826b1af4bf55 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: quick
 #
 # Test NBD TLS certificate / authorization integration
 #
index 73c899ddaedef564aaa8be12d4bcae636f31f7b7..cb5f1753e088ac0b1aaed138bf6c01e67be27d3f 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env python3
+# group: quick migration
 #
 # Copyright (C) 2018 Red Hat, Inc.
 #
index d1b10ac36bd62f8595c6278678989a5be650bede..20d16dbf38ffe686c8a63dbca0f93b6137e3aed3 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env python3
+# group: quick
 #
 # Simple mirror test
 #
index 6f5cee24440a20ac579b4488fd5b269cb80eedbb..f6c44517d6b5a838eeb0a6cf70cd796fea0bf0e7 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env python3
+# group: quick
 #
 # Test bitmap merges.
 #
index 5b21ad3509fd53b4be371fc181cb941f634f203e..43dfd3bd40a4ad2495cea2778c8ab472ce1566bd 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env python3
+# group: rw quick
 #
 # Test vmdk and file image creation
 #
index b8fcf15a1f920fd1c61551fa5c2f16cb2612798b..8a10af57f17c91dc312a85c80bf64576ec6f56eb 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env python3
+# group: quick
 #
 # Regression test for throttle group member unregister segfault with iothread
 #
index b0991ffe59470b4b8def7cfae9e9cc3545d78cf0..4f0037148d9a1c2d618c7fe6745bda2a5bee46e4 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: rw quick
 #
 # Test case for dmg
 #
index c0f71f0461f6862632fbfc2846a8236de0c3816b..ab077f4ceb01f0099b9fa2402e135285bb1a9b88 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env python3
+# group: quick
 
 # Test hot plugging and unplugging with iothreads
 #
index 8dae8d39e43102c0ef86ecaa02d7d45944d2986e..c962c8b6075d85e739ab34cac8c57900a1f3ea38 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: rw quick
 #
 # Test qemu-nbd vs. unaligned images
 #
index a16de3085f49352b48e2f5f1fa04c6cf9e1a5a6f..a9b27668c2757711fc3f21db87d4cc5925eec12f 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env python3
+# group: rw quick
 #
 # Test for qcow2 bitmap printed information
 #
index 17388a4644b05c0ce43233ac15495432be791d5f..8bbb510120dc3378537874bd706534d1ec84135b 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: rw quick
 #
 # Test qcow2 preallocation
 #
index f2b2dddf1c2a1f9378e157bb5aa7a4e653dd2b6d..a46b44162766367233086b6f8e60c4ddb044717c 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: rw auto quick
 #
 # Test qcow2 with external data files
 #
index e60c8326d391843be5d413e422bf28b40c104573..86f00f290f268dfdca190fa8cb432f1715947b90 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env python3
+# group: rw
 #
 # Test cases for the QMP 'x-blockdev-reopen' command
 #
index 58a479cc1feb1f439486f83043a656f959c0ce0d..fa3102c546c1e0d19a0100cc00224c1fb2831bc0 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env python3
+# group: rw quick
 #
 # Test persistent bitmap resizing.
 #
index 6cf267975095942683b984bbc8fdbfe455bdaea8..ace6dba052a2e53d18a7caebe959d5f0106a22e2 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: rw quick
 #
 # Test for auto-read-only with commit block job
 #
index 18ba03467e0294047dac175a2aa0418b37b9d29c..4daaed1530eac783c3444169709e076dd9791e19 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env python3
+# group: rw quick
 #
 # Test resume mirror after auto pause on ENOSPC
 #
index 29453b8c9082f31a3fe0d56ba3a39752f7106bf9..28bffd4d57125706924aa0e246a2ffec42040c35 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: rw auto quick
 #
 # Test that a backing image is put back in read-only mode after
 # block-commit (both when it fails and when it succeeds).
index 3df275c76b8375ebc8a1e5b2294016081298e035..f069ca17597bd50ba68fb79244d7f23febd23ebd 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: rw quick
 #
 # Test big discard in qcow2 shrink
 #
index 294773bdc16a1189d96fb00fcfed10c03dde2e6d..8bdec37d329365a111281b3b245e802e5762aeb4 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: rw auto quick
 #
 # Test qemu-img convert --salvage
 #
index 1d74afff992e9b48baf64278246355d90f06ef9d..2134b9993a3708a872ecd7a11842b94acf8ed942 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: rw auto backing quick
 #
 # Tests for rebasing COW images that require zero cluster support
 #
index d88d5afa45b92c34e3b200f5d5f0ee17457fa1fa..35039d20a8936e380b786500e77b4e7ef94b1184 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: rw quick
 #
 # Test qemu-img vs. unaligned images; O_DIRECT version
 # (Originates from 221)
index 150e58be8e6a7b0b2519605e1e6185bb6765d409..49da94840741a2fd8956dbfe4f54342e6093fe32 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env python3
+# group: rw backing quick
 #
 # Test external snapshot with bitmap copying and moving.
 #
index 8f08f741dacf27663ff0e5eff1d2c8787257c576..c43aa9c67ac48d8e8b7d87b410244c9ec7c28f5f 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env python3
+# group: rw quick
 #
 # Test commit job graph modifications while requests are active
 #
index db8d6f31cf64234db654d8ae3be16b34dd352a72..8d82a1dd865f654babcd753039b02b143cb28e09 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env python3
+# group: rw auto quick
 #
 # Test incremental/backup across iothread contexts
 #
index c80e06ae28bfc3d70cc149527276b14f3f1062cd..a2f4b5afe64bad0764abedda2fa9e92da0859409 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env python3
+# group: rw
 #
 # Test bitmap-sync backups (incremental, differential, and partials)
 #
index e305a1502f66519920b06a74824566496387cb28..9a2d33ae5eef726e94099a0ca59392c40f951d72 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env python3
+# group: rw quick
 #
 # Very specific tests for adjacent commit/stream block jobs
 #
index 62e29af05f3eac40a86ce5c12dc661beb69faca4..76cde429c46986a7289c63dc4878541658c0999e 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: rw auto quick
 #
 # Test generic image creation fallback (by using NBD)
 #
index 804a7addb9db8c0ce80b10abec5c9081c352d932..a35cb7b61f183dbd8ca30503b3801541cfb39f31 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env python3
+# group: rw quick
 #
 # Tests for temporary external snapshot when we have bitmaps.
 #
index 847b4c6a3752b8b808a36d3304bf06cc73be26ce..d1c8037ab19fbb260b58e062093fc828134f0a04 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: rw
 #
 # Test case for qcow2's handling of extra data in snapshot table entries
 # (and more generally, how certain cases of broken snapshot tables are
index 03af061f944f6e2d9b63cce1184844fff0273231..32d69988ef7b1795dca515257e6ebd00ec4fdb95 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env python3
+# group: rw quick migration
 #
 # Copyright (C) 2019 Red Hat, Inc.
 #
index f598a128997453f0a7f1261e2059e12c458d70dc..ec09b41405a15ad63dd07418592b8101930619d4 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: rw quick
 #
 # Test encrypted write that crosses cluster boundary of two unallocated clusters
 # Based on 188
index 666f164ed8f473c6cd9e421ef3777a20b45b6ad5..e725cefd47b56eea92dede88ae2187bd1974b3ab 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env python3
+# group: rw
 #
 # Test nbd reconnect
 #
@@ -21,8 +22,7 @@
 import time
 
 import iotests
-from iotests import qemu_img_create, qemu_io_silent_check, file_path, \
-        qemu_nbd_popen, log
+from iotests import qemu_img_create, file_path, qemu_nbd_popen, log
 
 iotests.script_initialize(
     supported_fmts=['qcow2'],
@@ -31,7 +31,7 @@ iotests.script_initialize(
 disk_a, disk_b, nbd_sock = file_path('disk_a', 'disk_b', 'nbd-sock')
 nbd_uri = 'nbd+unix:///?socket=' + nbd_sock
 size = 5 * 1024 * 1024
-wait_limit = 3
+wait_limit = 3.0
 wait_step = 0.2
 
 qemu_img_create('-f', iotests.imgfmt, disk_a, str(size))
@@ -48,11 +48,11 @@ with qemu_nbd_popen('-k', nbd_sock, '-f', iotests.imgfmt, disk_b):
                   'file': {'driver': 'nbd',
                            'server': {'type': 'unix', 'path': nbd_sock},
                            'reconnect-delay': 10}})
-    vm.qmp_log('blockdev-backup', device='drive0', sync='full', target='backup0',
-               speed=(1 * 1024 * 1024))
+    vm.qmp_log('blockdev-backup', device='drive0', sync='full',
+               target='backup0', speed=(1 * 1024 * 1024))
 
     # Wait for some progress
-    t = 0
+    t = 0.0
     while t < wait_limit:
         jobs = vm.qmp('query-block-jobs')['return']
         if jobs and jobs[0]['offset'] > 0:
index 0e800fb524859e8b2f1ec479470172970508106b..4b3b52c6e6f9e81fde9bf560632bd265615b05df 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: rw auto quick
 #
 # Test reverse-ordered qcow2 writes on a sub-cluster level
 #
index 91bdf8729eafe917245ca4e44331e918d87e23a3..71ce81d0df767805bed480592c9967426d8525e5 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env python3
+# group: rw quick
 #
 # Test VPC and file image creation
 #
index e44be49c771d4604567ed9bb29858a8a30707695..2e2afdad9c57a2f4fadd7282368d81cb38a55f1b 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: rw auto quick snapshot
 #
 # Test which nodes are involved in internal snapshots
 #
index ddf4312284d11c9b6b14e22ff160cb1ec568e00b..9a8a5637603c07646fb73814b30c85fc27ade7cc 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: rw auto quick
 #
 # Test write request with required alignment larger than the cluster size
 #
index 00339c0f7833583732c088f2cf37e90bcb36244c..74352342db58c000b992d04a31cc5b23b246cefb 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: rw backing quick
 #
 # Test large write to a qcow2 image
 #
index e242b28b586682b2fdfb28d3b2e085adab29582e..599b849cc6b283318b6f993f20f24018c52c8543 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: rw auto
 #
 # Test qcow2 images with extended L2 entries
 #
index 92deb7ebb0ea5a7889c49724a629e1040f7eea34..81043ba4d77eb8e1d811f1c1c6d34be7c7760a6f 100644 (file)
@@ -500,7 +500,7 @@ L2 entry #0: 0x8000000000050001 0000000000000001
 
 Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=1048576
 L2 entry #1: 0x8000000000060000 00000001ffffffff
-qcow2: Marking image as corrupt: Invalid cluster entry found  (L2 offset: 0x40000, L2 index: 0x1); further corruption events will be suppressed
+qcow2: Marking image as corrupt: Invalid cluster entry found (L2 offset: 0x40000, L2 index: 0x1); further corruption events will be suppressed
 write failed: Input/output error
 
 ### Corrupted L2 entries - write test (unallocated) ###
@@ -515,14 +515,14 @@ L2 entry #0: 0x8000000000060000 0000000000000001
 
 Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=1048576
 L2 entry #0: 0x0000000000000000 0000000000000001
-qcow2: Marking image as corrupt: Invalid cluster entry found  (L2 offset: 0x40000, L2 index: 0); further corruption events will be suppressed
+qcow2: Marking image as corrupt: Invalid cluster entry found (L2 offset: 0x40000, L2 index: 0); further corruption events will be suppressed
 write failed: Input/output error
 
 # Both 'subcluster is zero' and 'subcluster is allocated' bits set
 
 Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=1048576
 L2 entry #1: 0x0000000000000000 0000000100000001
-qcow2: Marking image as corrupt: Invalid cluster entry found  (L2 offset: 0x40000, L2 index: 0x1); further corruption events will be suppressed
+qcow2: Marking image as corrupt: Invalid cluster entry found (L2 offset: 0x40000, L2 index: 0x1); further corruption events will be suppressed
 write failed: Input/output error
 
 ### Compressed cluster with subcluster bitmap != 0 - write test ###
@@ -583,7 +583,7 @@ read 524288/524288 bytes at offset 0
 read 524288/524288 bytes at offset 524288
 512 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 Offset          Length          Mapped to       File
-0               0x80000        0               TEST_DIR/t.qcow2.base
+0               0x80000         0               TEST_DIR/t.qcow2.base
 # backing file and preallocation=falloc
 Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=524288 backing_file=TEST_DIR/t.IMGFMT.base backing_fmt=raw preallocation=falloc
 Image resized.
@@ -592,7 +592,7 @@ read 524288/524288 bytes at offset 0
 read 524288/524288 bytes at offset 524288
 512 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 Offset          Length          Mapped to       File
-0               0x80000        0               TEST_DIR/t.qcow2.base
+0               0x80000         0               TEST_DIR/t.qcow2.base
 # backing file and preallocation=full
 Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=524288 backing_file=TEST_DIR/t.IMGFMT.base backing_fmt=raw preallocation=full
 Image resized.
@@ -601,7 +601,7 @@ read 524288/524288 bytes at offset 0
 read 524288/524288 bytes at offset 524288
 512 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 Offset          Length          Mapped to       File
-0               0x80000        0               TEST_DIR/t.qcow2.base
+0               0x80000         0               TEST_DIR/t.qcow2.base
 
 ### Image resizing with preallocation and backing files ###
 
index de475bf6f06517c3557d615fd1492fbd35c1e1a5..4bcf410d81e651d0324f88061a758f466c62fbe3 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: rw
 #
 # Test compressed write to a qcow2 image at an offset above 4 GB
 #
index 79b4ab4b05c0d93e3815cb4a1edae7201995095f..6c33305b4d41174fba50121da93a468eec39989d 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: backing quick
 #
 # Test multiple blockdev-snapshot calls with 'backing': null
 #
index 76b1ba6a52932620f77aadb0f3e9cf404c5a91e9..caab008e0737ba5d88e2ae46bc11c178d0445756 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env python3
+# group: rw backing
 #
 # Copyright (C) 2019 Red Hat, Inc.
 #
index d34f87021f8e3a45f2361d083a042670555aa6a1..24833e7eb68a36bc84820f9fcac0fbb28cffa621 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env python3
+# group: rw quick
 #
 # Test NBD client reconnection
 #
@@ -42,7 +43,7 @@ def make_conf_file(event):
 def start_server_NBD(event):
     make_conf_file(event)
 
-    srv = subprocess.Popen(['nbd-fault-injector.py', '--classic-negotiation',
+    srv = subprocess.Popen(['./nbd-fault-injector.py', '--classic-negotiation',
                            nbd_sock, conf_file], stdout=subprocess.PIPE,
                            stderr=subprocess.STDOUT, universal_newlines=True)
     line = srv.stdout.readline()
index 2a6315cf17aa1379c8312a600a7eab8b3309de5f..6afef78bc87d9b8fbc0099ddad45e045352a13f4 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: rw backing quick
 #
 # Test qemu-img --backing-chain --image-opts
 #
index f594bb9ed2f7d38d721ce452c5f6eef3559fa18f..628f3c33cacf1f45587cd61d9902ca77b68c7937 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env python3
+# group: rw migration quick
 #
 # Copyright (C) 2019 Red Hat, Inc.
 #
index 0bf973bca69c40891bff768f115aa5eebf2a9774..956698083f03a7d80f2076cc18c113e36f411a0b 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env python3
+# group: rw quick
 #
 # Test cases for blockdev + IOThread interactions
 #
index 27da2a002397a61a8c86a78c1ec2310279a947b4..3140445989fa7202528284dbe557a572428a9a39 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: rw img quick
 #
 # Test qemu-img file cleanup for LUKS when using a non-UTF8 secret
 #
old mode 100644 (file)
new mode 100755 (executable)
index 383797e..79643e3
@@ -1,4 +1,5 @@
 #!/usr/bin/env python3
+# group: auto quick
 #
 # Test for backup-top filter permission activation failure
 #
index 9f6c29a79c5a597d90c64f719c51e6b3716f64bf..5a82639e7f8d550f1425de74dbc062a6351dab93 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: rw
 #
 # Test ref count checks on encrypted images
 #
index f64e0eccea30f17a55fbb7e2783ec8badd8c8404..120a8375b765fb9e13d109a80355b4a72ba8b6b8 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: rw quick
 #
 # Test qemu-img snapshot -l
 #
index 3bb383fd4be0ad0abc7243ee040c35ec435ca30b..22ce9ff0e475122db9b4274a3809afec871bcec4 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: auto quick
 #
 # Test case for an image using zstd compression
 #
index 6b9dfb4af050fd3188bfd35512245179b921d61a..49ab6a27d5b3c182827f93bcd2a9b4f52a825517 100644 (file)
@@ -10,22 +10,22 @@ incompatible_features     []
 Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=67108864
 incompatible_features     [3]
 
-=== Testing zlib with incompatible bit set  ===
+=== Testing zlib with incompatible bit set ===
 
 Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=67108864
 incompatible_features     [3]
 
-=== Testing zstd with incompatible bit unset  ===
+=== Testing zstd with incompatible bit unset ===
 
 Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=67108864
 incompatible_features     []
 
-=== Testing compression type values  ===
+=== Testing compression type values ===
 
 Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=67108864
-   0
+0
 Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=67108864
-   1
+1
 
 === Testing simple reading and writing with zstd ===
 
index 6c62065aefea3d9255347160185e2aea4af0a085..47aca6592a642d6c29afb26e8c4e523198e2a2e0 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: quick
 #
 # qemu-img measure tests for LUKS images
 #
index fe69bde1ebfea91df4f447882cc3774dbbdf145b..5dd6ec62dbb5194557d019ff55965b29a2caae8f 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: rw quick
 #
 # qcow2 v3-exclusive error path testing
 # (026 tests paths common to v2 and v3)
index 35c38d4f8091a4ec7db4cec99645727caf1d0830..ed80da2685e5ed094985e71c1e3094e9ee15d419 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: rw auto quick
 #
 # Test how 'qemu-io -c discard' behaves on v2 and v3 qcow2 images
 #
index bc70d5e38960441e7f6adbe8b53e6638a31a0577..20efb080a6c0a509bcdc7fbfcd8a1cea76789871 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: rw quick
 #
 # Test qemu-img bitmap handling
 #
index 3ae2772e3bbac50e059ac70cf34311bec93b19f7..73cbb9364acc26fccd671eb5b97aac2220dfb18a 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: rw auto quick
 #
 # Test resizing a qcow2 image with a backing file
 #
index 3363bf07f072620338956a1247bbb88ca3caaa9d..37294487b11e1552f1b24ad0974fd31d6b067194 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: rw
 #
 # Test encryption key management with luks
 # Based on 134
index 87da35db496afa57d88ed4d9dfd055ae3d65a76e..9059eb26b3bc969400018fd30abe2aa28b52f572 100755 (executable)
@@ -1,3 +1,5 @@
+#!/usr/bin/env bash
+# group: rw quick
 #
 # Copyright (C) 2019 Red Hat, Inc.
 #
index 59e674fa85a3bbc72ff923229c0fae807f507ffd..01a6c0b31fdbe4257e3190da6309b41cf148430a 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env python3
+# group: rw
 #
 # Test case QMP's encrypted key management
 #
index fb7dec88aa81ed039d598eb10a4568b76fb608cc..0bc3c6c7d72a809ad3bcf99163a0f8f2553f2155 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env python3
+# group: rw
 #
 # Test case for encryption key management versus image sharing
 #
index 5c5420712b16e1001bec19d22cd754d4452d32c5..85bc1c0c85b68e769f0e4c37169f0953d48d9cb3 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: meta
 #
 # Copyright (C) 2020 Red Hat, Inc.
 #
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
index e129c7f..a712294
@@ -1,4 +1,5 @@
 #!/usr/bin/env python3
+# group: auto quick
 #
 # Test shutdown when bitmap is exported through NBD server
 #
index 5b75121b8496ea09674b13f9802233bfba040fe8..23aca59d9cf1269d421813b206fdb96f50c7dd40 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env python3
+# group: migration
 #
 # Copyright (C) 2020 Red Hat, Inc.
 #
index 3823e956175a9817e094e8f46eb470a05747fb8b..9f943cadbe24413c7f453101a6a9ed8a78aedc58 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: backing quick
 #
 # Test qcow backing file warnings
 #
index a8506bda15921c9304fd0ebcc8572995a6b1892c..5695af4914654f2a434391b6d31c0c51d22f1475 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env python3
+# group: quick
 #
 # Tests converting qcow2 compressed to NBD
 #
index 6c2177448348bb18b36811f3e6332a8e53eceea8..425544c064d247af86925696bf6da34c0666d2b8 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env python3
+# group: rw quick
 #
 # Test for dumping of qcow2 image metadata
 #
@@ -56,7 +57,7 @@ qemu_img_create('-f', iotests.imgfmt, disk, '10M')
 
 add_bitmap(1, 0, 6, False)
 add_bitmap(2, 6, 8, True)
-dump = ['qcow2.py', disk, 'dump-header']
+dump = ['./qcow2.py', disk, 'dump-header']
 subprocess.run(dump)
 # Dump the metadata in JSON format
 dump.append('-j')
index aaf9e1461728034b7e02bfc6ef6e32002454108d..198f2820871e26fb7e7d39f2f716c7abb30aa3cf 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env python3
+# group: rw quick
 #
 # Tests dirty-bitmap backup with unaligned bitmap granularity
 #
index 5a415eb2a47587e016e250cdfd8cf3a047b97886..8b26156923d2fb24661f74181c67fb8bdf5f7b50 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: rw quick
 #
 # Test the handling of errors in write requests with multiple allocations
 #
index de7c25fcfc456739d3262ca1c396f7b8f10e178e..9008974346b099e7ebc44d043ff88955e2d8655d 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env python3
+# group: rw quick export
 #
 # Copyright (C) 2020 Red Hat, Inc.
 #
index b30f4400f6199ab85f02dfbfbfd83f1ee76d493d..f122065d0fec06fdd97168147d9bd8a2315a051d 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: rw
 #
 # Test FUSE exports (in ways that are not captured by the generic
 # tests)
index fb61157c2e1de39c9927d43c631ca9c8a52946b6..b90b279994c91c3c6a4800e5e06efa33832643dd 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: rw auto quick
 #
 # Test qemu-nbd -A
 #
index 41340494b0c8b6c46a4413a731dc9e2c0223d17a..4139745f0eb93f881afe902a06f1f1498fbdffa7 100755 (executable)
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# group: rw quick
 #
 # Test drive-mirror with quorum
 #
index dcdcd0387f20dca7e957930d557c46250a643bde..2e89c0ab1abcde9746eeb384ea19e86e8d17ead2 100644 (file)
@@ -101,9 +101,8 @@ def qemu_tool_pipe_and_status(tool: str, args: Sequence[str],
                             universal_newlines=True)
     output = subp.communicate()[0]
     if subp.returncode < 0:
-        sys.stderr.write('%s received signal %i: %s\n'
-                         % (tool, -subp.returncode,
-                            ' '.join(qemu_img_args + list(args))))
+        cmd = ' '.join(args)
+        sys.stderr.write(f'{tool} received signal {-subp.returncode}: {cmd}\n')
     return (output, subp.returncode)
 
 def qemu_img_pipe_and_status(*args: str) -> Tuple[str, int]:
@@ -189,14 +188,7 @@ def img_info_log(filename, filter_path=None, imgopts=False, extra_args=()):
 def qemu_io(*args):
     '''Run qemu-io and return the stdout data'''
     args = qemu_io_args + list(args)
-    subp = subprocess.Popen(args, stdout=subprocess.PIPE,
-                            stderr=subprocess.STDOUT,
-                            universal_newlines=True)
-    output = subp.communicate()[0]
-    if subp.returncode < 0:
-        sys.stderr.write('qemu-io received signal %i: %s\n'
-                         % (-subp.returncode, ' '.join(args)))
-    return output
+    return qemu_tool_pipe_and_status('qemu-io', args)[0]
 
 def qemu_io_log(*args):
     result = qemu_io(*args)