|
@@ -183,6 +183,21 @@ static void test_sync_op_blk_preadv_part(BlockBackend *blk)
|
|
|
g_assert_cmpint(ret, ==, -EIO);
|
|
|
}
|
|
|
|
|
|
+static void test_sync_op_blk_pwritev_part(BlockBackend *blk)
|
|
|
+{
|
|
|
+ uint8_t buf[512] = { 0 };
|
|
|
+ QEMUIOVector qiov = QEMU_IOVEC_INIT_BUF(qiov, buf, sizeof(buf));
|
|
|
+ int ret;
|
|
|
+
|
|
|
+ /* Success */
|
|
|
+ ret = blk_pwritev_part(blk, 0, sizeof(buf), &qiov, 0, 0);
|
|
|
+ g_assert_cmpint(ret, ==, 0);
|
|
|
+
|
|
|
+ /* Early error: Negative offset */
|
|
|
+ ret = blk_pwritev_part(blk, -2, sizeof(buf), &qiov, 0, 0);
|
|
|
+ g_assert_cmpint(ret, ==, -EIO);
|
|
|
+}
|
|
|
+
|
|
|
static void test_sync_op_load_vmstate(BdrvChild *c)
|
|
|
{
|
|
|
uint8_t buf[512];
|
|
@@ -358,6 +373,10 @@ const SyncOpTest sync_op_tests[] = {
|
|
|
.name = "/sync-op/preadv_part",
|
|
|
.fn = NULL,
|
|
|
.blkfn = test_sync_op_blk_preadv_part,
|
|
|
+ }, {
|
|
|
+ .name = "/sync-op/pwritev_part",
|
|
|
+ .fn = NULL,
|
|
|
+ .blkfn = test_sync_op_blk_pwritev_part,
|
|
|
}, {
|
|
|
.name = "/sync-op/load_vmstate",
|
|
|
.fn = test_sync_op_load_vmstate,
|