- 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>
This commit is contained in:
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 cpu: 8
memory: 8G memory: 8G
install_script: pkg install -y 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 nettle perl5 pixman pkgconf png usbredir
script: script:
- mkdir build - mkdir build
@ -20,7 +20,7 @@ macos_task:
osx_instance: osx_instance:
image: mojave-base image: mojave-base
install_script: install_script:
- brew install pkg-config python glib pixman make sdl2 - brew install pkg-config python gnu-sed glib pixman make sdl2
script: script:
- ./configure --python=/usr/local/bin/python3 || { cat config.log; exit 1; } - ./configure --python=/usr/local/bin/python3 || { cat config.log; exit 1; }
- gmake -j$(sysctl -n hw.ncpu) - gmake -j$(sysctl -n hw.ncpu)

View File

@ -42,6 +42,7 @@ addons:
packages: packages:
- glib - glib
- pixman - pixman
- gnu-sed
# The channel name "irc.oftc.net#qemu" is encrypted against qemu/qemu # 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"; 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; QDict *resp;
QList *ret; QList *ret;
@ -36,8 +37,8 @@ static QList *qom_list_types(const char *implements, bool abstract)
if (implements) { if (implements) {
qdict_put_str(args, "implements", implements); qdict_put_str(args, "implements", implements);
} }
resp = qmp("{'execute': 'qom-list-types'," resp = qtest_qmp(qts, "{'execute': 'qom-list-types', 'arguments': %p }",
" 'arguments': %p }", args); args);
g_assert(qdict_haskey(resp, "return")); g_assert(qdict_haskey(resp, "return"));
ret = qdict_get_qlist(resp, "return"); ret = qdict_get_qlist(resp, "return");
qobject_ref(ret); qobject_ref(ret);
@ -95,12 +96,12 @@ static QDict *type_list_find(QList *types, const char *name)
return NULL; 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; QDict *resp;
char *help; char *help;
@ -109,15 +110,15 @@ static void test_one_device(const char *type)
g_test_message("Testing device '%s'", type); g_test_message("Testing device '%s'", type);
qom_tree_start = hmp("info qom-tree"); qom_tree_start = qtest_hmp(qts, "info qom-tree");
qtree_start = hmp("info qtree"); qtree_start = qtest_hmp(qts, "info qtree");
resp = qmp("{'execute': 'device-list-properties'," resp = qtest_qmp(qts, "{'execute': 'device-list-properties',"
" 'arguments': {'typename': %s}}", " 'arguments': {'typename': %s}}",
type); type);
qobject_unref(resp); qobject_unref(resp);
help = hmp("device_add \"%s,help\"", type); help = qtest_hmp(qts, "device_add \"%s,help\"", type);
g_free(help); 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. * "info qom-tree" or "info qtree" have a good chance at crashing then.
* Also make sure that the tree did not change. * 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_assert_cmpstr(qom_tree_start, ==, qom_tree_end);
g_free(qom_tree_start); g_free(qom_tree_start);
g_free(qom_tree_end); 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_assert_cmpstr(qtree_start, ==, qtree_end);
g_free(qtree_start); g_free(qtree_start);
g_free(qtree_end); g_free(qtree_end);
@ -140,29 +141,30 @@ static void test_device_intro_list(void)
{ {
QList *types; QList *types;
char *help; 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); qobject_unref(types);
help = hmp("device_add help"); help = qtest_hmp(qts, "device_add help");
g_free(help); g_free(help);
qtest_end(); qtest_quit(qts);
} }
/* /*
* Ensure all entries returned by qom-list-types implements=<parent> * Ensure all entries returned by qom-list-types implements=<parent>
* have <parent> as a 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; QList *types;
QListEntry *e; QListEntry *e;
QDict *index; QDict *index;
types = qom_list_types(parent, true); types = qom_list_types(qts, parent, true);
index = qom_type_index(types); index = qom_type_index(types);
QLIST_FOREACH_ENTRY(types, e) { QLIST_FOREACH_ENTRY(types, e) {
@ -181,11 +183,12 @@ static void test_qom_list_fields(void)
QList *all_types; QList *all_types;
QList *non_abstract; QList *non_abstract;
QListEntry *e; QListEntry *e;
QTestState *qts;
qtest_start(common_args); qts = qtest_init(common_args);
all_types = qom_list_types(NULL, true); all_types = qom_list_types(qts, NULL, true);
non_abstract = qom_list_types(NULL, false); non_abstract = qom_list_types(qts, NULL, false);
QLIST_FOREACH_ENTRY(all_types, e) { QLIST_FOREACH_ENTRY(all_types, e) {
QDict *d = qobject_to(QDict, qlist_entry_obj(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); g_assert(abstract == expected_abstract);
} }
test_qom_list_parents("object"); test_qom_list_parents(qts, "object");
test_qom_list_parents("device"); test_qom_list_parents(qts, "device");
test_qom_list_parents("sys-bus-device"); test_qom_list_parents(qts, "sys-bus-device");
qobject_unref(all_types); qobject_unref(all_types);
qobject_unref(non_abstract); qobject_unref(non_abstract);
qtest_end(); qtest_quit(qts);
} }
static void test_device_intro_none(void) static void test_device_intro_none(void)
{ {
qtest_start(common_args); QTestState *qts = qtest_init(common_args);
test_one_device("nonexistent");
qtest_end(); test_one_device(qts, "nonexistent");
qtest_quit(qts);
} }
static void test_device_intro_abstract(void) static void test_device_intro_abstract(void)
{ {
qtest_start(common_args); QTestState *qts = qtest_init(common_args);
test_one_device("device");
qtest_end(); test_one_device(qts, "device");
qtest_quit(qts);
} }
static void test_device_intro_concrete(const void *args) static void test_device_intro_concrete(const void *args)
@ -226,19 +231,20 @@ static void test_device_intro_concrete(const void *args)
QList *types; QList *types;
QListEntry *entry; QListEntry *entry;
const char *type; const char *type;
QTestState *qts;
qtest_start(args); qts = qtest_init(args);
types = device_type_list(false); types = device_type_list(qts, false);
QLIST_FOREACH_ENTRY(types, entry) { QLIST_FOREACH_ENTRY(types, entry) {
type = qdict_get_try_str(qobject_to(QDict, qlist_entry_obj(entry)), type = qdict_get_try_str(qobject_to(QDict, qlist_entry_obj(entry)),
"name"); "name");
g_assert(type); g_assert(type);
test_one_device(type); test_one_device(qts, type);
} }
qobject_unref(types); qobject_unref(types);
qtest_end(); qtest_quit(qts);
g_free((void *)args); g_free((void *)args);
} }
@ -247,10 +253,11 @@ static void test_abstract_interfaces(void)
QList *all_types; QList *all_types;
QListEntry *e; QListEntry *e;
QDict *index; 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); index = qom_type_index(all_types);
QLIST_FOREACH_ENTRY(all_types, e) { QLIST_FOREACH_ENTRY(all_types, e) {
@ -273,7 +280,7 @@ static void test_abstract_interfaces(void)
qobject_unref(all_types); qobject_unref(all_types);
qobject_unref(index); qobject_unref(index);
qtest_end(); qtest_quit(qts);
} }
static void add_machine_test_case(const char *mname) 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; 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 }; enum { cmos_base = 0x70 };
int actual; int actual;
outb(cmos_base + 0, reg); qtest_outb(qts, cmos_base + 0, reg);
actual = inb(cmos_base + 1); actual = qtest_inb(qts, cmos_base + 1);
g_assert(actual == expected); 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; int i;
for (i = 0; i < 9; 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[0]) ? 0xf0 : 0) |
(is_hd(cur_ide[1]) ? 0x0f : 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)) { if (is_hd(expected_chst)) {
int c = expected_chst->cyls; 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, h, 0xff, 0xff, 0xc0 | ((h > 8) << 3),
c & 0xff, c >> 8, s c & 0xff, c >> 8, s
}; };
test_cmos_bytes(reg0, 9, expected_bytes); test_cmos_bytes(qts, reg0, 9, expected_bytes);
} else { } else {
int i; int i;
for (i = 0; i < 9; 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_byte(qts, 0x19, is_hd(cur_ide[0]) ? 47 : 0);
test_cmos_drive_cyl(0x1b, cur_ide[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_byte(qts, 0x1a, is_hd(cur_ide[1]) ? 47 : 0);
test_cmos_drive_cyl(0x24, cur_ide[1]); 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; int val, i;
@ -145,15 +147,15 @@ static void test_cmos_disktransflag(void)
val |= cur_ide[i]->trans << (2 * i); 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_disk_data(qts);
test_cmos_drive1(); test_cmos_drive1(qts);
test_cmos_drive2(); test_cmos_drive2(qts);
test_cmos_disktransflag(); test_cmos_disktransflag(qts);
} }
static int append_arg(int argc, char *argv[], int argv_sz, char *arg) 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 **argv = g_new0(char *, ARGV_SIZE);
char *args; char *args;
QTestState *qts;
setup_common(argv, ARGV_SIZE); setup_common(argv, ARGV_SIZE);
args = g_strjoinv(" ", argv); args = g_strjoinv(" ", argv);
qtest_start(args); qts = qtest_init(args);
g_strfreev(argv); g_strfreev(argv);
g_free(args); g_free(args);
test_cmos(); test_cmos(qts);
qtest_end(); qtest_quit(qts);
} }
static void test_ide_mbr(bool use_device, MBRcontents mbr) 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; int argc;
Backend i; Backend i;
const char *dev; const char *dev;
QTestState *qts;
argc = setup_common(argv, ARGV_SIZE); argc = setup_common(argv, ARGV_SIZE);
for (i = 0; i < backend_last; i++) { 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); argc = setup_ide(argc, argv, ARGV_SIZE, i, dev, i, mbr);
} }
args = g_strjoinv(" ", argv); args = g_strjoinv(" ", argv);
qtest_start(args); qts = qtest_init(args);
g_strfreev(argv); g_strfreev(argv);
g_free(args); g_free(args);
test_cmos(); test_cmos(qts);
qtest_end(); qtest_quit(qts);
} }
/* /*
@ -325,6 +329,7 @@ static void test_ide_drive_user(const char *dev, bool trans)
int argc; int argc;
int secs = img_secs[backend_small]; int secs = img_secs[backend_small];
const CHST expected_chst = { secs / (4 * 32) , 4, 32, trans }; const CHST expected_chst = { secs / (4 * 32) , 4, 32, trans };
QTestState *qts;
argc = setup_common(argv, ARGV_SIZE); argc = setup_common(argv, ARGV_SIZE);
opts = g_strdup_printf("%s,%scyls=%d,heads=%d,secs=%d", 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); argc = setup_ide(argc, argv, ARGV_SIZE, 0, opts, backend_small, mbr_chs);
g_free(opts); g_free(opts);
args = g_strjoinv(" ", argv); args = g_strjoinv(" ", argv);
qtest_start(args); qts = qtest_init(args);
g_strfreev(argv); g_strfreev(argv);
g_free(args); g_free(args);
test_cmos(); test_cmos(qts);
qtest_end(); qtest_quit(qts);
} }
/* /*
@ -367,6 +372,7 @@ static void test_ide_drive_cd_0(void)
char *args; char *args;
int argc, ide_idx; int argc, ide_idx;
Backend i; Backend i;
QTestState *qts;
argc = setup_common(argv, ARGV_SIZE); argc = setup_common(argv, ARGV_SIZE);
for (i = 0; i <= backend_empty; i++) { 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); argc = setup_ide(argc, argv, ARGV_SIZE, ide_idx, NULL, i, mbr_blank);
} }
args = g_strjoinv(" ", argv); args = g_strjoinv(" ", argv);
qtest_start(args); qts = qtest_init(args);
g_strfreev(argv); g_strfreev(argv);
g_free(args); g_free(args);
test_cmos(); test_cmos(qts);
qtest_end(); qtest_quit(qts);
} }
int main(int argc, char **argv) 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); g_assert_cmpint(vq->size & (vq->size - 1), ==, 0);
addr = guest_alloc(alloc, qvring_size(vq->size, dev->page_size)); 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); qvirtio_mmio_set_queue_address(d, vq->desc / dev->page_size);
return vq; return vq;

View File

@ -199,6 +199,7 @@ static QVirtQueue *qvirtio_pci_virtqueue_setup(QVirtioDevice *d,
uint32_t feat; uint32_t feat;
uint64_t addr; uint64_t addr;
QVirtQueuePCI *vqpci; QVirtQueuePCI *vqpci;
QVirtioPCIDevice *qvpcidev = container_of(d, QVirtioPCIDevice, vdev);
vqpci = g_malloc0(sizeof(*vqpci)); vqpci = g_malloc0(sizeof(*vqpci));
feat = qvirtio_pci_get_guest_features(d); 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, addr = guest_alloc(alloc, qvring_size(vqpci->vq.size,
VIRTIO_PCI_VRING_ALIGN)); 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); qvirtio_pci_set_queue_address(d, vqpci->vq.desc / VIRTIO_PCI_VRING_ALIGN);
return &vqpci->vq; 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; 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++) { for (i = 0; i < vq->size - 1; i++) {
/* vq->desc[i].addr */ /* vq->desc[i].addr */
writeq(vq->desc + (16 * i), 0); qtest_writeq(qts, vq->desc + (16 * i), 0);
/* vq->desc[i].next */ /* 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 */ /* vq->avail->flags */
writew(vq->avail, 0); qtest_writew(qts, vq->avail, 0);
/* vq->avail->idx */ /* vq->avail->idx */
writew(vq->avail + 2, 0); qtest_writew(qts, vq->avail + 2, 0);
/* vq->avail->used_event */ /* 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 */ /* vq->used->flags */
writew(vq->used, 0); qtest_writew(qts, vq->used, 0);
/* vq->used->avail_event */ /* 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, 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, void qvirtqueue_cleanup(const QVirtioBus *bus, QVirtQueue *vq,
QGuestAllocator *alloc); 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, QVRingIndirectDesc *qvring_indirect_desc_setup(QVirtioDevice *d,
QGuestAllocator *alloc, uint16_t elem); QGuestAllocator *alloc, uint16_t elem);
void qvring_indirect_desc_add(QVRingIndirectDesc *indirect, uint64_t data, void qvring_indirect_desc_add(QVRingIndirectDesc *indirect, uint64_t data,

View File

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

View File

@ -29,7 +29,7 @@ extern QTestState *global_qtest;
* @fmt...: Format for creating other arguments to pass to QEMU, formatted * @fmt...: Format for creating other arguments to pass to QEMU, formatted
* like sprintf(). * like sprintf().
* *
* Convenience wrapper around qtest_start(). * Convenience wrapper around qtest_init().
* *
* Returns: #QTestState instance. * Returns: #QTestState instance.
*/ */
@ -41,7 +41,7 @@ QTestState *qtest_initf(const char *fmt, ...) GCC_FMT_ATTR(1, 2);
* like vsprintf(). * like vsprintf().
* @ap: Format arguments. * @ap: Format arguments.
* *
* Convenience wrapper around qtest_start(). * Convenience wrapper around qtest_init().
* *
* Returns: #QTestState instance. * Returns: #QTestState instance.
*/ */
@ -618,26 +618,6 @@ static inline void qtest_end(void)
*/ */
QDict *qmp(const char *fmt, ...) GCC_FMT_ATTR(1, 2); 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: * qmp_eventwait:
* @s: #event event to wait for. * @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); 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: * hmp:
* @fmt...: HMP command to send to QEMU, formats arguments like sprintf(). * @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); 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: * outb:
* @addr: I/O port to write to. * @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); 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: * memwrite:
* @addr: Guest address to write to. * @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); 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: * clock_step_next:
* *
@ -971,19 +876,6 @@ static inline int64_t clock_step(int64_t step)
return qtest_clock_step(global_qtest, 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); 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_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); 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 *s;
char *cli; char *cli;
QTestState *qts;
cli = make_cli(data, "-smp 8 " cli = make_cli(data, "-smp 8 "
"-numa node,nodeid=0,cpus=0-3 " "-numa node,nodeid=0,cpus=0-3 "
"-numa node,nodeid=1,cpus=4-7 "); "-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 0 cpus: 0 1 2 3"));
g_assert(strstr(s, "node 1 cpus: 4 5 6 7")); g_assert(strstr(s, "node 1 cpus: 4 5 6 7"));
g_free(s); g_free(s);
qtest_end(); qtest_quit(qts);
g_free(cli); g_free(cli);
} }
@ -42,16 +43,17 @@ static void test_mon_default(const void *data)
{ {
char *s; char *s;
char *cli; char *cli;
QTestState *qts;
cli = make_cli(data, "-smp 8 -numa node -numa node"); 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 0 cpus: 0 2 4 6"));
g_assert(strstr(s, "node 1 cpus: 1 3 5 7")); g_assert(strstr(s, "node 1 cpus: 1 3 5 7"));
g_free(s); g_free(s);
qtest_end(); qtest_quit(qts);
g_free(cli); g_free(cli);
} }
@ -59,24 +61,25 @@ static void test_mon_partial(const void *data)
{ {
char *s; char *s;
char *cli; char *cli;
QTestState *qts;
cli = make_cli(data, "-smp 8 " cli = make_cli(data, "-smp 8 "
"-numa node,nodeid=0,cpus=0-1 " "-numa node,nodeid=0,cpus=0-1 "
"-numa node,nodeid=1,cpus=4-5 "); "-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 0 cpus: 0 1 2 3 6 7"));
g_assert(strstr(s, "node 1 cpus: 4 5")); g_assert(strstr(s, "node 1 cpus: 4 5"));
g_free(s); g_free(s);
qtest_end(); qtest_quit(qts);
g_free(cli); 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(*resp);
g_assert(qdict_haskey(*resp, "return")); g_assert(qdict_haskey(*resp, "return"));
return qdict_get_qlist(*resp, "return"); return qdict_get_qlist(*resp, "return");
@ -88,10 +91,11 @@ static void test_query_cpus(const void *data)
QDict *resp; QDict *resp;
QList *cpus; QList *cpus;
QObject *e; QObject *e;
QTestState *qts;
cli = make_cli(data, "-smp 8 -numa node,cpus=0-3 -numa node,cpus=4-7"); cli = make_cli(data, "-smp 8 -numa node,cpus=0-3 -numa node,cpus=4-7");
qtest_start(cli); qts = qtest_init(cli);
cpus = get_cpus(&resp); cpus = get_cpus(qts, &resp);
g_assert(cpus); g_assert(cpus);
while ((e = qlist_pop(cpus))) { while ((e = qlist_pop(cpus))) {
@ -115,7 +119,7 @@ static void test_query_cpus(const void *data)
} }
qobject_unref(resp); qobject_unref(resp);
qtest_end(); qtest_quit(qts);
g_free(cli); g_free(cli);
} }
@ -125,6 +129,7 @@ static void pc_numa_cpu(const void *data)
QDict *resp; QDict *resp;
QList *cpus; QList *cpus;
QObject *e; QObject *e;
QTestState *qts;
cli = make_cli(data, "-cpu pentium -smp 8,sockets=2,cores=2,threads=2 " cli = make_cli(data, "-cpu pentium -smp 8,sockets=2,cores=2,threads=2 "
"-numa node,nodeid=0 -numa node,nodeid=1 " "-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=0 "
"-numa cpu,node-id=0,socket-id=1,core-id=1,thread-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"); "-numa cpu,node-id=1,socket-id=1,core-id=1,thread-id=1");
qtest_start(cli); qts = qtest_init(cli);
cpus = get_cpus(&resp); cpus = get_cpus(qts, &resp);
g_assert(cpus); g_assert(cpus);
while ((e = qlist_pop(cpus))) { while ((e = qlist_pop(cpus))) {
@ -168,7 +173,7 @@ static void pc_numa_cpu(const void *data)
} }
qobject_unref(resp); qobject_unref(resp);
qtest_end(); qtest_quit(qts);
g_free(cli); g_free(cli);
} }
@ -178,6 +183,7 @@ static void spapr_numa_cpu(const void *data)
QDict *resp; QDict *resp;
QList *cpus; QList *cpus;
QObject *e; QObject *e;
QTestState *qts;
cli = make_cli(data, "-smp 4,cores=4 " cli = make_cli(data, "-smp 4,cores=4 "
"-numa node,nodeid=0 -numa node,nodeid=1 " "-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=1 "
"-numa cpu,node-id=0,core-id=2 " "-numa cpu,node-id=0,core-id=2 "
"-numa cpu,node-id=1,core-id=3"); "-numa cpu,node-id=1,core-id=3");
qtest_start(cli); qts = qtest_init(cli);
cpus = get_cpus(&resp); cpus = get_cpus(qts, &resp);
g_assert(cpus); g_assert(cpus);
while ((e = qlist_pop(cpus))) { while ((e = qlist_pop(cpus))) {
@ -213,7 +219,7 @@ static void spapr_numa_cpu(const void *data)
} }
qobject_unref(resp); qobject_unref(resp);
qtest_end(); qtest_quit(qts);
g_free(cli); g_free(cli);
} }
@ -223,13 +229,14 @@ static void aarch64_numa_cpu(const void *data)
QDict *resp; QDict *resp;
QList *cpus; QList *cpus;
QObject *e; QObject *e;
QTestState *qts;
cli = make_cli(data, "-smp 2 " cli = make_cli(data, "-smp 2 "
"-numa node,nodeid=0 -numa node,nodeid=1 " "-numa node,nodeid=0 -numa node,nodeid=1 "
"-numa cpu,node-id=1,thread-id=0 " "-numa cpu,node-id=1,thread-id=0 "
"-numa cpu,node-id=0,thread-id=1"); "-numa cpu,node-id=0,thread-id=1");
qtest_start(cli); qts = qtest_init(cli);
cpus = get_cpus(&resp); cpus = get_cpus(qts, &resp);
g_assert(cpus); g_assert(cpus);
while ((e = qlist_pop(cpus))) { while ((e = qlist_pop(cpus))) {
@ -256,7 +263,7 @@ static void aarch64_numa_cpu(const void *data)
} }
qobject_unref(resp); qobject_unref(resp);
qtest_end(); qtest_quit(qts);
g_free(cli); g_free(cli);
} }

View File

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

View File

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

View File

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

View File

@ -55,6 +55,15 @@ if [ "$IMGPROTO" = "sheepdog" ]; then
_notrun "image protocol $IMGPROTO does not support large image sizes" _notrun "image protocol $IMGPROTO does not support large image sizes"
fi 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
echo "creating large image" echo "creating large image"
_make_test_img 5000G _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 # currently only qcow2 allows for consistency checks using qemu-img
_supported_fmt qcow2 _supported_fmt qcow2
_supported_proto generic _supported_proto generic
_supported_os Linux
# refcount_bits must be at least 4 so we can create ten internal snapshots # 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) # (1 bit supports none, 2 bits support two, 4 bits support 14)
_unsupported_imgopts 'refcount_bits=\(1\|2\)[^0-9]' _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_fmt generic
_supported_proto generic _supported_proto generic
_supported_os Linux
size=128M size=128M

View File

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

View File

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

View File

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

View File

@ -40,7 +40,6 @@ trap "_cleanup; exit \$status" 0 1 2 3 15
_supported_fmt generic _supported_fmt generic
_supported_proto file _supported_proto file
_supported_os Linux
# Remove once all tests are fixed to use TEST_IMG_FILE # Remove once all tests are fixed to use TEST_IMG_FILE
# correctly and common.rc sets it unconditionally # 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 # actually any format that supports snapshots
_supported_fmt qcow2 _supported_fmt qcow2
_supported_proto generic _supported_proto generic
_supported_os Linux
# Internal snapshots are (currently) impossible with refcount_bits=1 # Internal snapshots are (currently) impossible with refcount_bits=1
_unsupported_imgopts 'refcount_bits=1[^0-9]' _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_fmt qcow qcow2 vmdk qed
_supported_proto generic _supported_proto generic
_unsupported_proto vxhs _unsupported_proto vxhs
_supported_os Linux
_unsupported_imgopts "subformat=monolithicFlat" "subformat=twoGbMaxExtentFlat" _unsupported_imgopts "subformat=monolithicFlat" "subformat=twoGbMaxExtentFlat"
TEST_OFFSETS="0 4294967296" TEST_OFFSETS="0 4294967296"

View File

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

View File

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

View File

@ -42,7 +42,6 @@ trap "_cleanup; exit \$status" 0 1 2 3 15
# Any format that supports snapshots # Any format that supports snapshots
_supported_fmt qcow2 _supported_fmt qcow2
_supported_proto generic _supported_proto generic
_supported_os Linux
TEST_OFFSETS="10485760 4294967296" TEST_OFFSETS="10485760 4294967296"
CLUSTER_SIZE="4096" 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_fmt raw qcow2 qed luks
_supported_proto file sheepdog rbd nfs _supported_proto file sheepdog rbd nfs
_supported_os Linux
echo "=== Creating image" echo "=== Creating image"
echo echo

View File

@ -41,7 +41,6 @@ trap "_cleanup; exit \$status" 0 1 2 3 15
# Currently only qcow2 supports rebasing # Currently only qcow2 supports rebasing
_supported_fmt qcow2 _supported_fmt qcow2
_supported_proto file _supported_proto file
_supported_os Linux
_default_cache_mode "writethrough" _default_cache_mode "writethrough"
_supported_cache_modes "writethrough" "none" _supported_cache_modes "writethrough" "none"
# The refcount table tests expect a certain minimum width for refcount entries # 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_fmt vmdk qcow qcow2 qed
_supported_proto generic _supported_proto generic
_supported_os Linux
size=128M size=128M

View File

@ -42,7 +42,6 @@ trap "_cleanup; exit \$status" 0 1 2 3 15
_supported_fmt qcow2 _supported_fmt qcow2
_supported_proto generic _supported_proto generic
_unsupported_proto vxhs _unsupported_proto vxhs
_supported_os Linux
# Internal snapshots are (currently) impossible with refcount_bits=1 # Internal snapshots are (currently) impossible with refcount_bits=1
_unsupported_imgopts 'refcount_bits=1[^0-9]' _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 # This tests qcow2-specific low-level functionality
_supported_fmt qcow2 _supported_fmt qcow2
_supported_proto file _supported_proto file
_supported_os Linux
CLUSTER_SIZE=65536 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) # This works for any image format (though unlikely to segfault for raw)
_supported_fmt generic _supported_fmt generic
_supported_proto generic _supported_proto generic
_supported_os Linux
echo echo
echo === Prepare image === echo === Prepare image ===

View File

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

View File

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

View File

@ -43,7 +43,6 @@ trap "_cleanup; exit \$status" 0 1 2 3 15
# This tests qcow2-specific low-level functionality # This tests qcow2-specific low-level functionality
_supported_fmt qcow2 _supported_fmt qcow2
_supported_proto file _supported_proto file
_supported_os Linux
# Only qcow2v3 and later supports feature bits # Only qcow2v3 and later supports feature bits
IMGOPTS="compat=1.1" 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_fmt qcow qcow2 vmdk qed
_supported_proto file _supported_proto file
_supported_os Linux
_unsupported_imgopts "subformat=monolithicFlat" \ _unsupported_imgopts "subformat=monolithicFlat" \
"subformat=twoGbMaxExtentFlat" \ "subformat=twoGbMaxExtentFlat" \
"subformat=twoGbMaxExtentSparse" "subformat=twoGbMaxExtentSparse"

View File

@ -38,7 +38,6 @@ trap "_cleanup; exit \$status" 0 1 2 3 15
_supported_fmt qcow2 qed _supported_fmt qcow2 qed
_supported_proto file _supported_proto file
_supported_os Linux
echo echo
echo "== Creating zero size image ==" 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 # Any format supporting backing files
_supported_fmt qcow2 qed _supported_fmt qcow2 qed
_supported_proto file _supported_proto file
_supported_os Linux
size=128M size=128M

View File

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

View File

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

View File

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

View File

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

View File

@ -38,7 +38,6 @@ trap "_cleanup; exit \$status" 0 1 2 3 15
_supported_fmt qcow2 _supported_fmt qcow2
_supported_proto file _supported_proto file
_supported_os Linux
# A compat=0.10 image is created in this test which does not support anything # A compat=0.10 image is created in this test which does not support anything
# other than refcount_bits=16 # other than refcount_bits=16
_unsupported_imgopts 'refcount_bits=\([^1]\|.\([^6]\|$\)\)' _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_fmt generic
_supported_proto file _supported_proto file
_supported_os Linux
# Don't do O_DIRECT on tmpfs # Don't do O_DIRECT on tmpfs
_supported_cache_modes "writeback" "writethrough" "unsafe" _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_fmt qcow2 qcow
_supported_proto file _supported_proto file
_supported_os Linux
echo echo
echo "== Creating single sector image ==" echo "== Creating single sector image =="

View File

@ -38,7 +38,6 @@ trap "_cleanup; exit \$status" 0 1 2 3 15
_supported_fmt qcow2 _supported_fmt qcow2
_supported_proto file _supported_proto file
_supported_os Linux
echo echo
echo "creating too large image (1 EB)" 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 # This tests qocw2-specific low-level functionality
_supported_fmt qcow2 _supported_fmt qcow2
_supported_proto generic _supported_proto generic
_supported_os Linux
IMGOPTS="compat=1.1" IMGOPTS="compat=1.1"
IMG_SIZE=64M 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_fmt qcow qcow2 vmdk qed raw
_supported_proto file _supported_proto file
_supported_os Linux
_unsupported_imgopts "subformat=monolithicFlat" \ _unsupported_imgopts "subformat=monolithicFlat" \
"subformat=twoGbMaxExtentFlat" \ "subformat=twoGbMaxExtentFlat" \
"subformat=twoGbMaxExtentSparse" "subformat=twoGbMaxExtentSparse"

View File

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

View File

@ -32,7 +32,6 @@ status=1 # failure is the default!
_supported_fmt qcow2 _supported_fmt qcow2
_supported_proto file _supported_proto file
_supported_os Linux
# Because anything other than 16 would change the output of query-block # Because anything other than 16 would change the output of query-block
_unsupported_imgopts 'refcount_bits=\([^1]\|.\([^6]\|$\)\)' _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 # This tests qocw2-specific low-level functionality
_supported_fmt qcow2 _supported_fmt qcow2
_supported_proto generic _supported_proto generic
_supported_os Linux
IMGOPTS="compat=1.1" IMGOPTS="compat=1.1"
IMG_SIZE=128K 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_fmt qed qcow qcow2 vmdk
_supported_proto file _supported_proto file
_supported_os Linux
_unsupported_imgopts "subformat=monolithicFlat" "subformat=twoGbMaxExtentFlat" _unsupported_imgopts "subformat=monolithicFlat" "subformat=twoGbMaxExtentFlat"
IMG_SIZE=128K IMG_SIZE=128K

View File

@ -38,7 +38,6 @@ trap "_cleanup; exit \$status" 0 1 2 3 15
_supported_fmt qcow2 _supported_fmt qcow2
_supported_proto file _supported_proto file
_supported_os Linux
do_run_qemu() 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_fmt vpc vmdk vhdx vdi qed qcow2 qcow
_supported_proto file _supported_proto file
_supported_os Linux
IMG_SIZE=64M IMG_SIZE=64M

View File

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

View File

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

View File

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

View File

@ -56,7 +56,6 @@ trap "_cleanup; exit \$status" 0 1 2 3 15
_supported_fmt qcow2 _supported_fmt qcow2
_supported_proto file _supported_proto file
_supported_os Linux
# ${1}: unique identifier for the snapshot filename # ${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_fmt qcow2
_supported_proto file _supported_proto file
_supported_os Linux
# Because anything other than 16 would change the output of qemu_io -c info # Because anything other than 16 would change the output of qemu_io -c info
_unsupported_imgopts 'refcount_bits=\([^1]\|.\([^6]\|$\)\)' _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_fmt qcow2
_supported_proto file nfs _supported_proto file nfs
_supported_os Linux
IMG_SIZE=128K IMG_SIZE=128K

View File

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

View File

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

View File

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

View File

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

View File

@ -38,7 +38,6 @@ trap "_cleanup; exit \$status" 0 1 2 3 15
_supported_fmt qcow2 _supported_fmt qcow2
_supported_proto file nfs _supported_proto file nfs
_supported_os Linux
# Internal snapshots are (currently) impossible with refcount_bits=1 # Internal snapshots are (currently) impossible with refcount_bits=1
_unsupported_imgopts 'refcount_bits=1[^0-9]' _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_fmt raw qcow qcow2 qed vdi vmdk vhdx
_supported_proto generic _supported_proto generic
_supported_os Linux
echo "=== Check qemu-img info output ===" echo "=== Check qemu-img info output ==="
echo echo

View File

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

View File

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

View File

@ -40,7 +40,6 @@ trap "_cleanup; exit \$status" 0 1 2 3 15
# Any format supporting backing files # Any format supporting backing files
_supported_fmt qed qcow qcow2 vmdk _supported_fmt qed qcow qcow2 vmdk
_supported_proto file _supported_proto file
_supported_os Linux
_unsupported_imgopts "subformat=monolithicFlat" "subformat=twoGbMaxExtentFlat" _unsupported_imgopts "subformat=monolithicFlat" "subformat=twoGbMaxExtentFlat"
TEST_IMG_REL=$(basename "$TEST_IMG") 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_fmt qed qcow qcow2 vmdk
_supported_proto file _supported_proto file
_supported_os Linux
_unsupported_imgopts "subformat=monolithicFlat" "subformat=twoGbMaxExtentFlat" _unsupported_imgopts "subformat=monolithicFlat" "subformat=twoGbMaxExtentFlat"
$QEMU_IMG create -f $IMGFMT -b "$TEST_IMG.inexistent" "$TEST_IMG" 2>&1 \ $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 # This tests qcow2-specific low-level functionality
_supported_fmt qcow2 _supported_fmt qcow2
_supported_proto file _supported_proto file
_supported_os Linux
# This test will set refcount_bits on its own which would conflict with the # This test will set refcount_bits on its own which would conflict with the
# manual setting; compat will be overridden as well # manual setting; compat will be overridden as well
_unsupported_imgopts refcount_bits 'compat=0.10' _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_fmt qcow2
_supported_proto generic _supported_proto generic
_unsupported_proto vxhs _unsupported_proto vxhs
_supported_os Linux
TEST_IMG="$TEST_IMG.base" _make_test_img 64M 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_fmt qcow2
_supported_proto file _supported_proto file
_supported_os Linux
# This test relies on refcounts being 64 bits wide (which does not work with # This test relies on refcounts being 64 bits wide (which does not work with
# compat=0.10) # compat=0.10)
_unsupported_imgopts 'refcount_bits=\([^6]\|.\([^4]\|$\)\)' '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_fmt qcow2
_supported_proto file _supported_proto file
_supported_os Linux
_make_test_img 64k _make_test_img 64k

View File

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

View File

@ -44,7 +44,6 @@ get_image_size_on_host()
_supported_fmt qcow2 _supported_fmt qcow2
_supported_proto file _supported_proto file
_supported_os Linux
if [ -z "$TEST_IMG_FILE" ]; then if [ -z "$TEST_IMG_FILE" ]; then
TEST_IMG_FILE=$TEST_IMG 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 # 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) # just part of the filename, so we cannot test protocols which require a prefix)
_supported_proto file _supported_proto file
_supported_os Linux
echo echo
echo '=== Testing plain files ===' echo '=== Testing plain files ==='

View File

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

View File

@ -38,7 +38,6 @@ trap "_cleanup; exit \$status" 0 1 2 3 15
_supported_fmt qcow2 _supported_fmt qcow2
_supported_proto file _supported_proto file
_supported_os Linux
TEST_IMG="$TEST_IMG.base" _make_test_img 64M TEST_IMG="$TEST_IMG.base" _make_test_img 64M
_make_test_img -b "$TEST_IMG.base" _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_fmt qcow qcow2
_supported_proto generic _supported_proto generic
_unsupported_proto vxhs _unsupported_proto vxhs
_supported_os Linux
size=128M size=128M

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -49,7 +49,6 @@ trap "_cleanup; exit \$status" 0 1 2 3 15
_supported_fmt qcow2 qed _supported_fmt qcow2 qed
_supported_proto generic _supported_proto generic
_unsupported_proto vxhs _unsupported_proto vxhs
_supported_os Linux
# Create source disk # Create source disk
TEST_IMG="$TEST_IMG.backing" _make_test_img 1M 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_fmt generic
_supported_proto file _supported_proto file
_supported_os Linux
do_run_qemu() do_run_qemu()
{ {

View File

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

View File

@ -38,7 +38,6 @@ trap "_cleanup; exit \$status" 0 1 2 3 15
_supported_fmt generic _supported_fmt generic
_supported_proto file _supported_proto file
_supported_os Linux
_unsupported_fmt luks _unsupported_fmt luks
TEST_SIZES="5 512 1024 1999 1K 64K 1M" 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 . ./common.filter
_supported_fmt generic _supported_fmt generic
_supported_os Linux
test_ssh=$($QEMU_IMG --help | grep '^Supported formats:.* ssh\( \|$\)') test_ssh=$($QEMU_IMG --help | grep '^Supported formats:.* ssh\( \|$\)')
[ "$test_ssh" = "" ] && _notrun "ssh support required" [ "$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_fmt generic
_supported_proto file _supported_proto file
_supported_os Linux
_unsupported_fmt luks _unsupported_fmt luks
echo echo

View File

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

View File

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

View File

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

View File

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

View File

@ -40,7 +40,6 @@ trap "_cleanup; exit \$status" 0 1 2 3 15
_supported_fmt qcow2 _supported_fmt qcow2
_supported_proto file _supported_proto file
_supported_os Linux
size=64M size=64M
_make_test_img $size _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 # See 178 for more extensive tests across more formats
_supported_fmt qcow2 _supported_fmt qcow2
_supported_proto file _supported_proto file
_supported_os Linux
echo "== Huge file ==" echo "== Huge file =="
echo echo

View File

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

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