Re: [igt-dev] [PATCH i-g-t 4/9] runner/runner_tests: Extract helper for inspecting test result

Petri Latvala
2020-02-14T12:05:37Z

On Wed, Feb 12, 2020 at 03:21:18PM +0200, Arkadiusz Hiler wrote:
> to make this bit of code more readable and to reuse it in the following patch
>
> Signed-off-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>

Reviewed-by: Petri Latvala <petri.latvala@intel.com>

> ---
> runner/runner_tests.c | 30 +++++++++++++++++-------------
> 1 file changed, 17 insertions(+), 13 deletions(-)
>
> diff --git a/runner/runner_tests.c b/runner/runner_tests.c
> index ed30b3f9..dd590f33 100644
> --- a/runner/runner_tests.c
> +++ b/runner/runner_tests.c
> @@ -32,6 +32,16 @@ static const char testdatadir[] = TESTDATA_DIRECTORY;
> /* The total number of test binaries in runner/testdata/ */
> #define NUM_TESTDATA_BINARIES 4
>
> +static const char *igt_get_result(struct json_object *tests, const char* testname)
> +{
> + struct json_object *obj;
> +
> + igt_assert(json_object_object_get_ex(tests, testname, &obj));
> + igt_assert(json_object_object_get_ex(obj, "result", &obj));
> +
> + return json_object_get_string(obj);
> +}
> +
> static void igt_assert_eqstr(const char *one, const char *two)
> {
> if (one == NULL && two == NULL)
> @@ -1432,7 +1442,7 @@ igt_main
>
> igt_subtest("dynamic-subtests-in-testlist") {
> struct execute_state state;
> - struct json_object *results, *obj;
> + struct json_object *results, *tests;
> const char *argv[] = { "runner",
> "--test-list", filename,
> testdatadir,
> @@ -1453,16 +1463,13 @@ igt_main
> igt_assert_f((results = generate_results_json(dirfd)) != NULL,
> "Results parsing failed\n");
>
> - obj = results;
> - igt_assert(json_object_object_get_ex(obj, "tests", &obj));
> + igt_assert(json_object_object_get_ex(results, "tests", &tests));
>
> /* Check that the dynamic subtest we didn't request is not reported */
> - igt_assert(!json_object_object_get_ex(obj, "igt@dynamic@dynamic-subtest@failing", NULL));
> + igt_assert_no_result_for(tests, "igt@dynamic@dynamic-subtest@failing");
>
> /* Check that the dynamic subtest we did request is */
> - igt_assert(json_object_object_get_ex(obj, "igt@dynamic@dynamic-subtest@passing", &obj));
> - igt_assert(json_object_object_get_ex(obj, "result", &obj));
> - igt_assert_eqstr(json_object_get_string(obj), "pass");
> + igt_assert_eqstr(igt_get_result(tests, "igt@dynamic@dynamic-subtest@passing"), "pass");
>
> igt_assert_eq(json_object_put(results), 1);
> }
> @@ -1490,7 +1497,7 @@ igt_main
>
> igt_subtest("dynamic-subtest-failure-should-not-cause-warn") {
> struct execute_state state;
> - struct json_object *results, *obj;
> + struct json_object *results, *tests;
> const char *argv[] = { "runner",
> "-t", "dynamic",
> testdatadir,
> @@ -1507,12 +1514,9 @@ igt_main
> igt_assert_f((results = generate_results_json(dirfd)) != NULL,
> "Results parsing failed\n");
>
> - obj = results;
> - igt_assert(json_object_object_get_ex(obj, "tests", &obj));
> - igt_assert(json_object_object_get_ex(obj, "igt@dynamic@dynamic-subtest@passing", &obj));
> - igt_assert(json_object_object_get_ex(obj, "result", &obj));
> + igt_assert(json_object_object_get_ex(results, "tests", &tests));
>
> - igt_assert_eqstr(json_object_get_string(obj), "pass");
> + igt_assert_eqstr(igt_get_result(tests, "igt@dynamic@dynamic-subtest@passing"), "pass");
>
> igt_assert_eq(json_object_put(results), 1);
> }
> --
> 2.24.1