[rtems commit] Implement POSIX API Signature Compliance Tests for inttypes.h

Joel Sherrill joel at rtems.org
Fri Dec 7 04:14:07 UTC 2018


Module:    rtems
Branch:    master
Commit:    bf763d3eeedd2ec251a5d86d75b038294ea4d326
Changeset: http://git.rtems.org/rtems/commit/?id=bf763d3eeedd2ec251a5d86d75b038294ea4d326

Author:    Marçal Comajoan Cara <mcomajoancara at gmail.com>
Date:      Thu Dec  6 22:23:16 2018 +0100

Implement POSIX API Signature Compliance Tests for inttypes.h

This work was part of GCI 2018

---

 testsuites/psxtests/Makefile.am                  |  9 +++++-
 testsuites/psxtests/psxhdrs/inttypes/imaxabs.c   | 38 ++++++++++++++++++++++
 testsuites/psxtests/psxhdrs/inttypes/imaxdiv.c   | 39 +++++++++++++++++++++++
 testsuites/psxtests/psxhdrs/inttypes/strtoimax.c | 39 +++++++++++++++++++++++
 testsuites/psxtests/psxhdrs/inttypes/strtoumax.c | 39 +++++++++++++++++++++++
 testsuites/psxtests/psxhdrs/inttypes/wcstoimax.c | 40 ++++++++++++++++++++++++
 testsuites/psxtests/psxhdrs/inttypes/wcstoumax.c | 40 ++++++++++++++++++++++++
 7 files changed, 243 insertions(+), 1 deletion(-)

diff --git a/testsuites/psxtests/Makefile.am b/testsuites/psxtests/Makefile.am
index 4feaa8d..f5359d8 100644
--- a/testsuites/psxtests/Makefile.am
+++ b/testsuites/psxtests/Makefile.am
@@ -1573,7 +1573,14 @@ lib_a_SOURCES = psxhdrs/devctl/posix_devctl.c \
 	psxhdrs/wctype/wctrans.c \
 	psxhdrs/wctype/wctrans_l.c \
 	psxhdrs/wctype/wctype.c \
-	psxhdrs/wctype/wctype_l.c
+	psxhdrs/wctype/wctype_l.c \
+	psxhdrs/inttypes/imaxabs.c \
+	psxhdrs/inttypes/imaxdiv.c \
+	psxhdrs/inttypes/strtoimax.c \
+	psxhdrs/inttypes/strtoumax.c \
+	psxhdrs/inttypes/wcstoimax.c \
+	psxhdrs/inttypes/wcstoumax.c
+
 
 ## Not supported by RTEMS, but POSIX API Compliance tests exist.
 ## lib_a_SOURCES += psxhdrs/ulimit/ulimit.c
diff --git a/testsuites/psxtests/psxhdrs/inttypes/imaxabs.c b/testsuites/psxtests/psxhdrs/inttypes/imaxabs.c
new file mode 100644
index 0000000..df5c244
--- /dev/null
+++ b/testsuites/psxtests/psxhdrs/inttypes/imaxabs.c
@@ -0,0 +1,38 @@
+/**
+ *  @file
+ *  @brief imaxabs() API Conformance Test
+ */
+
+/*
+ *  COPYRIGHT (c) 2018.
+ *  Marçal Comajoan Cara
+ *
+ *  Permission to use, copy, modify, and/or distribute this software
+ *  for any purpose with or without fee is hereby granted.
+ *
+ *  THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
+ *  WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
+ *  WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR
+ *  BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES
+ *  OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
+ *  WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
+ *  ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include <inttypes.h>
+
+int test( void );
+
+int test( void )
+{
+  intmax_t n = -42;
+  intmax_t result;
+
+  result = imaxabs( n );
+
+  return ( result == 42 );
+}
diff --git a/testsuites/psxtests/psxhdrs/inttypes/imaxdiv.c b/testsuites/psxtests/psxhdrs/inttypes/imaxdiv.c
new file mode 100644
index 0000000..3538fef
--- /dev/null
+++ b/testsuites/psxtests/psxhdrs/inttypes/imaxdiv.c
@@ -0,0 +1,39 @@
+/**
+ *  @file
+ *  @brief imaxdiv() API Conformance Test
+ */
+
+/*
+ *  COPYRIGHT (c) 2018.
+ *  Marçal Comajoan Cara
+ *
+ *  Permission to use, copy, modify, and/or distribute this software
+ *  for any purpose with or without fee is hereby granted.
+ *
+ *  THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
+ *  WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
+ *  WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR
+ *  BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES
+ *  OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
+ *  WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
+ *  ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include <inttypes.h>
+
+int test( void );
+
+int test( void )
+{
+  intmax_t n = 42;
+  intmax_t denom = 5;
+  imaxdiv_t result;
+
+  result = imaxdiv( n, denom );
+
+  return ( result.quot == 8 && result.rem == 2 );
+}
diff --git a/testsuites/psxtests/psxhdrs/inttypes/strtoimax.c b/testsuites/psxtests/psxhdrs/inttypes/strtoimax.c
new file mode 100644
index 0000000..1544bdc
--- /dev/null
+++ b/testsuites/psxtests/psxhdrs/inttypes/strtoimax.c
@@ -0,0 +1,39 @@
+/**
+ *  @file
+ *  @brief strtoimax() API Conformance Test
+ */
+
+/*
+ *  COPYRIGHT (c) 2018.
+ *  Marçal Comajoan Cara
+ *
+ *  Permission to use, copy, modify, and/or distribute this software
+ *  for any purpose with or without fee is hereby granted.
+ *
+ *  THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
+ *  WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
+ *  WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR
+ *  BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES
+ *  OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
+ *  WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
+ *  ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include <inttypes.h>
+
+int test( void );
+
+int test( void )
+{
+  char *n = "-42";
+  intmax_t result;
+  char *endptr;
+
+  result = strtoimax( n, &endptr, 10 );
+
+  return ( result == -42 );
+}
diff --git a/testsuites/psxtests/psxhdrs/inttypes/strtoumax.c b/testsuites/psxtests/psxhdrs/inttypes/strtoumax.c
new file mode 100644
index 0000000..a8cd313
--- /dev/null
+++ b/testsuites/psxtests/psxhdrs/inttypes/strtoumax.c
@@ -0,0 +1,39 @@
+/**
+ *  @file
+ *  @brief strtoumax() API Conformance Test
+ */
+
+/*
+ *  COPYRIGHT (c) 2018.
+ *  Marçal Comajoan Cara
+ *
+ *  Permission to use, copy, modify, and/or distribute this software
+ *  for any purpose with or without fee is hereby granted.
+ *
+ *  THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
+ *  WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
+ *  WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR
+ *  BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES
+ *  OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
+ *  WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
+ *  ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include <inttypes.h>
+
+int test( void );
+
+int test( void )
+{
+  char *n = "42";
+  uintmax_t result;
+  char *endptr;
+
+  result = strtoumax( n, &endptr, 10 );
+
+  return ( result == 42 );
+}
diff --git a/testsuites/psxtests/psxhdrs/inttypes/wcstoimax.c b/testsuites/psxtests/psxhdrs/inttypes/wcstoimax.c
new file mode 100644
index 0000000..e7af7ba
--- /dev/null
+++ b/testsuites/psxtests/psxhdrs/inttypes/wcstoimax.c
@@ -0,0 +1,40 @@
+/**
+ *  @file
+ *  @brief wcstoimax() API Conformance Test
+ */
+
+/*
+ *  COPYRIGHT (c) 2018.
+ *  Marçal Comajoan Cara
+ *
+ *  Permission to use, copy, modify, and/or distribute this software
+ *  for any purpose with or without fee is hereby granted.
+ *
+ *  THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
+ *  WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
+ *  WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR
+ *  BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES
+ *  OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
+ *  WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
+ *  ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include <stddef.h>
+#include <inttypes.h>
+
+int test( void );
+
+int test( void )
+{
+  wchar_t *n = L"-42";
+  intmax_t result;
+  wchar_t *endptr;
+
+  result = wcstoimax( n, &endptr, 10 );
+
+  return ( result == -42 );
+}
diff --git a/testsuites/psxtests/psxhdrs/inttypes/wcstoumax.c b/testsuites/psxtests/psxhdrs/inttypes/wcstoumax.c
new file mode 100644
index 0000000..763cd9b
--- /dev/null
+++ b/testsuites/psxtests/psxhdrs/inttypes/wcstoumax.c
@@ -0,0 +1,40 @@
+/**
+ *  @file
+ *  @brief wcstoumax() API Conformance Test
+ */
+
+/*
+ *  COPYRIGHT (c) 2018.
+ *  Marçal Comajoan Cara
+ *
+ *  Permission to use, copy, modify, and/or distribute this software
+ *  for any purpose with or without fee is hereby granted.
+ *
+ *  THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
+ *  WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
+ *  WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR
+ *  BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES
+ *  OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
+ *  WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
+ *  ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include <stddef.h>
+#include <inttypes.h>
+
+int test( void );
+
+int test( void )
+{
+  wchar_t *n = L"42";
+  uintmax_t result;
+  wchar_t *endptr;
+
+  result = wcstoumax( n, &endptr, 10 );
+
+  return ( result == 42 );
+}



More information about the vc mailing list