qemu-block
[Top][All Lists]
Advanced

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

Re: [PATCH 3/6] tests/hd-geo-test: Skip test when images can not be crea


From: Alex Bennée
Subject: Re: [PATCH 3/6] tests/hd-geo-test: Skip test when images can not be created
Date: Fri, 22 Nov 2019 16:28:33 +0000
User-agent: mu4e 1.3.5; emacs 27.0.50

Thomas Huth <address@hidden> writes:

> In certain environments like restricted containers, we can not create
> huge test images. To be able to use "make check" in such container
> environments, too, let's skip the hd-geo-test instead of failing when
> the test images could not be created.
>
> Signed-off-by: Thomas Huth <address@hidden>
> ---
>  tests/hd-geo-test.c | 12 +++++++++++-
>  1 file changed, 11 insertions(+), 1 deletion(-)
>
> diff --git a/tests/hd-geo-test.c b/tests/hd-geo-test.c
> index 7e86c5416c..a249800544 100644
> --- a/tests/hd-geo-test.c
> +++ b/tests/hd-geo-test.c
> @@ -34,8 +34,13 @@ static char *create_test_img(int secs)
>      fd = mkstemp(template);
>      g_assert(fd >= 0);
>      ret = ftruncate(fd, (off_t)secs * 512);
> -    g_assert(ret == 0);
>      close(fd);
> +
> +    if (ret) {
> +        free(template);
> +        template = NULL;
> +    }
> +
>      return template;
>  }
>  
> @@ -934,6 +939,10 @@ int main(int argc, char **argv)
>      for (i = 0; i < backend_last; i++) {
>          if (img_secs[i] >= 0) {
>              img_file_name[i] = create_test_img(img_secs[i]);
> +            if (!img_file_name[i]) {
> +                g_test_message("Could not create test images.");
> +                goto test_add_done;
> +            }
>          } else {
>              img_file_name[i] = NULL;
>          }
> @@ -965,6 +974,7 @@ int main(int argc, char **argv)
>                         "skipping hd-geo/override/* tests");
>      }
>  
> +test_add_done:
>      ret = g_test_run();

It does seem a bit odd to call g_test_run if we have explicitly not set
any up. Personally I'd hoist all the test creation into a new function
so you could do:

  if (setup_images()) {
     setup_tests();
     ret = run_tests();
  } else {
     ret = 0; /* pass if we have no images */
  }

  cleanup_images();

but that's just me going above and beyond to avoid goto's ;-)

Reviewed-by: Alex Bennée <address@hidden>

>  
>      for (i = 0; i < backend_last; i++) {


-- 
Alex Bennée



reply via email to

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