tests: Set read-zeroes on for null-co driver
This patch is to reduce the number of Valgrind report messages about
using uninitialized memory with the null-co driver. It helps to filter
real memory issues and is the same work done for the iotests with the
commit ID a6862418fe
.
Suggested-by: Kevin Wolf <kwolf@redhat.com>
Signed-off-by: Andrey Shinkevich <andrey.shinkevich@virtuozzo.com>
Message-Id: <1564404360-733987-1-git-send-email-andrey.shinkevich@virtuozzo.com>
Signed-off-by: Thomas Huth <thuth@redhat.com>
This commit is contained in:
parent
375eae1c71
commit
ca1ef1e62e
@ -121,7 +121,8 @@ static void test_drive_del_device_del(void)
|
|||||||
QTestState *qts;
|
QTestState *qts;
|
||||||
|
|
||||||
/* Start with a drive used by a device that unplugs instantaneously */
|
/* Start with a drive used by a device that unplugs instantaneously */
|
||||||
qts = qtest_initf("-drive if=none,id=drive0,file=null-co://,format=raw"
|
qts = qtest_initf("-drive if=none,id=drive0,file=null-co://,"
|
||||||
|
"file.read-zeroes=on,format=raw"
|
||||||
" -device virtio-scsi-%s"
|
" -device virtio-scsi-%s"
|
||||||
" -device scsi-hd,drive=drive0,id=dev0",
|
" -device scsi-hd,drive=drive0,id=dev0",
|
||||||
qvirtio_get_dev_type());
|
qvirtio_get_dev_type());
|
||||||
|
@ -95,7 +95,8 @@ static void virtio_scsi_register_nodes(void)
|
|||||||
};
|
};
|
||||||
|
|
||||||
QOSGraphEdgeOptions opts = {
|
QOSGraphEdgeOptions opts = {
|
||||||
.before_cmd_line = "-drive id=drv0,if=none,file=null-co://,format=raw",
|
.before_cmd_line = "-drive id=drv0,if=none,file=null-co://,"
|
||||||
|
"file.read-zeroes=on,format=raw",
|
||||||
.after_cmd_line = "-device scsi-hd,bus=vs0.0,drive=drv0",
|
.after_cmd_line = "-device scsi-hd,bus=vs0.0,drive=drv0",
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -75,7 +75,8 @@ static void megasas_register_nodes(void)
|
|||||||
{
|
{
|
||||||
QOSGraphEdgeOptions opts = {
|
QOSGraphEdgeOptions opts = {
|
||||||
.extra_device_opts = "addr=04.0,id=scsi0",
|
.extra_device_opts = "addr=04.0,id=scsi0",
|
||||||
.before_cmd_line = "-drive id=drv0,if=none,file=null-co://,format=raw",
|
.before_cmd_line = "-drive id=drv0,if=none,file=null-co://,"
|
||||||
|
"file.read-zeroes=on,format=raw",
|
||||||
.after_cmd_line = "-device scsi-hd,bus=scsi0.0,drive=drv0",
|
.after_cmd_line = "-device scsi-hd,bus=scsi0.0,drive=drv0",
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -70,7 +70,8 @@ static void nvme_register_nodes(void)
|
|||||||
{
|
{
|
||||||
QOSGraphEdgeOptions opts = {
|
QOSGraphEdgeOptions opts = {
|
||||||
.extra_device_opts = "addr=04.0,drive=drv0,serial=foo",
|
.extra_device_opts = "addr=04.0,drive=drv0,serial=foo",
|
||||||
.before_cmd_line = "-drive id=drv0,if=none,file=null-co://,format=raw",
|
.before_cmd_line = "-drive id=drv0,if=none,file=null-co://,"
|
||||||
|
"file.read-zeroes=on,format=raw",
|
||||||
};
|
};
|
||||||
|
|
||||||
add_qpci_address(&opts, &(QPCIAddress) { .devfn = QPCI_DEVFN(4, 0) });
|
add_qpci_address(&opts, &(QPCIAddress) { .devfn = QPCI_DEVFN(4, 0) });
|
||||||
|
@ -187,7 +187,7 @@ static void send_cmd_that_blocks(QTestState *s, const char *id)
|
|||||||
" 'arguments': {"
|
" 'arguments': {"
|
||||||
" 'driver': 'blkdebug', 'node-name': %s,"
|
" 'driver': 'blkdebug', 'node-name': %s,"
|
||||||
" 'config': %s,"
|
" 'config': %s,"
|
||||||
" 'image': { 'driver': 'null-co' } } }",
|
" 'image': { 'driver': 'null-co', 'read-zeroes': true } } }",
|
||||||
id, id, fifo_name);
|
id, id, fifo_name);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -15,6 +15,7 @@
|
|||||||
#include "qemu/main-loop.h"
|
#include "qemu/main-loop.h"
|
||||||
#include "block/blockjob_int.h"
|
#include "block/blockjob_int.h"
|
||||||
#include "sysemu/block-backend.h"
|
#include "sysemu/block-backend.h"
|
||||||
|
#include "qapi/qmp/qdict.h"
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
BlockJob common;
|
BlockJob common;
|
||||||
@ -96,7 +97,9 @@ static BlockJob *test_block_job_start(unsigned int iterations,
|
|||||||
|
|
||||||
data = g_new0(TestBlockJobCBData, 1);
|
data = g_new0(TestBlockJobCBData, 1);
|
||||||
|
|
||||||
bs = bdrv_open("null-co://", NULL, NULL, 0, &error_abort);
|
QDict *opt = qdict_new();
|
||||||
|
qdict_put_str(opt, "file.read-zeroes", "on");
|
||||||
|
bs = bdrv_open("null-co://", NULL, opt, 0, &error_abort);
|
||||||
g_assert_nonnull(bs);
|
g_assert_nonnull(bs);
|
||||||
|
|
||||||
snprintf(job_id, sizeof(job_id), "job%u", counter++);
|
snprintf(job_id, sizeof(job_id), "job%u", counter++);
|
||||||
|
@ -15,6 +15,7 @@
|
|||||||
#include "qemu/main-loop.h"
|
#include "qemu/main-loop.h"
|
||||||
#include "block/blockjob_int.h"
|
#include "block/blockjob_int.h"
|
||||||
#include "sysemu/block-backend.h"
|
#include "sysemu/block-backend.h"
|
||||||
|
#include "qapi/qmp/qdict.h"
|
||||||
|
|
||||||
static const BlockJobDriver test_block_job_driver = {
|
static const BlockJobDriver test_block_job_driver = {
|
||||||
.job_driver = {
|
.job_driver = {
|
||||||
@ -71,7 +72,9 @@ static BlockBackend *create_blk(const char *name)
|
|||||||
BlockBackend *blk = blk_new(qemu_get_aio_context(), 0, BLK_PERM_ALL);
|
BlockBackend *blk = blk_new(qemu_get_aio_context(), 0, BLK_PERM_ALL);
|
||||||
BlockDriverState *bs;
|
BlockDriverState *bs;
|
||||||
|
|
||||||
bs = bdrv_open("null-co://", NULL, NULL, 0, &error_abort);
|
QDict *opt = qdict_new();
|
||||||
|
qdict_put_str(opt, "file.read-zeroes", "on");
|
||||||
|
bs = bdrv_open("null-co://", NULL, opt, 0, &error_abort);
|
||||||
g_assert_nonnull(bs);
|
g_assert_nonnull(bs);
|
||||||
|
|
||||||
blk_insert_bs(blk, bs, &error_abort);
|
blk_insert_bs(blk, bs, &error_abort);
|
||||||
|
@ -57,7 +57,8 @@ int main(int argc, char **argv)
|
|||||||
{
|
{
|
||||||
const char *arch = qtest_get_arch();
|
const char *arch = qtest_get_arch();
|
||||||
const char *cmd = "-device piix3-usb-uhci,id=uhci,addr=1d.0"
|
const char *cmd = "-device piix3-usb-uhci,id=uhci,addr=1d.0"
|
||||||
" -drive id=drive0,if=none,file=null-co://,format=raw"
|
" -drive id=drive0,if=none,file=null-co://,"
|
||||||
|
"file.read-zeroes=on,format=raw"
|
||||||
" -device usb-tablet,bus=uhci.0,port=1";
|
" -device usb-tablet,bus=uhci.0,port=1";
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
|
@ -56,7 +56,8 @@ int main(int argc, char **argv)
|
|||||||
qtest_add_func("/xhci/pci/hotplug/usb-ccid", test_usb_ccid_hotplug);
|
qtest_add_func("/xhci/pci/hotplug/usb-ccid", test_usb_ccid_hotplug);
|
||||||
|
|
||||||
qtest_start("-device nec-usb-xhci,id=xhci"
|
qtest_start("-device nec-usb-xhci,id=xhci"
|
||||||
" -drive id=drive0,if=none,file=null-co://,format=raw");
|
" -drive id=drive0,if=none,file=null-co://,"
|
||||||
|
"file.read-zeroes=on,format=raw");
|
||||||
ret = g_test_run();
|
ret = g_test_run();
|
||||||
qtest_end();
|
qtest_end();
|
||||||
|
|
||||||
|
@ -753,8 +753,10 @@ static void *virtio_blk_test_setup(GString *cmd_line, void *arg)
|
|||||||
char *tmp_path = drive_create();
|
char *tmp_path = drive_create();
|
||||||
|
|
||||||
g_string_append_printf(cmd_line,
|
g_string_append_printf(cmd_line,
|
||||||
" -drive if=none,id=drive0,file=%s,format=raw,auto-read-only=off "
|
" -drive if=none,id=drive0,file=%s,"
|
||||||
"-drive if=none,id=drive1,file=null-co://,format=raw ",
|
"format=raw,auto-read-only=off "
|
||||||
|
"-drive if=none,id=drive1,file=null-co://,"
|
||||||
|
"file.read-zeroes=on,format=raw ",
|
||||||
tmp_path);
|
tmp_path);
|
||||||
|
|
||||||
return arg;
|
return arg;
|
||||||
|
@ -53,7 +53,8 @@ static void virtio_serial_hotplug(void)
|
|||||||
|
|
||||||
static void virtio_blk_nop(void)
|
static void virtio_blk_nop(void)
|
||||||
{
|
{
|
||||||
global_qtest = qtest_initf("-drive if=none,id=drv0,file=null-co://,format=raw "
|
global_qtest = qtest_initf("-drive if=none,id=drv0,file=null-co://,"
|
||||||
|
"file.read-zeroes=on,format=raw "
|
||||||
"-device virtio-blk-ccw,drive=drv0");
|
"-device virtio-blk-ccw,drive=drv0");
|
||||||
qtest_end();
|
qtest_end();
|
||||||
}
|
}
|
||||||
@ -78,8 +79,10 @@ static void virtio_scsi_nop(void)
|
|||||||
|
|
||||||
static void virtio_scsi_hotplug(void)
|
static void virtio_scsi_hotplug(void)
|
||||||
{
|
{
|
||||||
global_qtest = qtest_initf("-drive if=none,id=drv0,file=null-co://,format=raw "
|
global_qtest = qtest_initf("-drive if=none,id=drv0,file=null-co://,"
|
||||||
"-drive if=none,id=drv1,file=null-co://,format=raw "
|
"file.read-zeroes=on,format=raw "
|
||||||
|
"-drive if=none,id=drv1,file=null-co://,"
|
||||||
|
"file.read-zeroes=on,format=raw "
|
||||||
"-device virtio-scsi-ccw "
|
"-device virtio-scsi-ccw "
|
||||||
"-device scsi-hd,drive=drv0");
|
"-device scsi-hd,drive=drv0");
|
||||||
qtest_qmp_device_add("scsi-hd", "scsihd", "{'drive': 'drv1'}");
|
qtest_qmp_device_add("scsi-hd", "scsihd", "{'drive': 'drv1'}");
|
||||||
|
@ -239,7 +239,8 @@ fail:
|
|||||||
static void *virtio_scsi_hotplug_setup(GString *cmd_line, void *arg)
|
static void *virtio_scsi_hotplug_setup(GString *cmd_line, void *arg)
|
||||||
{
|
{
|
||||||
g_string_append(cmd_line,
|
g_string_append(cmd_line,
|
||||||
" -drive id=drv1,if=none,file=null-co://,format=raw");
|
" -drive id=drv1,if=none,file=null-co://,"
|
||||||
|
"file.read-zeroes=on,format=raw");
|
||||||
return arg;
|
return arg;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -247,6 +248,7 @@ static void *virtio_scsi_setup(GString *cmd_line, void *arg)
|
|||||||
{
|
{
|
||||||
g_string_append(cmd_line,
|
g_string_append(cmd_line,
|
||||||
" -drive file=blkdebug::null-co://,"
|
" -drive file=blkdebug::null-co://,"
|
||||||
|
"file.image.read-zeroes=on,"
|
||||||
"if=none,id=dr1,format=raw,file.align=4k "
|
"if=none,id=dr1,format=raw,file.align=4k "
|
||||||
"-device scsi-hd,drive=dr1,lun=0,scsi-id=1");
|
"-device scsi-hd,drive=dr1,lun=0,scsi-id=1");
|
||||||
return arg;
|
return arg;
|
||||||
@ -256,7 +258,7 @@ static void *virtio_scsi_setup_iothread(GString *cmd_line, void *arg)
|
|||||||
{
|
{
|
||||||
g_string_append(cmd_line,
|
g_string_append(cmd_line,
|
||||||
" -object iothread,id=thread0"
|
" -object iothread,id=thread0"
|
||||||
" -blockdev driver=null-co,node-name=null0"
|
" -blockdev driver=null-co,read-zeroes=on,node-name=null0"
|
||||||
" -device scsi-hd,drive=null0");
|
" -device scsi-hd,drive=null0");
|
||||||
return arg;
|
return arg;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user