mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-07 17:53:56 -06:00
tests: virtio-9p: use the synth backend
The purpose of virtio-9p-test is to test the virtio-9p device, especially the 9p server state machine. We don't really care what fsdev backend we're using. Moreover, if we want to be able to test the flush request or a device reset with in-flights I/O, it is close to impossible to achieve with a physical backend because we cannot ask it reliably to put an I/O on hold at a specific point in time. Fortunately, we can do that with the synthetic backend, which allows to register callbacks on read/write accesses to a specific file. This will be used by a later patch to test the 9P flush request. The walk request test is converted to using the synth backend. Signed-off-by: Greg Kurz <groug@kaod.org> Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
This commit is contained in:
parent
60b1fa9de1
commit
2893ddd598
3 changed files with 26 additions and 16 deletions
|
@ -19,6 +19,7 @@
|
|||
#include "qemu/rcu.h"
|
||||
#include "qemu/rcu_queue.h"
|
||||
#include "qemu/cutils.h"
|
||||
#include "sysemu/qtest.h"
|
||||
|
||||
/* Root node for synth file system */
|
||||
static V9fsSynthNode synth_root = {
|
||||
|
@ -527,6 +528,21 @@ static int synth_init(FsContext *ctx, Error **errp)
|
|||
|
||||
/* Mark the subsystem is ready for use */
|
||||
synth_fs = 1;
|
||||
|
||||
if (qtest_enabled()) {
|
||||
V9fsSynthNode *node = NULL;
|
||||
int i, ret;
|
||||
|
||||
/* Directory hierarchy for WALK test */
|
||||
for (i = 0; i < P9_MAXWELEM; i++) {
|
||||
char *name = g_strdup_printf(QTEST_V9FS_SYNTH_WALK_FILE, i);
|
||||
|
||||
ret = qemu_v9fs_synth_mkdir(node, 0700, name, &node);
|
||||
assert(!ret);
|
||||
g_free(name);
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue