qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [PATCH 1/2] vhost-user-test: use tmpfs by default


From: Marc-André Lureau
Subject: Re: [Qemu-devel] [PATCH 1/2] vhost-user-test: use tmpfs by default
Date: Thu, 1 Oct 2015 19:09:46 +0200

Reviewed-by: Marc-André Lureau <address@hidden>



On Thu, Oct 1, 2015 at 2:54 PM, Michael S. Tsirkin <address@hidden> wrote:
> Most people don't run make check by default, so they skip vhost-user
> unit tests.  Solve this by using tmpfs instead, unless hugetlbfs is
> specified (using an environment variable).
>
> Signed-off-by: Michael S. Tsirkin <address@hidden>
> ---
>  tests/vhost-user-test.c | 37 +++++++++++++++++++++++++------------
>  1 file changed, 25 insertions(+), 12 deletions(-)
>
> diff --git a/tests/vhost-user-test.c b/tests/vhost-user-test.c
> index 87281b9..5e63cbc 100644
> --- a/tests/vhost-user-test.c
> +++ b/tests/vhost-user-test.c
> @@ -272,17 +272,11 @@ static void chr_read(void *opaque, const uint8_t *buf, 
> int size)
>      g_mutex_unlock(&data_mutex);
>  }
>
> -static const char *init_hugepagefs(void)
> +static const char *init_hugepagefs(const char *path)
>  {
> -    const char *path;
>      struct statfs fs;
>      int ret;
>
> -    path = getenv("QTEST_HUGETLBFS_PATH");
> -    if (!path) {
> -        path = "/hugetlbfs";
> -    }
> -
>      if (access(path, R_OK | W_OK | X_OK)) {
>          g_test_message("access on path (%s): %s\n", path, strerror(errno));
>          return NULL;
> @@ -309,19 +303,31 @@ int main(int argc, char **argv)
>  {
>      QTestState *s = NULL;
>      CharDriverState *chr = NULL;
> -    const char *hugefs = 0;
> +    const char *hugefs;
>      char *socket_path = 0;
>      char *qemu_cmd = 0;
>      char *chr_path = 0;
>      int ret;
> +    char template[] = "/tmp/vhost-test-XXXXXX";
> +    const char *tmpfs;
> +    const char *root;
>
>      g_test_init(&argc, &argv, NULL);
>
>      module_call_init(MODULE_INIT_QOM);
>
> -    hugefs = init_hugepagefs();
> -    if (!hugefs) {
> -        return 0;
> +    tmpfs = mkdtemp(template);
> +    if (!tmpfs) {
> +          g_test_message("mkdtemp on path (%s): %s\n", template, 
> strerror(errno));
> +    }
> +    g_assert(tmpfs);
> +
> +    hugefs = getenv("QTEST_HUGETLBFS_PATH");
> +    if (hugefs) {
> +        root = init_hugepagefs(hugefs);
> +        g_assert(root);
> +    } else {
> +        root = tmpfs;
>      }
>
>      socket_path = g_strdup_printf("/tmp/vhost-%d.sock", getpid());
> @@ -338,7 +344,7 @@ int main(int argc, char **argv)
>      g_cond_init(&data_cond);
>      g_thread_new(NULL, thread_function, NULL);
>
> -    qemu_cmd = g_strdup_printf(QEMU_CMD, hugefs, socket_path);
> +    qemu_cmd = g_strdup_printf(QEMU_CMD, root, socket_path);
>      s = qtest_start(qemu_cmd);
>      g_free(qemu_cmd);
>
> @@ -354,5 +360,12 @@ int main(int argc, char **argv)
>      unlink(socket_path);
>      g_free(socket_path);
>
> +    ret = rmdir(tmpfs);
> +    if (ret != 0) {
> +        g_test_message("unable to rmdir: path (%s): %s\n",
> +                       tmpfs, strerror(errno));
> +    }
> +    g_assert_cmpint(ret, ==, 0);
> +
>      return ret;
>  }
> --
> MST
>
>



-- 
Marc-André Lureau



reply via email to

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