qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH v3 09/11] tests/9pfs: wipe local 9pfs test directory


From: Christian Schoenebeck
Subject: Re: [PATCH v3 09/11] tests/9pfs: wipe local 9pfs test directory
Date: Thu, 08 Oct 2020 14:26:28 +0200

On Freitag, 2. Oktober 2020 18:15:05 CEST Christian Schoenebeck wrote:
> 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.
> 
> Signed-off-by: Christian Schoenebeck <qemu_oss@crudebyte.com>
> ---
>  tests/qtest/libqos/virtio-9p.c | 13 +++++++++++++
>  1 file changed, 13 insertions(+)
> 
> diff --git a/tests/qtest/libqos/virtio-9p.c b/tests/qtest/libqos/virtio-9p.c
> index 1bada47af1..41a7c2baaa 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);
> @@ -220,6 +232,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 = {
>          .devfn = QPCI_DEVFN(4, 0),
>      };
>     
>      QOSGraphEdgeOptions opts = {
>          .before_cmd_line = "-fsdev synth,id=fsdev0",
>      };
>     
>      /* virtio-9p-device */
>      opts.extra_device_opts = str_simple,
>      qos_node_create_driver("virtio-9p-device", virtio_9p_device_create);
>      qos_node_consumes("virtio-9p-device", "virtio-bus", &opts);
>      qos_node_produces("virtio-9p-device", "virtio");
>      qos_node_produces("virtio-9p-device", "virtio-9p");
>     
>      /* virtio-9p-pci */
>      opts.extra_device_opts = str_addr;
>      add_qpci_address(&opts, &addr);
>      qos_node_create_driver("virtio-9p-pci", virtio_9p_pci_create);
>      qos_node_consumes("virtio-9p-pci", "pci-bus", &opts);
>      qos_node_produces("virtio-9p-pci", "pci-device");
>      qos_node_produces("virtio-9p-pci", "virtio");
>      qos_node_produces("virtio-9p-pci", "virtio-9p");
> }
> 
> libqos_init(virtio_9p_register_nodes);

I wonder why libqos is calling virtio_9p_register_nodes() again after all 
qtests ended.

That's somewhat suboptimal here, as it causes remove_local_test_dir() to be 
called again after all qtests completed. My intention was actually only to 
wipe the "qtest-9p-local" test directory at the *start* of the test suite run. 
Not at the end of the test suite. Because it would allow developers to look at 
the actual dirs/files created after the tests completed.

I could of course misuse and add a dedicated "wipedir" test as workaround, but 
that OTOH would break the option of running individual tests with the -p CL 
switch.

Best regards,
Christian Schoenebeck





reply via email to

[Prev in Thread] Current Thread [Next in Thread]