[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-block] [PATCH 14/14] tests: Add test-image-lock
From: |
Max Reitz |
Subject: |
Re: [Qemu-block] [PATCH 14/14] tests: Add test-image-lock |
Date: |
Fri, 2 Dec 2016 17:30:48 +0100 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.5.0 |
On 31.10.2016 16:38, Fam Zheng wrote:
> Signed-off-by: Fam Zheng <address@hidden>
> ---
> tests/Makefile.include | 2 +
> tests/test-image-lock.c | 179
> ++++++++++++++++++++++++++++++++++++++++++++++++
> 2 files changed, 181 insertions(+)
> create mode 100644 tests/test-image-lock.c
>
> diff --git a/tests/Makefile.include b/tests/Makefile.include
> index cd058ef..65f8500 100644
> --- a/tests/Makefile.include
> +++ b/tests/Makefile.include
> @@ -56,6 +56,7 @@ check-unit-y += tests/test-hbitmap$(EXESUF)
> gcov-files-test-hbitmap-y = blockjob.c
> check-unit-y += tests/test-blockjob$(EXESUF)
> check-unit-y += tests/test-blockjob-txn$(EXESUF)
> +check-unit-y += tests/test-image-lock$(EXESUF)
> check-unit-y += tests/test-x86-cpuid$(EXESUF)
> # all code tested by test-x86-cpuid is inside topology.h
> gcov-files-test-x86-cpuid-y =
> @@ -493,6 +494,7 @@ tests/test-rfifolock$(EXESUF): tests/test-rfifolock.o
> $(test-util-obj-y)
> tests/test-throttle$(EXESUF): tests/test-throttle.o $(test-block-obj-y)
> tests/test-blockjob$(EXESUF): tests/test-blockjob.o $(test-block-obj-y)
> $(test-util-obj-y)
> tests/test-blockjob-txn$(EXESUF): tests/test-blockjob-txn.o
> $(test-block-obj-y) $(test-util-obj-y)
> +tests/test-image-lock$(EXESUF): tests/test-image-lock.o $(test-block-obj-y)
> $(libqos-obj-y)
> tests/test-thread-pool$(EXESUF): tests/test-thread-pool.o $(test-block-obj-y)
> tests/test-iov$(EXESUF): tests/test-iov.o $(test-util-obj-y)
> tests/test-hbitmap$(EXESUF): tests/test-hbitmap.o $(test-util-obj-y)
> diff --git a/tests/test-image-lock.c b/tests/test-image-lock.c
> new file mode 100644
> index 0000000..db5a723
> --- /dev/null
> +++ b/tests/test-image-lock.c
> @@ -0,0 +1,179 @@
> +/*
> + * Image lock tests
> + *
> + * Copyright 2016 Red Hat, Inc.
> + *
> + * Authors:
> + * Fam Zheng <address@hidden>
> + *
> + * This work is licensed under the terms of the GNU LGPL, version 2 or later.
> + * See the COPYING.LIB file in the top-level directory.
> + */
> +
> +#include "qemu/osdep.h"
> +#include "qapi/error.h"
> +#include "qemu/error-report.h"
> +#include "qapi/qmp/qbool.h"
> +#include "sysemu/block-backend.h"
> +
> +#define TEST_IMAGE_SIZE 4096
> +static char test_image[] = "/tmp/qtest.XXXXXX";
> +static int test_image_fd;
> +
> +static BlockBackend *open_test_image(int flags, bool disable_lock)
> +{
> + QDict *opts = qdict_new();
> +
> + qdict_set_default_str(opts, "filename", test_image);
> + qdict_set_default_str(opts, "driver", "file");
> + if (disable_lock) {
> + qdict_put(opts, "disable-lock", qbool_from_bool(true));
> + }
> +
> + return blk_new_open(NULL, NULL, opts, flags | BDRV_O_ALLOW_RDWR, NULL);
> +}
> +
> +#define RW true
> +#define RO false
> +#define SHARE true
> +#define EXCLU false
> +
> +static struct CompatData {
> + bool write_1;
> + bool share_1;
> + bool write_2;
> + bool share_2;
> + bool compatible;
> +} compat_data[] = {
> + /* Write 1, Share 1, Write 2, Share 2, Compatible. */
> + { RO, SHARE, RO, SHARE, true, },
> + { RO, SHARE, RO, EXCLU, true, },
> + { RO, SHARE, RW, SHARE, true, },
> + { RO, SHARE, RW, EXCLU, true, },
> + { RO, EXCLU, RO, SHARE, true, },
> + { RO, EXCLU, RO, EXCLU, true, },
> + { RO, EXCLU, RW, SHARE, false, },
> + { RO, EXCLU, RW, EXCLU, false, },
> +};
Without having looked closer at the test, what about RW/RW compatibility?
Max
signature.asc
Description: OpenPGP digital signature
- Re: [Qemu-block] [PATCH 14/14] tests: Add test-image-lock,
Max Reitz <=