[PATCH weston 4/7] tests: implement get_test_name()
Quentin Glidic
sardemff7+wayland at sardemff7.net
Tue Feb 7 10:39:38 UTC 2017
On 27/01/2017 17:30, Emilio Pozuelo Monfort wrote:
> From: Pekka Paalanen <pekka.paalanen at collabora.co.uk>
>
> Screenshot tests often want to use the test name for writing out images.
> This is a helper to get the test name without writing it multiple times
> in the source.
>
> Signed-off-by: Pekka Paalanen <pekka.paalanen at collabora.co.uk>
> Reviewed-by: Emilio Pozuelo Monfort <emilio.pozuelo at collabora.co.uk>
> ---
> tests/weston-test-runner.c | 21 +++++++++++++++++++--
> tests/weston-test-runner.h | 12 ++++++++++++
> 2 files changed, 31 insertions(+), 2 deletions(-)
>
> diff --git a/tests/weston-test-runner.c b/tests/weston-test-runner.c
> index b1e89bc2..f197265d 100644
> --- a/tests/weston-test-runner.c
> +++ b/tests/weston-test-runner.c
> @@ -42,6 +42,14 @@ char __attribute__((weak)) *server_parameters="";
>
> extern const struct weston_test __start_test_section, __stop_test_section;
>
> +static const char *test_name_;
> +
> +const char *
> +get_test_name(void)
> +{
> + return test_name_;
> +}
> +
> static const struct weston_test *
> find_test(const char *name)
> {
> @@ -55,8 +63,17 @@ find_test(const char *name)
> }
>
> static void
> -run_test(const struct weston_test *t, void *data)
> +run_test(const struct weston_test *t, void *data, int iteration)
> {
> + char str[512];
Maybe a little comment that this will always be around because this
function never returns? (The "never returns" comment is easily missed
since it’s in the caller.)
> +
> + if (data) {
Isn’t that supposed to be testing "iteration" instead?
With that fixed (or explained):
Reviewed-by: Quentin Glidic <sardemff7+git at sardemff7.net>
Thanks,
> + snprintf(str, sizeof(str), "%s[%d]", t->name, iteration);
> + test_name_ = str;
> + } else {
> + test_name_ = t->name;
> + }
> +
> t->run(data);
> exit(EXIT_SUCCESS);
> }
> @@ -83,7 +100,7 @@ exec_and_report_test(const struct weston_test *t, void *test_data, int iteration
> assert(pid >= 0);
>
> if (pid == 0)
> - run_test(t, test_data); /* never returns */
> + run_test(t, test_data, iteration); /* never returns */
>
> if (waitid(P_ALL, 0, &info, WEXITED)) {
> fprintf(stderr, "waitid failed: %m\n");
> diff --git a/tests/weston-test-runner.h b/tests/weston-test-runner.h
> index a4436919..21a059d6 100644
> --- a/tests/weston-test-runner.h
> +++ b/tests/weston-test-runner.h
> @@ -80,4 +80,16 @@ struct weston_test {
> #define TEST_P(name, data) ARG_TEST(name, 0, data)
> #define FAIL_TEST_P(name, data) ARG_TEST(name, 1, data)
>
> +/**
> + * Get the test name string with counter
> + *
> + * \return The test name. For an iterated test, e.g. defined with TEST_P(),
> + * the name has a '[%d]' suffix to indicate the iteration.
> + *
> + * This is only usable from code paths inside TEST(), TEST_P(), etc.
> + * defined functions.
> + */
> +const char *
> +get_test_name(void);
> +
> #endif
>
--
Quentin “Sardem FF7” Glidic
More information about the wayland-devel
mailing list