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