- qtest patches to get rid of the global_qtest variable in more tests

- some iotests patches that have multiple reviews and thus are ready to go
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v2.0.22 (GNU/Linux)
 
 iQIcBAABAgAGBQJc49WfAAoJEC7Z13T+cC21EEoP/0YlSPcn2vid/7NZ+DsZzvDw
 0uFCKqYrpzgftbegtv9fg7+MR8r4fxbaH9FQ9mbe8D3FWlYvglLNABTKlY/KmDyl
 ZLBKmKo+1hSqsqTUd5/QyEMKvuwxEhiL5sT/ktTm34vH6N+PRDjtXrPPFsJWrtVs
 McZOnetXeAV4+qtfTc3UifK5QRTBR0JgP5JHenkagUw2m2C73IhfcoiKctTXJgGs
 BfLiBI5jgdoC4Irkh94GVGCPwabL9A+HUoV48ooayErCTGUopgIKuNG8KVIDAdrf
 yW65M+91J6DUGo27r7OWcQKTOMcch43Piy2VO6C6WIBc/dHm3gvraPCIp9jD3izU
 SuSA1BdNPwVmTIWxn2jB+RO0fcZgWN8UHqGfQALQ+bZIryKf4yRe2rR1O0qZ0yz6
 dukxRUbJiREQs8X0KBUpYfJYfXNwOW9orMkm2Epgolh/SvgNHbsXhyZT9wbi09wp
 RwQemJ+764GVRrqFJIfCEwGI1Z99I9lIIGzhqRFULOZRechGbnbED6FwcPYyqyaZ
 WAHPx/SfHUAaUrVcQ3OQV1Bo7kfjiSRotcR5srOwmIAVyW3UynlhJNzxGSGBi0ID
 kWLHuMuW0R0LTAmHL6h+HJ+LZP39Os0V2zSYrfT5y2kGxLPuB8AXRz82ALymbu9i
 Riw51nYSlaBW2OpuJjxk
 =P3eP
 -----END PGP SIGNATURE-----

Merge remote-tracking branch 'remotes/huth-gitlab/tags/pull-request-2019-05-21' into staging

- qtest patches to get rid of the global_qtest variable in more tests
- some iotests patches that have multiple reviews and thus are ready to go

# gpg: Signature made Tue 21 May 2019 11:40:31 BST
# gpg:                using RSA key 2ED9D774FE702DB5
# gpg: Good signature from "Thomas Huth <th.huth@gmx.de>" [full]
# gpg:                 aka "Thomas Huth <thuth@redhat.com>" [full]
# gpg:                 aka "Thomas Huth <huth@tuxfamily.org>" [full]
# gpg:                 aka "Thomas Huth <th.huth@posteo.de>" [unknown]
# Primary key fingerprint: 27B8 8847 EEE0 2501 18F3  EAB9 2ED9 D774 FE70 2DB5

* remotes/huth-gitlab/tags/pull-request-2019-05-21:
  tests/qemu-iotests: Remove the "_supported_os Linux" line from many tests
  cirrus / travis: Add gnu-sed and bash for macOS and FreeBSD
  tests/qemu-iotests: Do not hard-code the path to bash
  tests/qemu-iotests/check: Pick a default machine if necessary
  tests/qemu-iotests/005: Add a sanity check for large sparse file support
  tests/hd-geo-test: Use qtest_init() instead of qtest_start()
  tests/device-introspect: Use qtest_init() instead of qtest_start()
  tests/qom-test: Use qtest_init() instead of qtest_start()
  tests/numa-test: Use qtest_init() instead of qtest_start()
  tests/q35-test: Make test independent of global_qtest
  tests/libqos: Get rid of global_qtest dependency in qvring_init()
  tests/libqtest: Fix description of qtest_vinitf() and qtest_initf()
  tests/libqtest: Remove unused global_qtest-related wrapper functions

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
master
Peter Maydell 2019-05-21 14:24:26 +01:00
commit 62516a0a18
118 changed files with 195 additions and 371 deletions

View File

@ -7,7 +7,7 @@ freebsd_12_task:
cpu: 8
memory: 8G
install_script: pkg install -y
bison curl cyrus-sasl git glib gmake gnutls
bash bison curl cyrus-sasl git glib gmake gnutls gsed
nettle perl5 pixman pkgconf png usbredir
script:
- mkdir build
@ -20,7 +20,7 @@ macos_task:
osx_instance:
image: mojave-base
install_script:
- brew install pkg-config python glib pixman make sdl2
- brew install pkg-config python gnu-sed glib pixman make sdl2
script:
- ./configure --python=/usr/local/bin/python3 || { cat config.log; exit 1; }
- gmake -j$(sysctl -n hw.ncpu)

View File

@ -42,6 +42,7 @@ addons:
packages:
- glib
- pixman
- gnu-sed
# The channel name "irc.oftc.net#qemu" is encrypted against qemu/qemu

View File

@ -26,7 +26,8 @@
const char common_args[] = "-nodefaults -machine none";
static QList *qom_list_types(const char *implements, bool abstract)
static QList *qom_list_types(QTestState * qts, const char *implements,
bool abstract)
{
QDict *resp;
QList *ret;
@ -36,8 +37,8 @@ static QList *qom_list_types(const char *implements, bool abstract)
if (implements) {
qdict_put_str(args, "implements", implements);
}
resp = qmp("{'execute': 'qom-list-types',"
" 'arguments': %p }", args);
resp = qtest_qmp(qts, "{'execute': 'qom-list-types', 'arguments': %p }",
args);
g_assert(qdict_haskey(resp, "return"));
ret = qdict_get_qlist(resp, "return");
qobject_ref(ret);
@ -95,12 +96,12 @@ static QDict *type_list_find(QList *types, const char *name)
return NULL;
}
static QList *device_type_list(bool abstract)
static QList *device_type_list(QTestState *qts, bool abstract)
{
return qom_list_types("device", abstract);
return qom_list_types(qts, "device", abstract);
}
static void test_one_device(const char *type)
static void test_one_device(QTestState *qts, const char *type)
{
QDict *resp;
char *help;
@ -109,15 +110,15 @@ static void test_one_device(const char *type)
g_test_message("Testing device '%s'", type);
qom_tree_start = hmp("info qom-tree");
qtree_start = hmp("info qtree");
qom_tree_start = qtest_hmp(qts, "info qom-tree");
qtree_start = qtest_hmp(qts, "info qtree");
resp = qmp("{'execute': 'device-list-properties',"
" 'arguments': {'typename': %s}}",
resp = qtest_qmp(qts, "{'execute': 'device-list-properties',"
" 'arguments': {'typename': %s}}",
type);
qobject_unref(resp);
help = hmp("device_add \"%s,help\"", type);
help = qtest_hmp(qts, "device_add \"%s,help\"", type);
g_free(help);
/*
@ -125,12 +126,12 @@ static void test_one_device(const char *type)
* "info qom-tree" or "info qtree" have a good chance at crashing then.
* Also make sure that the tree did not change.
*/
qom_tree_end = hmp("info qom-tree");
qom_tree_end = qtest_hmp(qts, "info qom-tree");
g_assert_cmpstr(qom_tree_start, ==, qom_tree_end);
g_free(qom_tree_start);
g_free(qom_tree_end);
qtree_end = hmp("info qtree");
qtree_end = qtest_hmp(qts, "info qtree");
g_assert_cmpstr(qtree_start, ==, qtree_end);
g_free(qtree_start);
g_free(qtree_end);
@ -140,29 +141,30 @@ static void test_device_intro_list(void)
{
QList *types;
char *help;
QTestState *qts;
qtest_start(common_args);
qts = qtest_init(common_args);
types = device_type_list(true);
types = device_type_list(qts, true);
qobject_unref(types);
help = hmp("device_add help");
help = qtest_hmp(qts, "device_add help");
g_free(help);
qtest_end();
qtest_quit(qts);
}
/*
* Ensure all entries returned by qom-list-types implements=<parent>
* have <parent> as a parent.
*/
static void test_qom_list_parents(const char *parent)
static void test_qom_list_parents(QTestState *qts, const char *parent)
{
QList *types;
QListEntry *e;
QDict *index;
types = qom_list_types(parent, true);
types = qom_list_types(qts, parent, true);
index = qom_type_index(types);
QLIST_FOREACH_ENTRY(types, e) {
@ -181,11 +183,12 @@ static void test_qom_list_fields(void)
QList *all_types;
QList *non_abstract;
QListEntry *e;
QTestState *qts;
qtest_start(common_args);
qts = qtest_init(common_args);
all_types = qom_list_types(NULL, true);
non_abstract = qom_list_types(NULL, false);
all_types = qom_list_types(qts, NULL, true);
non_abstract = qom_list_types(qts, NULL, false);
QLIST_FOREACH_ENTRY(all_types, e) {
QDict *d = qobject_to(QDict, qlist_entry_obj(e));
@ -198,27 +201,29 @@ static void test_qom_list_fields(void)
g_assert(abstract == expected_abstract);
}
test_qom_list_parents("object");
test_qom_list_parents("device");
test_qom_list_parents("sys-bus-device");
test_qom_list_parents(qts, "object");
test_qom_list_parents(qts, "device");
test_qom_list_parents(qts, "sys-bus-device");
qobject_unref(all_types);
qobject_unref(non_abstract);
qtest_end();
qtest_quit(qts);
}
static void test_device_intro_none(void)
{
qtest_start(common_args);
test_one_device("nonexistent");
qtest_end();
QTestState *qts = qtest_init(common_args);
test_one_device(qts, "nonexistent");
qtest_quit(qts);
}
static void test_device_intro_abstract(void)
{
qtest_start(common_args);
test_one_device("device");
qtest_end();
QTestState *qts = qtest_init(common_args);
test_one_device(qts, "device");
qtest_quit(qts);
}
static void test_device_intro_concrete(const void *args)
@ -226,19 +231,20 @@ static void test_device_intro_concrete(const void *args)
QList *types;
QListEntry *entry;
const char *type;
QTestState *qts;
qtest_start(args);
types = device_type_list(false);
qts = qtest_init(args);
types = device_type_list(qts, false);
QLIST_FOREACH_ENTRY(types, entry) {
type = qdict_get_try_str(qobject_to(QDict, qlist_entry_obj(entry)),
"name");
g_assert(type);
test_one_device(type);
test_one_device(qts, type);
}
qobject_unref(types);
qtest_end();
qtest_quit(qts);
g_free((void *)args);
}
@ -247,10 +253,11 @@ static void test_abstract_interfaces(void)
QList *all_types;
QListEntry *e;
QDict *index;
QTestState *qts;
qtest_start(common_args);
qts = qtest_init(common_args);
all_types = qom_list_types("interface", true);
all_types = qom_list_types(qts, "interface", true);
index = qom_type_index(all_types);
QLIST_FOREACH_ENTRY(all_types, e) {
@ -273,7 +280,7 @@ static void test_abstract_interfaces(void)
qobject_unref(all_types);
qobject_unref(index);
qtest_end();
qtest_quit(qts);
}
static void add_machine_test_case(const char *mname)

View File

@ -77,33 +77,35 @@ static bool is_hd(const CHST *expected_chst)
return expected_chst && expected_chst->cyls;
}
static void test_cmos_byte(int reg, int expected)
static void test_cmos_byte(QTestState *qts, int reg, int expected)
{
enum { cmos_base = 0x70 };
int actual;
outb(cmos_base + 0, reg);
actual = inb(cmos_base + 1);
qtest_outb(qts, cmos_base + 0, reg);
actual = qtest_inb(qts, cmos_base + 1);
g_assert(actual == expected);
}
static void test_cmos_bytes(int reg0, int n, uint8_t expected[])
static void test_cmos_bytes(QTestState *qts, int reg0, int n,
uint8_t expected[])
{
int i;
for (i = 0; i < 9; i++) {
test_cmos_byte(reg0 + i, expected[i]);
test_cmos_byte(qts, reg0 + i, expected[i]);
}
}
static void test_cmos_disk_data(void)
static void test_cmos_disk_data(QTestState *qts)
{
test_cmos_byte(0x12,
test_cmos_byte(qts, 0x12,
(is_hd(cur_ide[0]) ? 0xf0 : 0) |
(is_hd(cur_ide[1]) ? 0x0f : 0));
}
static void test_cmos_drive_cyl(int reg0, const CHST *expected_chst)
static void test_cmos_drive_cyl(QTestState *qts, int reg0,
const CHST *expected_chst)
{
if (is_hd(expected_chst)) {
int c = expected_chst->cyls;
@ -113,29 +115,29 @@ static void test_cmos_drive_cyl(int reg0, const CHST *expected_chst)
c & 0xff, c >> 8, h, 0xff, 0xff, 0xc0 | ((h > 8) << 3),
c & 0xff, c >> 8, s
};
test_cmos_bytes(reg0, 9, expected_bytes);
test_cmos_bytes(qts, reg0, 9, expected_bytes);
} else {
int i;
for (i = 0; i < 9; i++) {
test_cmos_byte(reg0 + i, 0);
test_cmos_byte(qts, reg0 + i, 0);
}
}
}
static void test_cmos_drive1(void)
static void test_cmos_drive1(QTestState *qts)
{
test_cmos_byte(0x19, is_hd(cur_ide[0]) ? 47 : 0);
test_cmos_drive_cyl(0x1b, cur_ide[0]);
test_cmos_byte(qts, 0x19, is_hd(cur_ide[0]) ? 47 : 0);
test_cmos_drive_cyl(qts, 0x1b, cur_ide[0]);
}
static void test_cmos_drive2(void)
static void test_cmos_drive2(QTestState *qts)
{
test_cmos_byte(0x1a, is_hd(cur_ide[1]) ? 47 : 0);
test_cmos_drive_cyl(0x24, cur_ide[1]);
test_cmos_byte(qts, 0x1a, is_hd(cur_ide[1]) ? 47 : 0);
test_cmos_drive_cyl(qts, 0x24, cur_ide[1]);
}
static void test_cmos_disktransflag(void)
static void test_cmos_disktransflag(QTestState *qts)
{
int val, i;
@ -145,15 +147,15 @@ static void test_cmos_disktransflag(void)
val |= cur_ide[i]->trans << (2 * i);
}
}
test_cmos_byte(0x39, val);
test_cmos_byte(qts, 0x39, val);
}
static void test_cmos(void)
static void test_cmos(QTestState *qts)
{
test_cmos_disk_data();
test_cmos_drive1();
test_cmos_drive2();
test_cmos_disktransflag();
test_cmos_disk_data(qts);
test_cmos_drive1(qts);
test_cmos_drive2(qts);
test_cmos_disktransflag(qts);
}
static int append_arg(int argc, char *argv[], int argv_sz, char *arg)
@ -238,14 +240,15 @@ static void test_ide_none(void)
{
char **argv = g_new0(char *, ARGV_SIZE);
char *args;
QTestState *qts;
setup_common(argv, ARGV_SIZE);
args = g_strjoinv(" ", argv);
qtest_start(args);
qts = qtest_init(args);
g_strfreev(argv);
g_free(args);
test_cmos();
qtest_end();
test_cmos(qts);
qtest_quit(qts);
}
static void test_ide_mbr(bool use_device, MBRcontents mbr)
@ -255,6 +258,7 @@ static void test_ide_mbr(bool use_device, MBRcontents mbr)
int argc;
Backend i;
const char *dev;
QTestState *qts;
argc = setup_common(argv, ARGV_SIZE);
for (i = 0; i < backend_last; i++) {
@ -263,11 +267,11 @@ static void test_ide_mbr(bool use_device, MBRcontents mbr)
argc = setup_ide(argc, argv, ARGV_SIZE, i, dev, i, mbr);
}
args = g_strjoinv(" ", argv);
qtest_start(args);
qts = qtest_init(args);
g_strfreev(argv);
g_free(args);
test_cmos();
qtest_end();
test_cmos(qts);
qtest_quit(qts);
}
/*
@ -325,6 +329,7 @@ static void test_ide_drive_user(const char *dev, bool trans)
int argc;
int secs = img_secs[backend_small];
const CHST expected_chst = { secs / (4 * 32) , 4, 32, trans };
QTestState *qts;
argc = setup_common(argv, ARGV_SIZE);
opts = g_strdup_printf("%s,%scyls=%d,heads=%d,secs=%d",
@ -335,11 +340,11 @@ static void test_ide_drive_user(const char *dev, bool trans)
argc = setup_ide(argc, argv, ARGV_SIZE, 0, opts, backend_small, mbr_chs);
g_free(opts);
args = g_strjoinv(" ", argv);
qtest_start(args);
qts = qtest_init(args);
g_strfreev(argv);
g_free(args);
test_cmos();
qtest_end();
test_cmos(qts);
qtest_quit(qts);
}
/*
@ -367,6 +372,7 @@ static void test_ide_drive_cd_0(void)
char *args;
int argc, ide_idx;
Backend i;
QTestState *qts;
argc = setup_common(argv, ARGV_SIZE);
for (i = 0; i <= backend_empty; i++) {
@ -375,11 +381,11 @@ static void test_ide_drive_cd_0(void)
argc = setup_ide(argc, argv, ARGV_SIZE, ide_idx, NULL, i, mbr_blank);
}
args = g_strjoinv(" ", argv);
qtest_start(args);
qts = qtest_init(args);
g_strfreev(argv);
g_free(args);
test_cmos();
qtest_end();
test_cmos(qts);
qtest_quit(qts);
}
int main(int argc, char **argv)

View File

@ -148,7 +148,7 @@ static QVirtQueue *qvirtio_mmio_virtqueue_setup(QVirtioDevice *d,
g_assert_cmpint(vq->size & (vq->size - 1), ==, 0);
addr = guest_alloc(alloc, qvring_size(vq->size, dev->page_size));
qvring_init(alloc, vq, addr);
qvring_init(dev->qts, alloc, vq, addr);
qvirtio_mmio_set_queue_address(d, vq->desc / dev->page_size);
return vq;

View File

@ -199,6 +199,7 @@ static QVirtQueue *qvirtio_pci_virtqueue_setup(QVirtioDevice *d,
uint32_t feat;
uint64_t addr;
QVirtQueuePCI *vqpci;
QVirtioPCIDevice *qvpcidev = container_of(d, QVirtioPCIDevice, vdev);
vqpci = g_malloc0(sizeof(*vqpci));
feat = qvirtio_pci_get_guest_features(d);
@ -224,7 +225,7 @@ static QVirtQueue *qvirtio_pci_virtqueue_setup(QVirtioDevice *d,
addr = guest_alloc(alloc, qvring_size(vqpci->vq.size,
VIRTIO_PCI_VRING_ALIGN));
qvring_init(alloc, &vqpci->vq, addr);
qvring_init(qvpcidev->pdev->bus->qts, alloc, &vqpci->vq, addr);
qvirtio_pci_set_queue_address(d, vqpci->vq.desc / VIRTIO_PCI_VRING_ALIGN);
return &vqpci->vq;

View File

@ -162,7 +162,8 @@ void qvirtio_wait_config_isr(QVirtioDevice *d, gint64 timeout_us)
}
}
void qvring_init(const QGuestAllocator *alloc, QVirtQueue *vq, uint64_t addr)
void qvring_init(QTestState *qts, const QGuestAllocator *alloc, QVirtQueue *vq,
uint64_t addr)
{
int i;
@ -173,22 +174,23 @@ void qvring_init(const QGuestAllocator *alloc, QVirtQueue *vq, uint64_t addr)
for (i = 0; i < vq->size - 1; i++) {
/* vq->desc[i].addr */
writeq(vq->desc + (16 * i), 0);
qtest_writeq(qts, vq->desc + (16 * i), 0);
/* vq->desc[i].next */
writew(vq->desc + (16 * i) + 14, i + 1);
qtest_writew(qts, vq->desc + (16 * i) + 14, i + 1);
}
/* vq->avail->flags */
writew(vq->avail, 0);
qtest_writew(qts, vq->avail, 0);
/* vq->avail->idx */
writew(vq->avail + 2, 0);
qtest_writew(qts, vq->avail + 2, 0);
/* vq->avail->used_event */
writew(vq->avail + 4 + (2 * vq->size), 0);
qtest_writew(qts, vq->avail + 4 + (2 * vq->size), 0);
/* vq->used->flags */
writew(vq->used, 0);
qtest_writew(qts, vq->used, 0);
/* vq->used->avail_event */
writew(vq->used + 2 + sizeof(struct vring_used_elem) * vq->size, 0);
qtest_writew(qts, vq->used + 2 + sizeof(struct vring_used_elem) * vq->size,
0);
}
QVRingIndirectDesc *qvring_indirect_desc_setup(QVirtioDevice *d,

View File

@ -129,7 +129,8 @@ QVirtQueue *qvirtqueue_setup(QVirtioDevice *d,
void qvirtqueue_cleanup(const QVirtioBus *bus, QVirtQueue *vq,
QGuestAllocator *alloc);
void qvring_init(const QGuestAllocator *alloc, QVirtQueue *vq, uint64_t addr);
void qvring_init(QTestState *qts, const QGuestAllocator *alloc, QVirtQueue *vq,
uint64_t addr);
QVRingIndirectDesc *qvring_indirect_desc_setup(QVirtioDevice *d,
QGuestAllocator *alloc, uint16_t elem);
void qvring_indirect_desc_add(QVRingIndirectDesc *indirect, uint64_t data,

View File

@ -1038,15 +1038,6 @@ QDict *qmp(const char *fmt, ...)
return response;
}
void qmp_send(const char *fmt, ...)
{
va_list ap;
va_start(ap, fmt);
qtest_qmp_vsend(global_qtest, fmt, ap);
va_end(ap);
}
char *hmp(const char *fmt, ...)
{
va_list ap;
@ -1232,7 +1223,7 @@ void qtest_qmp_device_del(const char *id)
&got_event);
qobject_unref(rsp);
if (!got_event) {
rsp = qmp_receive();
rsp = qtest_qmp_receive(global_qtest);
g_assert_cmpstr(qdict_get_try_str(rsp, "event"),
==, "DEVICE_DELETED");
qobject_unref(rsp);

View File

@ -29,7 +29,7 @@ extern QTestState *global_qtest;
* @fmt...: Format for creating other arguments to pass to QEMU, formatted
* like sprintf().
*
* Convenience wrapper around qtest_start().
* Convenience wrapper around qtest_init().
*
* Returns: #QTestState instance.
*/
@ -41,7 +41,7 @@ QTestState *qtest_initf(const char *fmt, ...) GCC_FMT_ATTR(1, 2);
* like vsprintf().
* @ap: Format arguments.
*
* Convenience wrapper around qtest_start().
* Convenience wrapper around qtest_init().
*
* Returns: #QTestState instance.
*/
@ -618,26 +618,6 @@ static inline void qtest_end(void)
*/
QDict *qmp(const char *fmt, ...) GCC_FMT_ATTR(1, 2);
/**
* qmp_send:
* @fmt...: QMP message to send to qemu, formatted like
* qobject_from_jsonf_nofail(). See parse_escape() for what's
* supported after '%'.
*
* Sends a QMP message to QEMU and leaves the response in the stream.
*/
void qmp_send(const char *fmt, ...) GCC_FMT_ATTR(1, 2);
/**
* qmp_receive:
*
* Reads a QMP message from QEMU and returns the response.
*/
static inline QDict *qmp_receive(void)
{
return qtest_qmp_receive(global_qtest);
}
/**
* qmp_eventwait:
* @s: #event event to wait for.
@ -649,18 +629,6 @@ static inline void qmp_eventwait(const char *event)
return qtest_qmp_eventwait(global_qtest, event);
}
/**
* qmp_eventwait_ref:
* @s: #event event to wait for.
*
* Continuously polls for QMP responses until it receives the desired event.
* Returns a copy of the event for further investigation.
*/
static inline QDict *qmp_eventwait_ref(const char *event)
{
return qtest_qmp_eventwait_ref(global_qtest, event);
}
/**
* hmp:
* @fmt...: HMP command to send to QEMU, formats arguments like sprintf().
@ -682,30 +650,6 @@ static inline bool get_irq(int num)
return qtest_get_irq(global_qtest, num);
}
/**
* irq_intercept_in:
* @string: QOM path of a device.
*
* Associate qtest irqs with the GPIO-in pins of the device
* whose path is specified by @string.
*/
static inline void irq_intercept_in(const char *string)
{
qtest_irq_intercept_in(global_qtest, string);
}
/**
* qtest_irq_intercept_out:
* @string: QOM path of a device.
*
* Associate qtest irqs with the GPIO-out pins of the device
* whose path is specified by @string.
*/
static inline void irq_intercept_out(const char *string)
{
qtest_irq_intercept_out(global_qtest, string);
}
/**
* outb:
* @addr: I/O port to write to.
@ -894,19 +838,6 @@ static inline void memread(uint64_t addr, void *data, size_t size)
qtest_memread(global_qtest, addr, data, size);
}
/**
* bufread:
* @addr: Guest address to read from.
* @data: Pointer to where memory contents will be stored.
* @size: Number of bytes to read.
*
* Read guest memory into a buffer, receive using a base64 encoding.
*/
static inline void bufread(uint64_t addr, void *data, size_t size)
{
qtest_bufread(global_qtest, addr, data, size);
}
/**
* memwrite:
* @addr: Guest address to write to.
@ -920,32 +851,6 @@ static inline void memwrite(uint64_t addr, const void *data, size_t size)
qtest_memwrite(global_qtest, addr, data, size);
}
/**
* bufwrite:
* @addr: Guest address to write to.
* @data: Pointer to the bytes that will be written to guest memory.
* @size: Number of bytes to write.
*
* Write a buffer to guest memory, transmit using a base64 encoding.
*/
static inline void bufwrite(uint64_t addr, const void *data, size_t size)
{
qtest_bufwrite(global_qtest, addr, data, size);
}
/**
* qmemset:
* @addr: Guest address to write to.
* @patt: Byte pattern to fill the guest memory region with.
* @size: Number of bytes to write.
*
* Write a pattern to guest memory.
*/
static inline void qmemset(uint64_t addr, uint8_t patt, size_t size)
{
qtest_memset(global_qtest, addr, patt, size);
}
/**
* clock_step_next:
*
@ -971,19 +876,6 @@ static inline int64_t clock_step(int64_t step)
return qtest_clock_step(global_qtest, step);
}
/**
* clock_set:
* @val: Nanoseconds value to advance the clock to.
*
* Advance the QEMU_CLOCK_VIRTUAL to @val nanoseconds since the VM was launched.
*
* Returns: The current value of the QEMU_CLOCK_VIRTUAL in nanoseconds.
*/
static inline int64_t clock_set(int64_t val)
{
return qtest_clock_set(global_qtest, val);
}
QDict *qmp_fd_receive(int fd);
void qmp_fd_vsend(int fd, const char *fmt, va_list ap) GCC_FMT_ATTR(2, 0);
void qmp_fd_send(int fd, const char *fmt, ...) GCC_FMT_ATTR(2, 3);

View File

@ -23,18 +23,19 @@ static void test_mon_explicit(const void *data)
{
char *s;
char *cli;
QTestState *qts;
cli = make_cli(data, "-smp 8 "
"-numa node,nodeid=0,cpus=0-3 "
"-numa node,nodeid=1,cpus=4-7 ");
qtest_start(cli);
qts = qtest_init(cli);
s = hmp("info numa");
s = qtest_hmp(qts, "info numa");
g_assert(strstr(s, "node 0 cpus: 0 1 2 3"));
g_assert(strstr(s, "node 1 cpus: 4 5 6 7"));
g_free(s);
qtest_end();
qtest_quit(qts);
g_free(cli);
}
@ -42,16 +43,17 @@ static void test_mon_default(const void *data)
{
char *s;
char *cli;
QTestState *qts;
cli = make_cli(data, "-smp 8 -numa node -numa node");
qtest_start(cli);
qts = qtest_init(cli);
s = hmp("info numa");
s = qtest_hmp(qts, "info numa");
g_assert(strstr(s, "node 0 cpus: 0 2 4 6"));
g_assert(strstr(s, "node 1 cpus: 1 3 5 7"));
g_free(s);
qtest_end();
qtest_quit(qts);
g_free(cli);
}
@ -59,24 +61,25 @@ static void test_mon_partial(const void *data)
{
char *s;
char *cli;
QTestState *qts;
cli = make_cli(data, "-smp 8 "
"-numa node,nodeid=0,cpus=0-1 "
"-numa node,nodeid=1,cpus=4-5 ");
qtest_start(cli);
qts = qtest_init(cli);
s = hmp("info numa");
s = qtest_hmp(qts, "info numa");
g_assert(strstr(s, "node 0 cpus: 0 1 2 3 6 7"));
g_assert(strstr(s, "node 1 cpus: 4 5"));
g_free(s);
qtest_end();
qtest_quit(qts);
g_free(cli);
}
static QList *get_cpus(QDict **resp)
static QList *get_cpus(QTestState *qts, QDict **resp)
{
*resp = qmp("{ 'execute': 'query-cpus' }");
*resp = qtest_qmp(qts, "{ 'execute': 'query-cpus' }");
g_assert(*resp);
g_assert(qdict_haskey(*resp, "return"));
return qdict_get_qlist(*resp, "return");
@ -88,10 +91,11 @@ static void test_query_cpus(const void *data)
QDict *resp;
QList *cpus;
QObject *e;
QTestState *qts;
cli = make_cli(data, "-smp 8 -numa node,cpus=0-3 -numa node,cpus=4-7");
qtest_start(cli);
cpus = get_cpus(&resp);
qts = qtest_init(cli);
cpus = get_cpus(qts, &resp);
g_assert(cpus);
while ((e = qlist_pop(cpus))) {
@ -115,7 +119,7 @@ static void test_query_cpus(const void *data)
}
qobject_unref(resp);
qtest_end();
qtest_quit(qts);
g_free(cli);
}
@ -125,6 +129,7 @@ static void pc_numa_cpu(const void *data)
QDict *resp;
QList *cpus;
QObject *e;
QTestState *qts;
cli = make_cli(data, "-cpu pentium -smp 8,sockets=2,cores=2,threads=2 "
"-numa node,nodeid=0 -numa node,nodeid=1 "
@ -132,8 +137,8 @@ static void pc_numa_cpu(const void *data)
"-numa cpu,node-id=0,socket-id=1,core-id=0 "
"-numa cpu,node-id=0,socket-id=1,core-id=1,thread-id=0 "
"-numa cpu,node-id=1,socket-id=1,core-id=1,thread-id=1");
qtest_start(cli);
cpus = get_cpus(&resp);
qts = qtest_init(cli);
cpus = get_cpus(qts, &resp);
g_assert(cpus);
while ((e = qlist_pop(cpus))) {
@ -168,7 +173,7 @@ static void pc_numa_cpu(const void *data)
}
qobject_unref(resp);
qtest_end();
qtest_quit(qts);
g_free(cli);
}
@ -178,6 +183,7 @@ static void spapr_numa_cpu(const void *data)
QDict *resp;
QList *cpus;
QObject *e;
QTestState *qts;
cli = make_cli(data, "-smp 4,cores=4 "
"-numa node,nodeid=0 -numa node,nodeid=1 "
@ -185,8 +191,8 @@ static void spapr_numa_cpu(const void *data)
"-numa cpu,node-id=0,core-id=1 "
"-numa cpu,node-id=0,core-id=2 "
"-numa cpu,node-id=1,core-id=3");
qtest_start(cli);
cpus = get_cpus(&resp);
qts = qtest_init(cli);
cpus = get_cpus(qts, &resp);
g_assert(cpus);
while ((e = qlist_pop(cpus))) {
@ -213,7 +219,7 @@ static void spapr_numa_cpu(const void *data)
}
qobject_unref(resp);
qtest_end();
qtest_quit(qts);
g_free(cli);
}
@ -223,13 +229,14 @@ static void aarch64_numa_cpu(const void *data)
QDict *resp;
QList *cpus;
QObject *e;
QTestState *qts;
cli = make_cli(data, "-smp 2 "
"-numa node,nodeid=0 -numa node,nodeid=1 "
"-numa cpu,node-id=1,thread-id=0 "
"-numa cpu,node-id=0,thread-id=1");
qtest_start(cli);
cpus = get_cpus(&resp);
qts = qtest_init(cli);
cpus = get_cpus(qts, &resp);
g_assert(cpus);
while ((e = qlist_pop(cpus))) {
@ -256,7 +263,7 @@ static void aarch64_numa_cpu(const void *data)
}
qobject_unref(resp);
qtest_end();
qtest_quit(qts);
g_free(cli);
}

View File

@ -84,10 +84,11 @@ static void test_smram_lock(void)
QPCIBus *pcibus;
QPCIDevice *pcidev;
QDict *response;
QTestState *qts;
qtest_start("-M q35");
qts = qtest_init("-M q35");
pcibus = qpci_new_pc(global_qtest, NULL);
pcibus = qpci_new_pc(qts, NULL);
g_assert(pcibus != NULL);
pcidev = qpci_device_find(pcibus, 0);
@ -106,7 +107,7 @@ static void test_smram_lock(void)
g_assert(smram_test_bit(pcidev, MCH_HOST_BRIDGE_SMRAM_D_OPEN) == false);
/* reset */
response = qmp("{'execute': 'system_reset', 'arguments': {} }");
response = qtest_qmp(qts, "{'execute': 'system_reset', 'arguments': {} }");
g_assert(response);
g_assert(!qdict_haskey(response, "error"));
qobject_unref(response);
@ -120,33 +121,29 @@ static void test_smram_lock(void)
g_free(pcidev);
qpci_free_pc(pcibus);
qtest_end();
qtest_quit(qts);
}
static void test_tseg_size(const void *data)
{
const TsegSizeArgs *args = data;
char *cmdline;
QPCIBus *pcibus;
QPCIDevice *pcidev;
uint8_t smram_val;
uint8_t esmramc_val;
uint32_t ram_offs;
QTestState *qts;
if (args->esmramc_tseg_sz == MCH_HOST_BRIDGE_ESMRAMC_TSEG_SZ_MASK) {
cmdline = g_strdup_printf("-M q35 -m %uM "
"-global mch.extended-tseg-mbytes=%u",
TSEG_SIZE_TEST_GUEST_RAM_MBYTES,
args->extended_tseg_mbytes);
qts = qtest_initf("-M q35 -m %uM -global mch.extended-tseg-mbytes=%u",
TSEG_SIZE_TEST_GUEST_RAM_MBYTES,
args->extended_tseg_mbytes);
} else {
cmdline = g_strdup_printf("-M q35 -m %uM",
TSEG_SIZE_TEST_GUEST_RAM_MBYTES);
qts = qtest_initf("-M q35 -m %uM", TSEG_SIZE_TEST_GUEST_RAM_MBYTES);
}
qtest_start(cmdline);
g_free(cmdline);
/* locate the DRAM controller */
pcibus = qpci_new_pc(global_qtest, NULL);
pcibus = qpci_new_pc(qts, NULL);
g_assert(pcibus != NULL);
pcidev = qpci_device_find(pcibus, 0);
g_assert(pcidev != NULL);
@ -175,18 +172,18 @@ static void test_tseg_size(const void *data)
*/
ram_offs = (TSEG_SIZE_TEST_GUEST_RAM_MBYTES - args->expected_tseg_mbytes) *
1024 * 1024 - 1;
g_assert_cmpint(readb(ram_offs), ==, 0);
writeb(ram_offs, 1);
g_assert_cmpint(readb(ram_offs), ==, 1);
g_assert_cmpint(qtest_readb(qts, ram_offs), ==, 0);
qtest_writeb(qts, ram_offs, 1);
g_assert_cmpint(qtest_readb(qts, ram_offs), ==, 1);
ram_offs++;
g_assert_cmpint(readb(ram_offs), ==, 0xff);
writeb(ram_offs, 1);
g_assert_cmpint(readb(ram_offs), ==, 0xff);
g_assert_cmpint(qtest_readb(qts, ram_offs), ==, 0xff);
qtest_writeb(qts, ram_offs, 1);
g_assert_cmpint(qtest_readb(qts, ram_offs), ==, 0xff);
g_free(pcidev);
qpci_free_pc(pcibus);
qtest_end();
qtest_quit(qts);
}
int main(int argc, char **argv)

View File

@ -38,7 +38,6 @@ trap "_cleanup; exit \$status" 0 1 2 3 15
_supported_fmt generic
_supported_proto generic
_supported_os Linux
size=128M

View File

@ -38,7 +38,6 @@ trap "_cleanup; exit \$status" 0 1 2 3 15
_supported_fmt generic
_supported_proto generic
_supported_os Linux
size=128M

View File

@ -38,7 +38,6 @@ trap "_cleanup; exit \$status" 0 1 2 3 15
_supported_fmt generic
_supported_proto generic
_supported_os Linux
size=128M
offset=67M

View File

@ -38,7 +38,6 @@ trap "_cleanup; exit \$status" 0 1 2 3 15
_supported_fmt raw qcow qcow2 qed vdi vmdk vhdx luks
_supported_proto generic
_supported_os Linux
size=128M

View File

@ -55,6 +55,15 @@ if [ "$IMGPROTO" = "sheepdog" ]; then
_notrun "image protocol $IMGPROTO does not support large image sizes"
fi
# Sanity check: For raw, we require a file system that permits the creation
# of a HUGE (but very sparse) file. Check we can create it before continuing.
if [ "$IMGFMT" = "raw" ]; then
if ! truncate --size=5T "$TEST_IMG"; then
_notrun "file system on $TEST_DIR does not support large enough files"
fi
rm "$TEST_IMG"
fi
echo
echo "creating large image"
_make_test_img 5000G

View File

@ -40,7 +40,6 @@ trap "_cleanup; exit \$status" 0 1 2 3 15
# currently only qcow2 allows for consistency checks using qemu-img
_supported_fmt qcow2
_supported_proto generic
_supported_os Linux
# refcount_bits must be at least 4 so we can create ten internal snapshots
# (1 bit supports none, 2 bits support two, 4 bits support 14)
_unsupported_imgopts 'refcount_bits=\(1\|2\)[^0-9]'

View File

@ -38,7 +38,6 @@ trap "_cleanup; exit \$status" 0 1 2 3 15
_supported_fmt generic
_supported_proto generic
_supported_os Linux
size=128M

View File

@ -38,7 +38,6 @@ trap "_cleanup; exit \$status" 0 1 2 3 15
_supported_fmt generic
_supported_proto generic
_supported_os Linux
size=6G

View File

@ -38,7 +38,6 @@ trap "_cleanup; exit \$status" 0 1 2 3 15
_supported_fmt generic
_supported_proto generic
_supported_os Linux
size=6G

View File

@ -38,7 +38,6 @@ trap "_cleanup; exit \$status" 0 1 2 3 15
_supported_fmt generic
_supported_proto generic
_supported_os Linux
size=6G

View File

@ -40,7 +40,6 @@ trap "_cleanup; exit \$status" 0 1 2 3 15
_supported_fmt generic
_supported_proto file
_supported_os Linux
# Remove once all tests are fixed to use TEST_IMG_FILE
# correctly and common.rc sets it unconditionally

View File

@ -40,7 +40,6 @@ trap "_cleanup; exit \$status" 0 1 2 3 15
# actually any format that supports snapshots
_supported_fmt qcow2
_supported_proto generic
_supported_os Linux
# Internal snapshots are (currently) impossible with refcount_bits=1
_unsupported_imgopts 'refcount_bits=1[^0-9]'

View File

@ -41,7 +41,6 @@ trap "_cleanup; exit \$status" 0 1 2 3 15
_supported_fmt qcow qcow2 vmdk qed
_supported_proto generic
_unsupported_proto vxhs
_supported_os Linux
_unsupported_imgopts "subformat=monolithicFlat" "subformat=twoGbMaxExtentFlat"
TEST_OFFSETS="0 4294967296"

View File

@ -42,7 +42,6 @@ trap "_cleanup; exit \$status" 0 1 2 3 15
# Any format supporting backing files
_supported_fmt qcow qcow2 vmdk qed
_supported_proto file
_supported_os Linux
_unsupported_imgopts "subformat=monolithicFlat" \
"subformat=twoGbMaxExtentFlat" \
"subformat=twoGbMaxExtentSparse"

View File

@ -38,7 +38,6 @@ trap "_cleanup; exit \$status" 0 1 2 3 15
_supported_fmt generic
_supported_proto generic
_supported_os Linux
size=128M

View File

@ -42,7 +42,6 @@ trap "_cleanup; exit \$status" 0 1 2 3 15
# Any format that supports snapshots
_supported_fmt qcow2
_supported_proto generic
_supported_os Linux
TEST_OFFSETS="10485760 4294967296"
CLUSTER_SIZE="4096"

View File

@ -39,7 +39,6 @@ trap "_cleanup; exit \$status" 0 1 2 3 15
_supported_fmt raw qcow2 qed luks
_supported_proto file sheepdog rbd nfs
_supported_os Linux
echo "=== Creating image"
echo

View File

@ -41,7 +41,6 @@ trap "_cleanup; exit \$status" 0 1 2 3 15
# Currently only qcow2 supports rebasing
_supported_fmt qcow2
_supported_proto file
_supported_os Linux
_default_cache_mode "writethrough"
_supported_cache_modes "writethrough" "none"
# The refcount table tests expect a certain minimum width for refcount entries

View File

@ -38,7 +38,6 @@ trap "_cleanup; exit \$status" 0 1 2 3 15
_supported_fmt vmdk qcow qcow2 qed
_supported_proto generic
_supported_os Linux
size=128M

View File

@ -42,7 +42,6 @@ trap "_cleanup; exit \$status" 0 1 2 3 15
_supported_fmt qcow2
_supported_proto generic
_unsupported_proto vxhs
_supported_os Linux
# Internal snapshots are (currently) impossible with refcount_bits=1
_unsupported_imgopts 'refcount_bits=1[^0-9]'

View File

@ -40,7 +40,6 @@ trap "_cleanup; exit \$status" 0 1 2 3 15
# This tests qcow2-specific low-level functionality
_supported_fmt qcow2
_supported_proto file
_supported_os Linux
CLUSTER_SIZE=65536

View File

@ -42,7 +42,6 @@ trap "_cleanup; exit \$status" 0 1 2 3 15
# This works for any image format (though unlikely to segfault for raw)
_supported_fmt generic
_supported_proto generic
_supported_os Linux
echo
echo === Prepare image ===

View File

@ -38,7 +38,6 @@ trap "_cleanup; exit \$status" 0 1 2 3 15
_supported_fmt generic
_supported_proto generic
_supported_os Linux
size=128M

View File

@ -39,7 +39,6 @@ trap "_cleanup; exit \$status" 0 1 2 3 15
_supported_fmt qcow2
_supported_proto generic
_supported_os Linux
size=6G

View File

@ -43,7 +43,6 @@ trap "_cleanup; exit \$status" 0 1 2 3 15
# This tests qcow2-specific low-level functionality
_supported_fmt qcow2
_supported_proto file
_supported_os Linux
# Only qcow2v3 and later supports feature bits
IMGOPTS="compat=1.1"

View File

@ -38,7 +38,6 @@ trap "_cleanup; exit \$status" 0 1 2 3 15
_supported_fmt qcow qcow2 vmdk qed
_supported_proto file
_supported_os Linux
_unsupported_imgopts "subformat=monolithicFlat" \
"subformat=twoGbMaxExtentFlat" \
"subformat=twoGbMaxExtentSparse"

View File

@ -38,7 +38,6 @@ trap "_cleanup; exit \$status" 0 1 2 3 15
_supported_fmt qcow2 qed
_supported_proto file
_supported_os Linux
echo
echo "== Creating zero size image =="

View File

@ -40,7 +40,6 @@ trap "_cleanup; exit \$status" 0 1 2 3 15
# Any format supporting backing files
_supported_fmt qcow2 qed
_supported_proto file
_supported_os Linux
size=128M

View File

@ -38,7 +38,6 @@ trap "_cleanup; exit \$status" 0 1 2 3 15
_supported_fmt qcow2
_supported_proto file
_supported_os Linux
CLUSTER_SIZE=64k
size=128M

View File

@ -39,7 +39,6 @@ trap "_cleanup; exit \$status" 0 1 2 3 15
_supported_fmt qcow2
_supported_proto generic
_supported_os Linux
size=128M

View File

@ -38,7 +38,6 @@ trap "_cleanup; exit \$status" 0 1 2 3 15
_supported_fmt qcow2
_supported_proto file
_supported_os Linux
filter_test_dir()
{

View File

@ -40,7 +40,6 @@ trap "_cleanup; exit \$status" 0 1 2 3 15
_supported_fmt qcow2 qed
_supported_proto file
_supported_os Linux
if test "$IMGFMT" = qcow2 && test $IMGOPTS = ""; then
IMGOPTS=compat=1.1

View File

@ -38,7 +38,6 @@ trap "_cleanup; exit \$status" 0 1 2 3 15
_supported_fmt qcow2
_supported_proto file
_supported_os Linux
# A compat=0.10 image is created in this test which does not support anything
# other than refcount_bits=16
_unsupported_imgopts 'refcount_bits=\([^1]\|.\([^6]\|$\)\)'

View File

@ -38,7 +38,6 @@ trap "_cleanup; exit \$status" 0 1 2 3 15
_supported_fmt generic
_supported_proto file
_supported_os Linux
# Don't do O_DIRECT on tmpfs
_supported_cache_modes "writeback" "writethrough" "unsafe"

View File

@ -39,7 +39,6 @@ trap "_cleanup; exit \$status" 0 1 2 3 15
_supported_fmt qcow2 qcow
_supported_proto file
_supported_os Linux
echo
echo "== Creating single sector image =="

View File

@ -38,7 +38,6 @@ trap "_cleanup; exit \$status" 0 1 2 3 15
_supported_fmt qcow2
_supported_proto file
_supported_os Linux
echo
echo "creating too large image (1 EB)"

View File

@ -40,7 +40,6 @@ trap "_cleanup; exit \$status" 0 1 2 3 15
# This tests qocw2-specific low-level functionality
_supported_fmt qcow2
_supported_proto generic
_supported_os Linux
IMGOPTS="compat=1.1"
IMG_SIZE=64M

View File

@ -41,7 +41,6 @@ trap "_cleanup; exit \$status" 0 1 2 3 15
_supported_fmt qcow qcow2 vmdk qed raw
_supported_proto file
_supported_os Linux
_unsupported_imgopts "subformat=monolithicFlat" \
"subformat=twoGbMaxExtentFlat" \
"subformat=twoGbMaxExtentSparse"

View File

@ -39,7 +39,6 @@ trap "_cleanup; exit \$status" 0 1 2 3 15
# This tests qocw2-specific low-level functionality
_supported_fmt qcow2
_supported_proto generic
_supported_os Linux
# Intentionally create an unaligned image
IMGOPTS="compat=1.1"

View File

@ -32,7 +32,6 @@ status=1 # failure is the default!
_supported_fmt qcow2
_supported_proto file
_supported_os Linux
# Because anything other than 16 would change the output of query-block
_unsupported_imgopts 'refcount_bits=\([^1]\|.\([^6]\|$\)\)'

View File

@ -39,7 +39,6 @@ trap "_cleanup; exit \$status" 0 1 2 3 15
# This tests qocw2-specific low-level functionality
_supported_fmt qcow2
_supported_proto generic
_supported_os Linux
IMGOPTS="compat=1.1"
IMG_SIZE=128K

View File

@ -38,7 +38,6 @@ trap "_cleanup; exit \$status" 0 1 2 3 15
_supported_fmt qed qcow qcow2 vmdk
_supported_proto file
_supported_os Linux
_unsupported_imgopts "subformat=monolithicFlat" "subformat=twoGbMaxExtentFlat"
IMG_SIZE=128K

View File

@ -38,7 +38,6 @@ trap "_cleanup; exit \$status" 0 1 2 3 15
_supported_fmt qcow2
_supported_proto file
_supported_os Linux
do_run_qemu()
{

View File

@ -38,7 +38,6 @@ trap "_cleanup; exit \$status" 0 1 2 3 15
_supported_fmt vpc vmdk vhdx vdi qed qcow2 qcow
_supported_proto file
_supported_os Linux
IMG_SIZE=64M

View File

@ -39,7 +39,6 @@ trap "_cleanup; exit \$status" 0 1 2 3 15
_supported_fmt qcow2
_supported_proto generic
_unsupported_proto vxhs
_supported_os Linux
CLUSTER_SIZE=64k
size=128M

View File

@ -38,7 +38,6 @@ trap "_cleanup; exit \$status" 0 1 2 3 15
_supported_fmt qcow2
_supported_proto file nfs
_supported_os Linux
echo "=== Check option preallocation and cluster_size ==="
echo

View File

@ -38,7 +38,6 @@ trap "_cleanup; exit \$status" 0 1 2 3 15
_supported_fmt qcow2
_supported_proto file nfs
_supported_os Linux
run_qemu_img()
{

View File

@ -56,7 +56,6 @@ trap "_cleanup; exit \$status" 0 1 2 3 15
_supported_fmt qcow2
_supported_proto file
_supported_os Linux
# ${1}: unique identifier for the snapshot filename

View File

@ -38,7 +38,6 @@ trap "_cleanup; exit \$status" 0 1 2 3 15
_supported_fmt qcow2
_supported_proto file
_supported_os Linux
# Because anything other than 16 would change the output of qemu_io -c info
_unsupported_imgopts 'refcount_bits=\([^1]\|.\([^6]\|$\)\)'

View File

@ -38,7 +38,6 @@ trap "_cleanup; exit \$status" 0 1 2 3 15
_supported_fmt qcow2
_supported_proto file nfs
_supported_os Linux
IMG_SIZE=128K

View File

@ -42,7 +42,6 @@ trap "_cleanup; exit \$status" 0 1 2 3 15
_supported_fmt generic
_supported_proto nbd
_supported_os Linux
_unsupported_imgopts "subformat=monolithicFlat" "subformat=twoGbMaxExtentFlat"
_make_test_img 64M

View File

@ -44,7 +44,6 @@ trap "_cleanup; exit \$status" 0 1 2 3 15
_supported_fmt qcow2
_supported_proto file
_supported_os Linux
size_smaller=5M
size_larger=100M

View File

@ -40,7 +40,6 @@ trap "_cleanup; exit \$status" 0 1 2 3 15
_supported_fmt qcow2
_supported_proto file
_supported_os Linux
IMGOPTS="compat=1.1"

View File

@ -40,7 +40,6 @@ trap "_cleanup; exit \$status" 0 1 2 3 15
_supported_fmt qcow2
_supported_proto file
_supported_os Linux
IMG_SIZE=64K

View File

@ -38,7 +38,6 @@ trap "_cleanup; exit \$status" 0 1 2 3 15
_supported_fmt qcow2
_supported_proto file nfs
_supported_os Linux
# Internal snapshots are (currently) impossible with refcount_bits=1
_unsupported_imgopts 'refcount_bits=1[^0-9]'

View File

@ -34,7 +34,6 @@ trap "exit \$status" 0 1 2 3 15
_supported_fmt raw qcow qcow2 qed vdi vmdk vhdx
_supported_proto generic
_supported_os Linux
echo "=== Check qemu-img info output ==="
echo

View File

@ -38,7 +38,6 @@ trap "_cleanup; exit \$status" 0 1 2 3 15
_supported_fmt qcow2 vmdk vhdx qed
_supported_proto generic
_supported_os Linux
_unsupported_imgopts "subformat=twoGbMaxExtentFlat" \
"subformat=twoGbMaxExtentSparse"

View File

@ -38,7 +38,6 @@ trap "_cleanup; exit \$status" 0 1 2 3 15
_supported_fmt qcow2
_supported_proto file nfs
_supported_os Linux
IMG_SIZE=64K

View File

@ -40,7 +40,6 @@ trap "_cleanup; exit \$status" 0 1 2 3 15
# Any format supporting backing files
_supported_fmt qed qcow qcow2 vmdk
_supported_proto file
_supported_os Linux
_unsupported_imgopts "subformat=monolithicFlat" "subformat=twoGbMaxExtentFlat"
TEST_IMG_REL=$(basename "$TEST_IMG")

View File

@ -39,7 +39,6 @@ trap "_cleanup; exit \$status" 0 1 2 3 15
_supported_fmt qed qcow qcow2 vmdk
_supported_proto file
_supported_os Linux
_unsupported_imgopts "subformat=monolithicFlat" "subformat=twoGbMaxExtentFlat"
$QEMU_IMG create -f $IMGFMT -b "$TEST_IMG.inexistent" "$TEST_IMG" 2>&1 \

View File

@ -39,7 +39,6 @@ trap "_cleanup; exit \$status" 0 1 2 3 15
# This tests qcow2-specific low-level functionality
_supported_fmt qcow2
_supported_proto file
_supported_os Linux
# This test will set refcount_bits on its own which would conflict with the
# manual setting; compat will be overridden as well
_unsupported_imgopts refcount_bits 'compat=0.10'

View File

@ -39,7 +39,6 @@ trap "_cleanup; exit \$status" 0 1 2 3 15
_supported_fmt qcow2
_supported_proto generic
_unsupported_proto vxhs
_supported_os Linux
TEST_IMG="$TEST_IMG.base" _make_test_img 64M

View File

@ -38,7 +38,6 @@ trap "_cleanup; exit \$status" 0 1 2 3 15
_supported_fmt qcow2
_supported_proto file
_supported_os Linux
# This test relies on refcounts being 64 bits wide (which does not work with
# compat=0.10)
_unsupported_imgopts 'refcount_bits=\([^6]\|.\([^4]\|$\)\)' 'compat=0.10'

View File

@ -40,7 +40,6 @@ trap "_cleanup; exit \$status" 0 1 2 3 15
_supported_fmt qcow2
_supported_proto file
_supported_os Linux
_make_test_img 64k

View File

@ -39,7 +39,6 @@ trap "_cleanup; exit \$status" 0 1 2 3 15
_supported_fmt generic
_supported_proto file
_supported_os Linux
_unsupported_fmt luks
_make_test_img 64M

View File

@ -44,7 +44,6 @@ get_image_size_on_host()
_supported_fmt qcow2
_supported_proto file
_supported_os Linux
if [ -z "$TEST_IMG_FILE" ]; then
TEST_IMG_FILE=$TEST_IMG

View File

@ -37,7 +37,6 @@ _supported_fmt qcow qcow2 qed vmdk
# colons which separate a protocol prefix from the rest and colons which are
# just part of the filename, so we cannot test protocols which require a prefix)
_supported_proto file
_supported_os Linux
echo
echo '=== Testing plain files ==='

View File

@ -42,7 +42,6 @@ trap "_cleanup; exit \$status" 0 1 2 3 15
_supported_fmt qcow2
_supported_proto file
_supported_os Linux
IMG_SIZE=64K

View File

@ -38,7 +38,6 @@ trap "_cleanup; exit \$status" 0 1 2 3 15
_supported_fmt qcow2
_supported_proto file
_supported_os Linux
TEST_IMG="$TEST_IMG.base" _make_test_img 64M
_make_test_img -b "$TEST_IMG.base"

View File

@ -39,7 +39,6 @@ trap "_cleanup; exit \$status" 0 1 2 3 15
_supported_fmt qcow qcow2
_supported_proto generic
_unsupported_proto vxhs
_supported_os Linux
size=128M

View File

@ -39,7 +39,6 @@ trap "_cleanup; exit \$status" 0 1 2 3 15
_supported_fmt qcow2
_supported_proto file
_supported_os Linux
# We test all cache modes anyway, but O_DIRECT needs to be supported
_default_cache_mode none

View File

@ -40,7 +40,6 @@ trap "_cleanup; exit \$status" 0 1 2 3 15
_supported_fmt generic
_supported_proto generic
_supported_os Linux
keep_stderr=y \
_launch_qemu 2> >(_filter_nbd)

View File

@ -46,7 +46,6 @@ trap "_cleanup; exit \$status" 0 1 2 3 15
_supported_fmt qcow2
_supported_proto file
_supported_os Linux
size=512M

View File

@ -39,7 +39,6 @@ trap "_cleanup; exit \$status" 0 1 2 3 15
_supported_fmt generic
_supported_proto generic
_supported_os Linux
_make_test_img 1M

View File

@ -62,7 +62,6 @@ _check_ofd || _notrun "OFD lock not available"
_supported_fmt qcow2
_supported_proto file
_supported_os Linux
_run_cmd()
{

View File

@ -49,7 +49,6 @@ trap "_cleanup; exit \$status" 0 1 2 3 15
_supported_fmt qcow2 qed
_supported_proto generic
_unsupported_proto vxhs
_supported_os Linux
# Create source disk
TEST_IMG="$TEST_IMG.backing" _make_test_img 1M

View File

@ -38,7 +38,6 @@ trap "_cleanup; exit \$status" 0 1 2 3 15
_supported_fmt generic
_supported_proto file
_supported_os Linux
do_run_qemu()
{

View File

@ -39,7 +39,6 @@ trap "_cleanup; exit \$status" 0 1 2 3 15
_supported_fmt qcow qcow2
_supported_proto generic
_unsupported_proto vxhs
_supported_os Linux
size=128M

View File

@ -38,7 +38,6 @@ trap "_cleanup; exit \$status" 0 1 2 3 15
_supported_fmt generic
_supported_proto file
_supported_os Linux
_unsupported_fmt luks
TEST_SIZES="5 512 1024 1999 1K 64K 1M"

View File

@ -39,7 +39,6 @@ trap "_cleanup; exit \$status" 0 1 2 3 15
. ./common.filter
_supported_fmt generic
_supported_os Linux
test_ssh=$($QEMU_IMG --help | grep '^Supported formats:.* ssh\( \|$\)')
[ "$test_ssh" = "" ] && _notrun "ssh support required"

View File

@ -38,7 +38,6 @@ trap "_cleanup; exit \$status" 0 1 2 3 15
_supported_fmt generic
_supported_proto file
_supported_os Linux
_unsupported_fmt luks
echo

View File

@ -41,7 +41,6 @@ trap "_cleanup; exit \$status" 0 1 2 3 15
_supported_fmt qcow2
_supported_proto nfs
_supported_os Linux
size=100M

View File

@ -42,7 +42,6 @@ trap "_cleanup; exit \$status" 0 1 2 3 15
_supported_fmt qcow2
_supported_proto file
_supported_os Linux
size=32M

View File

@ -44,7 +44,6 @@ trap "_cleanup; exit \$status" 0 1 2 3 15
_supported_fmt qcow2 raw qed quorum
_supported_proto file
_supported_os Linux
size=64M
_make_test_img $size

View File

@ -38,7 +38,6 @@ trap "_cleanup; exit \$status" 0 1 2 3 15
_supported_fmt qcow2
_supported_proto file
_supported_os Linux
if [ "$QEMU_DEFAULT_MACHINE" != "pc" ]; then
_notrun "Requires a PC machine"

View File

@ -40,7 +40,6 @@ trap "_cleanup; exit \$status" 0 1 2 3 15
_supported_fmt qcow2
_supported_proto file
_supported_os Linux
size=64M
_make_test_img $size

View File

@ -41,7 +41,6 @@ trap "_cleanup; exit \$status" 0 1 2 3 15
# See 178 for more extensive tests across more formats
_supported_fmt qcow2
_supported_proto file
_supported_os Linux
echo "== Huge file =="
echo

View File

@ -43,7 +43,6 @@ trap "_cleanup; exit \$status" 0 1 2 3 15
_supported_fmt qcow2
_supported_proto file
_supported_os Linux
size=64M

Some files were not shown because too many files have changed in this diff Show More