Commit af46a3b2 authored by Christian Schoenebeck's avatar Christian Schoenebeck Committed by Greg Kurz
Browse files

hw/9pfs/9p-synth: added directory for readdir test



This will provide the following virtual files by the 9pfs
synth driver:

  - /ReadDirDir/ReadDirFile99
  - /ReadDirDir/ReadDirFile98
  ...
  - /ReadDirDir/ReadDirFile1
  - /ReadDirDir/ReadDirFile0

This virtual directory and its virtual 100 files will be
used by the upcoming 9pfs readdir tests.

Signed-off-by: default avatarChristian Schoenebeck <qemu_oss@crudebyte.com>
Reviewed-by: default avatarGreg Kurz <groug@kaod.org>
Message-Id: <5408c28c8de25dd575b745cef63bf785305ccef2.1579567020.git.qemu_oss@crudebyte.com>
Signed-off-by: default avatarGreg Kurz <groug@kaod.org>
parent d36a5c22
Loading
Loading
Loading
Loading
+19 −0
Original line number Diff line number Diff line
@@ -578,6 +578,25 @@ static int synth_init(FsContext *ctx, Error **errp)
                                       NULL, v9fs_synth_qtest_flush_write,
                                       ctx);
        assert(!ret);

        /* Directory for READDIR test */
        {
            V9fsSynthNode *dir = NULL;
            ret = qemu_v9fs_synth_mkdir(
                NULL, 0700, QTEST_V9FS_SYNTH_READDIR_DIR, &dir
            );
            assert(!ret);
            for (i = 0; i < QTEST_V9FS_SYNTH_READDIR_NFILES; ++i) {
                char *name = g_strdup_printf(
                    QTEST_V9FS_SYNTH_READDIR_FILE, i
                );
                ret = qemu_v9fs_synth_add_file(
                    dir, 0, name, NULL, NULL, ctx
                );
                assert(!ret);
                g_free(name);
            }
        }
    }

    return 0;
+5 −0
Original line number Diff line number Diff line
@@ -55,6 +55,11 @@ int qemu_v9fs_synth_add_file(V9fsSynthNode *parent, int mode,
#define QTEST_V9FS_SYNTH_LOPEN_FILE "LOPEN"
#define QTEST_V9FS_SYNTH_WRITE_FILE "WRITE"

/* for READDIR test */
#define QTEST_V9FS_SYNTH_READDIR_DIR "ReadDirDir"
#define QTEST_V9FS_SYNTH_READDIR_FILE "ReadDirFile%d"
#define QTEST_V9FS_SYNTH_READDIR_NFILES 100

/* Any write to the "FLUSH" file is handled one byte at a time by the
 * backend. If the byte is zero, the backend returns success (ie, 1),
 * otherwise it forces the server to try again forever. Thus allowing