Patch v3 is correct? Or i need to do any more changes? On Fri, Jun 14, 2019, 1:00 AM Vaibhav Gupta <vaibhavgupt...@gmail.com> wrote:
> --- > testsuites/psxtests/Makefile.am | 7 + > testsuites/psxtests/configure.ac | 1 + > testsuites/psxtests/psxinttypes01/init.c | 233 ++++++++++++++++++ > .../psxtests/psxinttypes01/psxinttypes01.doc | 43 ++++ > .../psxtests/psxinttypes01/psxinttypes01.scn | 44 ++++ > 5 files changed, 328 insertions(+) > create mode 100644 testsuites/psxtests/psxinttypes01/init.c > create mode 100644 testsuites/psxtests/psxinttypes01/psxinttypes01.doc > create mode 100644 testsuites/psxtests/psxinttypes01/psxinttypes01.scn > > diff --git a/testsuites/psxtests/Makefile.am > b/testsuites/psxtests/Makefile.am > index 1e354c0df7..59c9f2085b 100755 > --- a/testsuites/psxtests/Makefile.am > +++ b/testsuites/psxtests/Makefile.am > @@ -523,6 +523,13 @@ psxintrcritical01_CPPFLAGS = $(AM_CPPFLAGS) \ > endif > endif > > +if TEST_psxinttypes01 > +psx_tests += psxinttypes01 > +psxinttypes01_SOURCES = psxinttypes01/init.c > +psxinttypes01_CPPFLAGS = $(AM_CPPFLAGS) $(TEST_FLAGS_psxinttypes01) \ > + $(support_includes) > +endif > + > if HAS_POSIX > if TEST_psxitimer > psx_tests += psxitimer > diff --git a/testsuites/psxtests/configure.ac b/testsuites/psxtests/ > configure.ac > index cdd6ee7e4e..85559e4aa5 100644 > --- a/testsuites/psxtests/configure.ac > +++ b/testsuites/psxtests/configure.ac > @@ -91,6 +91,7 @@ RTEMS_TEST_CHECK([psxid01]) > RTEMS_TEST_CHECK([psximfs01]) > RTEMS_TEST_CHECK([psximfs02]) > RTEMS_TEST_CHECK([psxintrcritical01]) > +RTEMS_TEST_CHECK([psxinttypes01]) > RTEMS_TEST_CHECK([psxitimer]) > RTEMS_TEST_CHECK([psxkey01]) > RTEMS_TEST_CHECK([psxkey02]) > diff --git a/testsuites/psxtests/psxinttypes01/init.c > b/testsuites/psxtests/psxinttypes01/init.c > new file mode 100644 > index 0000000000..94df8206c0 > --- /dev/null > +++ b/testsuites/psxtests/psxinttypes01/init.c > @@ -0,0 +1,233 @@ > +/** > + * @file > + * @brief Test suite for inttypes.h methods > + */ > + > +/* > + * SPDX-License-Identifier: BSD-2-Clause > + * > + * Copyright (C) 2019, Aditya Upadhyay and Vaibhav Gupta > + * > + * Redistribution and use in source and binary forms, with or without > + * modification, are permitted provided that the following conditions > + * are met: > + * 1. Redistributions of source code must retain the above copyright > + * notice, this list of conditions and the following disclaimer. > + * 2. Redistributions in binary form must reproduce the above copyright > + * notice, this list of conditions and the following disclaimer in the > + * documentation and/or other materials provided with the distribution. > + * > + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS > "AS IS" > + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, > THE > + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR > PURPOSE > + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS > BE > + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR > + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF > + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR > BUSINESS > + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN > + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) > + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF > THE > + * POSSIBILITY OF SUCH DAMAGE. > + */ > + > +#ifdef HAVE_CONFIG_H > +#include "config.h" > +#endif > + > +#include <rtems/test.h> > +#include <inttypes.h> > +#include <stdio.h> > +#include <errno.h> > +#include <tmacros.h> > +#include <stdint.h> > +#include <stddef.h> > + > +const char rtems_test_name[] = "PSXINTTYPE 01"; > + > +/* forward declarations to avoid warnings */ > +rtems_task Init(rtems_task_argument ignored); > + > +rtems_task Init(rtems_task_argument ignored) > +{ > + int base = 10; > + int invalid_base = 40; > + > + char *nptr1_p = "123abc"; > + char *nptr1_p_errange = "9999999999999999999999"; > + char *nptr1_n = "-123abc"; > + char *nptr1_n_errange = "-9999999999999999999999"; > + char *endptr1 = NULL; > + > + wchar_t *nptr2_p = L"123junk"; > + wchar_t *nptr2_p_errange = L"9999999999999999999999"; > + wchar_t *nptr2_n = L"-123junk"; > + wchar_t *nptr2_n_errange = L"-9999999999999999999999"; > + wchar_t *endptr2 = NULL; > + > + intmax_t result_strtoimax; > + uintmax_t result_strtoumax; > + > + TEST_BEGIN(); > + > + /* Test for strtoimax */ > + puts( "\nstrtoimax Testcases...." ); > + puts( "Valid Inputs - Positive Number" ); > + result_strtoimax = strtoimax( nptr1_p, &endptr1, base ); > + rtems_test_assert( result_strtoimax == 123 ); > + > + puts( "Final string pointed by endptr" ); > + rtems_test_assert( endptr1 == ( nptr1_p + 3 ) ); > + > + puts( "Valid Inputs - Negative Number" ); > + result_strtoimax = strtoimax( nptr1_n, &endptr1, base ); > + rtems_test_assert( result_strtoimax == -123 ); > + > + puts( "Final string pointed by endptr" ); > + rtems_test_assert( endptr1 == ( nptr1_n + 4 ) ); > + > + puts( "Valid Input - Positive Number - Number out of Range" ); > + result_strtoimax = strtoimax( nptr1_p_errange, &endptr1, base ); > + rtems_test_assert( result_strtoimax == INTMAX_MAX ); > + rtems_test_assert( errno == ERANGE ); > + > + puts( "Valid Input - Negative Number - Number out of Range" ); > + result_strtoimax = strtoimax( nptr1_n_errange, &endptr1, base ); > + rtems_test_assert( result_strtoimax == INTMAX_MIN ); > + rtems_test_assert( errno == ERANGE ); > + > + puts( "Invalid Input - Send NULL Pointer" ); > + result_strtoimax = strtoimax( NULL, &endptr1, base ); > + rtems_test_assert( result_strtoimax == 0 ); > + rtems_test_assert( errno == EINVAL ); > + > + puts( "Invalid Input - Invalid base - Use base = 40" ); > + result_strtoimax = strtoimax( nptr1_p, &endptr1, invalid_base ); > + rtems_test_assert( result_strtoimax == 0 ); > + rtems_test_assert( errno == EINVAL ); > + > + /* Test for strtoumax */ > + puts( "\nstrtoumax Testcases...." ); > + puts( "Valid Inputs - Positive Number" ); > + result_strtoumax = strtoumax( nptr1_p, &endptr1, base ); > + rtems_test_assert( result_strtoumax ==123 ); > + > + puts( "Final string pointed by endptr" ); > + rtems_test_assert( endptr1 == ( nptr1_p + 3 ) ); > + > + puts( "Valid Inputs - Negative Number" ); > + result_strtoumax = strtoumax( nptr1_n, &endptr1, base ); > + rtems_test_assert( result_strtoumax != 0 ); > + > + puts( "Final string pointed by endptr" ); > + rtems_test_assert( endptr1 == ( nptr1_n + 4 ) ); > + > + puts( "Valid Input - Positive Number - Number out of Range" ); > + result_strtoumax = strtoumax( nptr1_p_errange, &endptr1, base ); > + rtems_test_assert( result_strtoumax == UINTMAX_MAX ); > + rtems_test_assert( errno == ERANGE ); > + > + puts( "Valid Input - Negative Number - Number out of Range" ); > + result_strtoumax = strtoumax( nptr1_n_errange, &endptr1, base ); > + rtems_test_assert( result_strtoumax != 0 ); > + rtems_test_assert( errno == ERANGE ); > + > + puts( "Invalid Input - Send NULL Pointer" ); > + result_strtoumax = strtoumax( NULL, &endptr1, base ); > + rtems_test_assert( result_strtoumax == 0 ); > + rtems_test_assert( errno == EINVAL ); > + > + puts( "Invalid Input - Invalid base - Use base = 40" ); > + result_strtoumax = strtoumax( nptr1_p, &endptr1, invalid_base ); > + rtems_test_assert( result_strtoumax == 0 ); > + rtems_test_assert( errno == EINVAL ); > + > + /* Test for wcstoimax */ > + puts( "\nwcstoimax Testcases...." ); > + puts( "Valid Inputs - Positive Number" ); > + result_strtoimax = wcstoimax( nptr2_p, &endptr2, base ); > + rtems_test_assert( result_strtoimax == 123 ); > + > + puts( "Final string pointed by endptr" ); > + rtems_test_assert( endptr2 == ( nptr2_p + 3 ) ); > + > + puts( "Valid Inputs - Negative Number" ); > + result_strtoimax = wcstoimax( nptr2_n, &endptr2, base ); > + rtems_test_assert( result_strtoimax == -123 ); > + > + puts( "Final string pointed by endptr" ); > + rtems_test_assert( endptr2 == ( nptr2_n + 4 ) ); > + > + puts( "Valid Input - Positive Number - Number out of Range" ); > + result_strtoimax = wcstoimax( nptr2_p_errange, &endptr2, base ); > + rtems_test_assert( result_strtoimax == INTMAX_MAX ); > + rtems_test_assert( errno == ERANGE ); > + > + puts( "Valid Input - Negative Number - Number out of Range" ); > + result_strtoimax = wcstoimax( nptr2_n_errange, &endptr2, base ); > + rtems_test_assert( result_strtoimax == INTMAX_MIN ); > + rtems_test_assert( errno == ERANGE ); > + > + puts( "Invalid Input - Send NULL Pointer" ); > + result_strtoimax = wcstoimax( NULL, &endptr2, base ); > + rtems_test_assert( result_strtoimax == 0 ); > + rtems_test_assert( errno == EINVAL ); > + > + puts( "Invalid Input - Invalid base - Use base = 40" ); > + result_strtoimax = wcstoimax( nptr2_p, &endptr2, invalid_base ); > + rtems_test_assert( result_strtoimax == 0 ); > + rtems_test_assert( errno == EINVAL ); > + > + /* Test for wcstoumax */ > + puts( "\nwcstoumax Testcases...." ); > + puts( "Valid Inputs - Positive Number" ); > + result_strtoumax = wcstoumax( nptr2_p, &endptr2, base ); > + rtems_test_assert( result_strtoumax == 123 ); > + > + puts( "Final string pointed by endptr" ); > + rtems_test_assert( endptr2 == ( nptr2_p + 3 ) ); > + > + puts( "Valid Inputs - Negative Number" ); > + result_strtoumax = wcstoumax( nptr2_n, &endptr2, base ); > + rtems_test_assert( result_strtoumax != 0 ); > + > + puts( "Final string pointed by endptr" ); > + rtems_test_assert( endptr2 == ( nptr2_n + 4 ) ); > + > + puts( "Valid Input - Positive Number - Number out of Range" ); > + result_strtoumax = wcstoumax( nptr2_p_errange, &endptr2, base ); > + rtems_test_assert( result_strtoumax == UINTMAX_MAX ); > + rtems_test_assert( errno == ERANGE ); > + > + puts( "Valid Input - Negative Number - Number out of Range" ); > + result_strtoumax = wcstoumax( nptr2_n_errange, &endptr2, base ); > + rtems_test_assert( result_strtoumax != 0 ); > + rtems_test_assert( errno == ERANGE ); > + > + puts( "Invalid Input - Send NULL Pointer" ); > + result_strtoumax = wcstoumax( NULL, &endptr2, base ); > + rtems_test_assert( result_strtoumax == 0 ); > + rtems_test_assert( errno == EINVAL ); > + > + puts( "Invalid Input - Invalid base - Use base = 40" ); > + result_strtoumax = wcstoumax( nptr2_p, &endptr2, invalid_base ); > + rtems_test_assert( result_strtoumax == 0 ); > + rtems_test_assert( errno == EINVAL ); > + > + TEST_END(); > + rtems_test_exit(0); > + > +} > + > +/* NOTICE: the clock driver is explicitly disabled */ > + > +#define CONFIGURE_APPLICATION_DOES_NOT_NEED_CLOCK_DRIVER > +#define CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER > + > +#define CONFIGURE_MAXIMUM_TASKS 1 > + > +#define CONFIGURE_RTEMS_INIT_TASKS_TABLE > + > +#define CONFIGURE_INITIAL_EXTENSIONS RTEMS_TEST_INITIAL_EXTENSION > + > +#define CONFIGURE_INIT > +#include <rtems/confdefs.h> > diff --git a/testsuites/psxtests/psxinttypes01/psxinttypes01.doc > b/testsuites/psxtests/psxinttypes01/psxinttypes01.doc > new file mode 100644 > index 0000000000..607d67015e > --- /dev/null > +++ b/testsuites/psxtests/psxinttypes01/psxinttypes01.doc > @@ -0,0 +1,43 @@ > +This File describes the concepts tested by this test suite. > + > +inttypes.h - fixed size integer types > + > +test suite name: PSXINTTYPE 01 > + > +- Checks for invalid base value > + > +- Checks for Strtoimax Testcases > + - checks for output for string having a positive number > + - checks for output for string having a negative number > + - checks for output for string having a positive number - Number > Out of Range > + - checks for output for string having a negative number - Number > Out of Range > + - checks for final string pointed by endptr > + - checks for output for invalid argument - NULL Pointer > + - checks for output for invalid argument - Invalid Base > + > +- Checks for Strtoumax Test Cases > + - checks for output for string having a positive number > + - checks for output for string having a negative number > + - checks for output for string having a positive number - Number > Out of Range > + - checks for output for string having a negative number - Number > Out of Range > + - checks for final string pointed by endptr > + - checks for output for invalid argument - NULL Pointer > + - checks for output for invalid argument - Invalid Base > + > +- Checks for Wcstoimax Testcases > + - checks for output for string having a positive number > + - checks for output for string having a negative number > + - checks for output for string having a positive number - Number > Out of Range > + - checks for output for string having a negative number - Number > Out of Range > + - checks for final string pointed by endptr > + - checks for output for invalid argument - NULL Pointer > + - checks for output for invalid argument - Invalid Base > + > +- Checks for Wcstoumax Testcases > + - checks for output for string having a positive number > + - checks for output for string having a negative number > + - checks for output for string having a positive number - Number > Out of Range > + - checks for output for string having a negative number - Number > Out of Range > + - checks for final string pointed by endptr > + - checks for output for invalid argument - NULL Pointer > + - checks for output for invalid argument - Invalid Base > diff --git a/testsuites/psxtests/psxinttypes01/psxinttypes01.scn > b/testsuites/psxtests/psxinttypes01/psxinttypes01.scn > new file mode 100644 > index 0000000000..33e82428f1 > --- /dev/null > +++ b/testsuites/psxtests/psxinttypes01/psxinttypes01.scn > @@ -0,0 +1,44 @@ > +*** PSXINTTYPE 01 TEST *** > + > +strtoimax Testcases.... > +Valid Inputs - Positive Number > +Final string pointed by endptr > +Valid Inputs - Negative Number > +Final string pointed by endptr > +Valid Input - Positive Number - Number out of Range > +Valid Input - Negative Number - Number out of Range > +Invalid Input - Send NULL Pointer > +Invalid Input - Invalid base - Use base = 40 > + > +strtoumax Testcases.... > +Valid Inputs - Positive Number > +Final string pointed by endptr > +Valid Inputs - Negative Number > +Final string pointed by endptr > +Valid Input - Positive Number - Number out of Range > +Valid Input - Negative Number - Number out of Range > +Invalid Input - Send NULL Pointer > +Invalid Input - Invalid base - Use base = 40 > + > +wcstoimax Testcases.... > +Valid Inputs - Positive Number > +Final string pointed by endptr > +Valid Inputs - Negative Number > +Final string pointed by endptr > +Valid Input - Positive Number - Number out of Range > +Valid Input - Negative Number - Number out of Range > +Invalid Input - Send NULL Pointer > +Invalid Input - Invalid base - Use base = 40 > + > +wcstoumax Testcases.... > +Valid Inputs - Positive Number > +Final string pointed by endptr > +Valid Inputs - Negative Number > +Final string pointed by endptr > +Valid Input - Positive Number - Number out of Range > +Valid Input - Negative Number - Number out of Range > +Invalid Input - Send NULL Pointer > +Invalid Input - Invalid base - Use base = 40 > + > +*** END OF PSXINTTYPE 01 TEST *** > + > -- > 2.21.0 > >
_______________________________________________ devel mailing list devel@rtems.org http://lists.rtems.org/mailman/listinfo/devel