One more thing, If Vaibhav has provided you this source code and you
modified then put Vaibhav's name alongwith your name as Copyright info.

On Thu, 26 Mar 2020, 23:10 Aditya Upadhyay, <aadit0...@gmail.com> wrote:

>
>
> On Thu, 26 Mar 2020, 22:59 Eshan dhawan, <eshandhawa...@gmail.com> wrote:
>
>> ---
>>  testsuites/psxtests/psxfenv01/init.c        | 87 ++++++++++++++++-----
>>  testsuites/psxtests/psxfenv01/psxfenv01.doc |  9 ++-
>>  testsuites/psxtests/psxfenv01/psxfenv01.scn |  4 -
>>  3 files changed, 76 insertions(+), 24 deletions(-)
>>
>> diff --git a/testsuites/psxtests/psxfenv01/init.c
>> b/testsuites/psxtests/psxfenv01/init.c
>> index cdb0fa596e..158816888d 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);
>> +    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);
>> +    /* 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);
>> +    if ( r ) {
>> +      printf( "fetestexcept ==> 0x%x\n", r );
>> +    }
>>      rtems_test_assert( r == 0 );
>>
>> -    /* Test 'FE_DIVBYZERO' */
>> -    puts( "Divide by zero and confirm fetestexcept()" );
>> +    /* Test 'FE_DIVBYZERO'
>> +     *Divide by zero and confirm fetestexcept() */
>>      a = 0.0;
>>      b = 1.0;
>>      c = b/a;
>>      (void) c;
>> +    /* Test fegetexceptflag() and fesetexceptflag() */
>> +    r = fegetexceptflag( &excepts, FE_ALL_EXCEPT );
>> +    if ( r ) {
>> +      printf( "fegetexceptflag ==> 0x%x\n", r );
>> +    }
>> +    rtems_test_assert( r == 0 );
>>
>> -    fegetexceptflag(&excepts,FE_ALL_EXCEPT);
>> +    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
>> +
>> +
>>
>
> Just remove this one unnecessary space after fesetround. Otherwise It
> looks good.
>
>
>>  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