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