On 20 November 2014 12:43, Stuart Haslam <[email protected]> wrote:

> Running "make check" from the top level currently does not detect test
> failures as the individual test applications report an exit status of 0
> even when failures occur.
>
> Stop using CU_get_error() as it reports framework errors rather than
> test / suite failures, and the CU_cleanup_registry() clears the error
> anyway. Instead exit with a failure code on framework errors, and only
> exit with 0 if no tests or test suite init/cleanup functions failed.
>
> Signed-off-by: Stuart Haslam <[email protected]>
>

Reviewed-and-tested-by: Mike Holmes <[email protected]>


> ---
> Change in v2: print to stderr on framework errors
>
>  test/cunit/odp_init.c  | 38 ++++++++++++++++++++++++++------------
>  test/cunit/odp_queue.c | 31 +++++++++++++++++++++----------
>  2 files changed, 47 insertions(+), 22 deletions(-)
>
> diff --git a/test/cunit/odp_init.c b/test/cunit/odp_init.c
> index 88e6235..07002df 100644
> --- a/test/cunit/odp_init.c
> +++ b/test/cunit/odp_init.c
> @@ -31,26 +31,40 @@ static int finalise(void)
>         return 0;
>  }
>
> -int main(void)
> +static int register_tests(void)
>  {
>         CU_pSuite ptr_suite = NULL;
> +
>         /* initialize the CUnit test registry */
>         if (CUE_SUCCESS != CU_initialize_registry())
> -               return CU_get_error();
> -       /* add a suite to the registry */
> +               return -1;
> +
> +       /* add the tests to the queue suite */
>         ptr_suite = CU_add_suite(__FILE__, init, finalise);
> -       if (NULL == ptr_suite) {
> -               CU_cleanup_registry();
> -               return CU_get_error();
> -       }
> -       /* add the tests to the suite */
> -       if (NULL == CU_ADD_TEST(ptr_suite, test_odp_init_global)) {
> -               CU_cleanup_registry();
> -               return CU_get_error();
> +       if (NULL == ptr_suite)
> +               return -1;
> +
> +       if (NULL == CU_ADD_TEST(ptr_suite, test_odp_init_global))
> +               return -1;
> +
> +       return 0;
> +}
> +
> +int main(void)
> +{
> +       int ret;
> +
> +       if (register_tests() != 0) {
> +               fprintf(stderr, "%s: framework error: %s\n",
> +                       __FILE__, CU_get_error_msg());
> +               exit(EXIT_FAILURE);
>         }
> +
>         /* Run all tests using the CUnit Basic interface */
>         CU_basic_set_mode(CU_BRM_VERBOSE);
>         CU_basic_run_tests();
> +       ret = (CU_get_number_of_failure_records() != 0);
>         CU_cleanup_registry();
> -       return CU_get_error();
> +
> +       return ret;
>  }
> diff --git a/test/cunit/odp_queue.c b/test/cunit/odp_queue.c
> index 4d233e0..46e7a2e 100644
> --- a/test/cunit/odp_queue.c
> +++ b/test/cunit/odp_queue.c
> @@ -129,29 +129,40 @@ static int finalize(void)
>         return 0;
>  }
>
> -int main(void)
> +static int register_tests(void)
>  {
>         CU_pSuite ptr_suite = NULL;
>
>         /* initialize the CUnit test registry */
>         if (CUE_SUCCESS != CU_initialize_registry())
> -               return CU_get_error();
> +               return -1;
>
>         /* add the tests to the queue suite */
>         ptr_suite = CU_add_suite(__FILE__, init, finalize);
> -       if (NULL == ptr_suite) {
> -               CU_cleanup_registry();
> -               return CU_get_error();
> -       }
> +       if (NULL == ptr_suite)
> +               return -1;
>
> -       if (NULL == CU_ADD_TEST(ptr_suite, test_odp_queue_sunnyday)) {
> -               CU_cleanup_registry();
> -               return CU_get_error();
> +       if (NULL == CU_ADD_TEST(ptr_suite, test_odp_queue_sunnyday))
> +               return -1;
> +
> +       return 0;
> +}
> +
> +int main(void)
> +{
> +       int ret;
> +
> +       if (register_tests() != 0) {
> +               fprintf(stderr, "%s: framework error: %s\n",
> +                       __FILE__, CU_get_error_msg());
> +               exit(EXIT_FAILURE);
>         }
>
>         /* Run all tests using the CUnit Basic interface */
>         CU_basic_set_mode(CU_BRM_VERBOSE);
>         CU_basic_run_tests();
> +       ret = (CU_get_number_of_failure_records() != 0);
>         CU_cleanup_registry();
> -       return CU_get_error();
> +
> +       return ret;
>  }
> --
> 2.1.1
>
>
>
> _______________________________________________
> lng-odp mailing list
> [email protected]
> http://lists.linaro.org/mailman/listinfo/lng-odp
>



-- 
*Mike Holmes*
Linaro  Sr Technical Manager
LNG - ODP
_______________________________________________
lng-odp mailing list
[email protected]
http://lists.linaro.org/mailman/listinfo/lng-odp

Reply via email to