aboutsummaryrefslogtreecommitdiff
path: root/tests/qtest/libqos
diff options
context:
space:
mode:
authorChristian Schoenebeck <qemu_oss@crudebyte.com>2020-10-08 20:34:56 +0200
committerChristian Schoenebeck <qemu_oss@crudebyte.com>2020-10-19 14:25:40 +0200
commit051f0e5be12b2760d7fb2095b864b26ffe21f6de (patch)
tree25dd0a1bc6a9b16769fc19055cf7aa89ee2fa813 /tests/qtest/libqos
parent3a565c641a5c50bd6d0cb4df881b607a279505f6 (diff)
tests/9pfs: wipe local 9pfs test directory
Before running the first 9pfs test case, make sure the test directory for running the 9pfs 'local' tests on is entirely empty. For that reason simply delete the test directory (if any) before (re)creating it on test suite startup. Note: The preferable precise behaviour would be the test directory only being wiped once *before* a test suite run. Right now the test directory is also wiped at the *end* of a test suite run because libqos is calling the virtio_9p_register_nodes() callback for some reason also when a test suite completed. This is suboptimal as developers cannot immediately see what files and directories the 9pfs local tests created precisely after the test suite completed. But fortunately the test directory is not wiped if some test failed. So it is probably not worth it drilling another hole into libqos for this issue. Signed-off-by: Christian Schoenebeck <qemu_oss@crudebyte.com> Message-Id: <b30776ea3289dc40dabc7d0063d825d21d9a65bf.1602182956.git.qemu_oss@crudebyte.com> Signed-off-by: Christian Schoenebeck <qemu_oss@crudebyte.com>
Diffstat (limited to 'tests/qtest/libqos')
-rw-r--r--tests/qtest/libqos/virtio-9p.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/tests/qtest/libqos/virtio-9p.c b/tests/qtest/libqos/virtio-9p.c
index ee331166de..8ee2a134bc 100644
--- a/tests/qtest/libqos/virtio-9p.c
+++ b/tests/qtest/libqos/virtio-9p.c
@@ -53,6 +53,18 @@ static void create_local_test_dir(void)
g_assert((st.st_mode & S_IFMT) == S_IFDIR);
}
+/* Deletes directory previously created by create_local_test_dir(). */
+static void remove_local_test_dir(void)
+{
+ g_assert(local_test_path != NULL);
+ char *cmd = g_strdup_printf("rm -r '%s'\n", local_test_path);
+ int res = system(cmd);
+ if (res < 0) {
+ /* ignore error, dummy check to prevent compiler error */
+ }
+ g_free(cmd);
+}
+
static void virtio_9p_cleanup(QVirtio9P *interface)
{
qvirtqueue_cleanup(interface->vdev->bus, interface->vq, alloc);
@@ -230,6 +242,7 @@ static void virtio_9p_register_nodes(void)
/* make sure test dir for the 'local' tests exists and is clean */
init_local_test_path();
+ remove_local_test_dir();
create_local_test_dir();
QPCIAddress addr = {