I have modified the test to print nothing if the test passes 
In this test I have removed all the compulsory print statements that described 
the cases with comments so it would be easy to world on and will not print 
anything on the screen when the test passes 

> On 23-Mar-2020, at 1:41 AM, Eshan dhawan <eshandhawa...@gmail.com> wrote:
> 
> ---
> testsuites/psxtests/psxfenv01/init.c        | 105 +++++++++++++++-----
> testsuites/psxtests/psxfenv01/psxfenv01.doc |   9 +-
> testsuites/psxtests/psxfenv01/psxfenv01.scn |   4 -
> 3 files changed, 85 insertions(+), 33 deletions(-)
> 
> diff --git a/testsuites/psxtests/psxfenv01/init.c 
> b/testsuites/psxtests/psxfenv01/init.c
> index cdb0fa596e..b088209d7f 100644
> --- a/testsuites/psxtests/psxfenv01/init.c
> +++ b/testsuites/psxtests/psxfenv01/init.c
> @@ -46,11 +46,12 @@
> #include <string.h>
> #include <rtems/test.h>
> #include <tmacros.h>
> +#include <float.h>
> 
> const char rtems_test_name[] = "PSXFENV 01";
> 
> /* forward declarations to avoid warnings */
> -rtems_task Init(rtems_task_argument ignored);
> +rtems_task Init( rtems_task_argument ignored );
> 
> /* Test Function Begins */
> rtems_task Init(rtems_task_argument ignored)
> @@ -62,40 +63,90 @@ rtems_task Init(rtems_task_argument ignored)
> 
>   /*
>    * 'FE_ALL_EXCEPT' will be defined only when 'feclearexcept()',
> -   * 'fegetexceptflag()', 'feraiseexcept()', 'fesetexceptflag()' and
> -   * 'fetestexcept()' functions are supported by the architecture.
> +   * fegetexceptflag() , feraiseexcept(), fesetexceptflag() and
> +   * fetestexcept() functions are supported by the architecture.
>    * Hence their testcases can be wrapped under #ifdef and #endif.
>    */
>   #ifdef FE_ALL_EXCEPT /* floating-point exceptions */
> -    puts( "fesetenv(FE_DFL_ENV)." );
> -    r = fesetenv(FE_DFL_ENV);
> -    if (r)
> -      printf("fesetenv ==> %d\n", r);
> -    rtems_test_assert( r == 0 );
> -
> -    /* Test 'feclearexcept()' and 'fetestexcept()' in one go. */
> -    puts( "feclearexcept(FE_ALL_EXCEPT)." );
> -    r = feclearexcept(FE_ALL_EXCEPT);
> -    if (r)
> -      printf("feclearexcept ==> 0x%x\n", r);
> -    rtems_test_assert( r == 0 );
> -
> -    r = fetestexcept( FE_ALL_EXCEPT );
> -    if (r)
> -      printf("fetestexcept ==> 0x%x\n", r);
> -    rtems_test_assert( r == 0 );
> -
> -    /* Test 'FE_DIVBYZERO' */
> -    puts( "Divide by zero and confirm fetestexcept()" );
> +    r = fesetenv ( FE_DFL_ENV );
> +    if ( r ) {
> +      printf( "fesetenv ==> %d\n", r);
> +    }
> +    rtems_test_assert ( r == 0 );
> +
> +    /* Test feclearexcept() and fetestexcept() in one go. */
> +    r = feclearexcept ( FE_ALL_EXCEPT );
> +    if ( r ) {
> +      printf( "feclearexcept ==> 0x%x\n", r );
> +    }    
> +    rtems_test_assert ( r == 0 );
> +
> +    r = fetestexcept ( FE_ALL_EXCEPT );
> +    if ( r ) {
> +      printf( "fetestexcept ==> 0x%x\n", r );
> +    }
> +    rtems_test_assert ( r == 0 );
> +
> +    /* Test 'FE_DIVBYZERO' 
> +     *Divide by zero and confirm fetestexcept() */
>     a = 0.0;
>     b = 1.0;
>     c = b/a;
>     (void) c;
> -
> -    fegetexceptflag(&excepts,FE_ALL_EXCEPT);
> -
> +    /* Test fegetexceptflag() and fesetexceptflag() */
> +    r = fegetexceptflag ( &excepts, FE_ALL_EXCEPT );
> +    if ( r ) {
> +      printf( "fegetexceptflag ==> 0x%x\n", r );
> +    }
> +    rtems_test_assert ( r == 0 );
> +
> +    r = fesetexceptflag ( &excepts, FE_ALL_EXCEPT );
> +    if ( r ) {
> +      printf( "fesetexceptflag ==> 0x%x\n", r );
> +    }
> +    rtems_test_assert ( r == 0 );
> +
> +    /* Test for fegetround() and fesetround()
> +     * They have four main macros to be tested separated by ifdef
> +     * Since not all architectures support them 
> +     * The test case gets and sets the rounding directions */
> +#ifdef FE_TONEAREST
> +    rtems_test_assert ( fegetround() == FE_TONEAREST );   
> +#endif
> +#ifdef FE_TOWARDZERO    
> +  r = fesetround ( FE_TOWARDZERO );
> +  if ( r ) {
> +      printf( "fesetround ==> 0x%x\n", r );     
> +    } 
> +  rtems_test_assert ( r == 0 );
> +  rtems_test_assert ( fegetround() == FE_TOWARDZERO );
> +#endif
> +#ifdef FE_DOWNWARD
> +  r = fesetround ( FE_DOWNWARD );
> +  if ( r ) {
> +      printf( "fesetround ==> 0x%x\n", r );     
> +    } 
> +  rtems_test_assert ( r == 0 );
> +  rtems_test_assert ( fegetround() == FE_DOWNWARD );
> +#endif
> +#ifdef FE_UPWARD
> +  r = fesetround ( FE_UPWARD );
> +  if ( r ) {
> +      printf( "fesetround ==> 0x%x\n", r );     
> +    }   
> +  rtems_test_assert ( r == 0 );
> +  rtems_test_assert ( fegetround() == FE_UPWARD );
> +#endif
> +#ifdef FE_TONEAREST
> +  r = fesetround ( FE_TONEAREST );
> +  if ( r ) {
> +      printf( "fesetround ==> 0x%x\n", r );
> +    }     
> +  rtems_test_assert ( r == 0 );
> +#endif
> +  
> #ifdef FE_DIVBYZERO
> -    r = feraiseexcept(FE_DIVBYZERO);
> +    r = feraiseexcept ( FE_DIVBYZERO ) ;
>     rtems_test_assert( fetestexcept( FE_DIVBYZERO ) );
> #endif
> 
> diff --git a/testsuites/psxtests/psxfenv01/psxfenv01.doc 
> b/testsuites/psxtests/psxfenv01/psxfenv01.doc
> index 3aa7757496..0238372013 100644
> --- a/testsuites/psxtests/psxfenv01/psxfenv01.doc
> +++ b/testsuites/psxtests/psxfenv01/psxfenv01.doc
> @@ -1,4 +1,4 @@
> -#  COPYRIGHT (c) 2019
> +#  COPYRIGHT (c) 2019
> #  On-Line Applications Research Corporation (OAR).
> #
> # SPDX-License-Identifier: BSD-2-Clause
> @@ -12,8 +12,13 @@ Directives:
>   fesetenv
>   feclearexcept
>   fetestexcept
> -  texceptflag
>   feraiseexcept
> +  fesetexeptflag
> +  fegetexeptflag
> +  fegetround
> +  fesetround
> +  
> +
> 
> Concepts:
> 
> diff --git a/testsuites/psxtests/psxfenv01/psxfenv01.scn 
> b/testsuites/psxtests/psxfenv01/psxfenv01.scn
> index 21395e6712..6ea3bc255e 100644
> --- a/testsuites/psxtests/psxfenv01/psxfenv01.scn
> +++ b/testsuites/psxtests/psxfenv01/psxfenv01.scn
> @@ -1,7 +1,3 @@
> *** BEGIN OF TEST PSXFENV 01 ***
> -fesetenv(FE_DFL_ENV).
> -feclearexcept(FE_ALL_EXCEPT).
> -Divide by zero and confirm fetestexcept()
> -
> *** END OF TEST PSXFENV 01 ***
> 
> -- 
> 2.17.1
> 
_______________________________________________
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel

Reply via email to