On Fri, Aug 25, 2017 at 9:05 AM, Gedare Bloom <ged...@rtems.org> wrote:
> Merge this with the previous commits to only provide 1 single commit > adding this new test. > > On Wed, Aug 23, 2017 at 3:35 PM, Aditya Upadhyay <aadit0...@gmail.com> > wrote: > > --- > > testsuites/psxtests/Makefile.am | 5 -- > > testsuites/psxtests/configure.ac | 5 -- > > testsuites/psxtests/psxinttypes01/init.c | 66 > +++++++++++++++++++--- > > .../psxtests/psxinttypes01/psxinttypes01.scn | 8 +++ > > 4 files changed, 66 insertions(+), 18 deletions(-) > > > > diff --git a/testsuites/psxtests/Makefile.am b/testsuites/psxtests/ > Makefile.am > > index cda0061..5d3d41d 100644 > > --- a/testsuites/psxtests/Makefile.am > > +++ b/testsuites/psxtests/Makefile.am > > @@ -59,11 +59,6 @@ _SUBDIRS += psxintrcritical01 > > _SUBDIRS += psxitimer > > endif > > _SUBDIRS += psxinttypes01 > > -_SUBDIRS += psxinttypes02 > > -_SUBDIRS += psxinttypes03 > > -_SUBDIRS += psxinttypes04 > > -_SUBDIRS += psxinttypes05 > > -_SUBDIRS += psxinttypes06 > > _SUBDIRS += psxkey01 > > _SUBDIRS += psxkey02 > > _SUBDIRS += psxkey03 > > diff --git a/testsuites/psxtests/configure.ac b/testsuites/psxtests/ > configure.ac > > index dd5f23f..b2b00b7 100644 > > --- a/testsuites/psxtests/configure.ac > > +++ b/testsuites/psxtests/configure.ac > > @@ -163,11 +163,6 @@ psximfs01/Makefile > > psximfs02/Makefile > > psxintrcritical01/Makefile > > psxinttypes01/Makefile > > -psxinttypes02/Makefile > > -psxinttypes03/Makefile > > -psxinttypes04/Makefile > > -psxinttypes05/Makefile > > -psxinttypes06/Makefile > > psxitimer/Makefile > > psxkey01/Makefile > > psxkey02/Makefile > > diff --git a/testsuites/psxtests/psxinttypes01/init.c > b/testsuites/psxtests/psxinttypes01/init.c > > index ad41a6d..72f036a 100644 > > --- a/testsuites/psxtests/psxinttypes01/init.c > > +++ b/testsuites/psxtests/psxinttypes01/init.c > > @@ -1,5 +1,6 @@ > > /* > > - * This is the test for inttypes imaxabs method. > > + * This is the test for inttypes library. It covers these functions : > > + * imaxabs(), imaxdiv(), strtoimax(), strtoumax(), wcstoimax(), > wcstoumax(). > > */ > > > > #ifdef HAVE_CONFIG_H > > @@ -11,8 +12,6 @@ > > #include <rtems/test.h> > > #include <stdlib.h> > > #include <stdio.h> > > -#include <bsp.h> > > -#include <stdint.h> > > #include <errno.h> > > #include <tmacros.h> > > > > @@ -32,11 +31,63 @@ rtems_task Init( > > { > > rtems_print_printer_printf(&rtems_test_printer); > > rtems_test_begin(); > > - > > - intmax_t a = -1234; > > > > - intmax_t b = imaxabs(a); > > - printf( "imaxabs_value = %jd\n", b); > > + char* endptr, *nptr; > > + > > + uintmax_t j, k; > > + > > + int base = 10; > > + rtems_test_assert (base == EINVAL); > I don't know why this is being asserted. > > > + > > + wchar_t *nptr1, *endptr1; > > + > > + intmax_t m, n; > > + > > + nptr1 = L"10110134932"; > > + nptr = "20690239864abc"; > > + > > + /* Test for wcstoimax */ > > + > > + m = wcstoimax(nptr1, &endptr1, base); > > + rtems_test_assert (m == ERANGE); > > + rtems_test_assert (m == EINVAL); > > + > I don't understand these two asserts, Perhaps you meant to check errno? > > Is it possible to check the correctness of the return value 'm' in an > rtems_test_assert() to automate verification of the return? > > I don't see how both of those assert's would ever pass. m cannot equal both those values. Is it "m == ERANGE || m == EINVAL"? Don't we know the single error case it is trying to exercise? > These same comments apply to the other tests below. > > You should also add some other boundary condition tests, e.g., NULL > endptr, base != 10, and some invalid cases too. > > > + printf( "wcstoimax = %jd\n", m ); > > + > > + /* test for strtoumax */ > > + > > + j = strtoumax (nptr, &endptr, base); > > + rtems_test_assert (j == ERANGE); > > + rtems_test_assert (j == EINVAL); > > + > > + printf( "strtoumax = %ju ( base %d )\n", j, base ); > > + printf( "Stopped scan at %s\n\n", endptr ); > > + > > + /*test for wcstoumax */ > > + > > + k = wcstoumax (nptr1, &endptr1, base); > > + rtems_test_assert (k == ERANGE); > > + rtems_test_assert (k == EINVAL); > > + > > + printf( "wcstoumax = %ju\n", k ); > > + > > + /*Test for imaxdiv */ > > + > > + imaxdiv_t retrival = imaxdiv ( 27, 4 ); > > + printf( "imax div value = %jd\n", retrival.rem ); > > + > > + /*Test for imaxabs */ > > + > > + printf( "imaxabs_value = %jd\n", imaxabs (-1234)); > > + > > + /*Test for strtoimax */ > > + > > + n = strtoimax ("11111111", &endptr, 2); > > + rtems_test_assert (n == ERANGE); > > + rtems_test_assert (n == EINVAL); > > + > > + printf( "strtoimax value = %jd\n", n); > > + > > > > rtems_test_end(); > > exit( 0 ); > > @@ -55,4 +106,3 @@ rtems_task Init( > > > > #define CONFIGURE_INIT > > #include <rtems/confdefs.h> > > - > > diff --git a/testsuites/psxtests/psxinttypes01/psxinttypes01.scn > b/testsuites/psxtests/psxinttypes01/psxinttypes01.scn > > index 15051e1..47a5416 100644 > > --- a/testsuites/psxtests/psxinttypes01/psxinttypes01.scn > > +++ b/testsuites/psxtests/psxinttypes01/psxinttypes01.scn > > @@ -1,3 +1,11 @@ > > *** BEGIN OF TEST PSXINTTYPE 01 *** > > +wcstoimax = 10110134932 > > +strtoumax = 20690239864 ( base 10 ) > > +Stopped scan at abc > > + > > +wcstoumax = 10110134932 > > +imax div value = 3 > > imaxabs_value = 1234 > > +strtoimax value = 255 > > *** END OF TEST PSXINTTYPE 01 *** > > + > > -- > > 2.7.4 > > > _______________________________________________ > devel mailing list > devel@rtems.org > http://lists.rtems.org/mailman/listinfo/devel >
_______________________________________________ devel mailing list devel@rtems.org http://lists.rtems.org/mailman/listinfo/devel