[PATCH] Implement POSIX API Signature Compliance Tests for inttypes.h
Joel Sherrill
joel at rtems.org
Fri Dec 7 04:14:51 UTC 2018
Just pushed this. Thanks.
On Thu, Dec 6, 2018 at 3:27 PM Marçal Comajoan Cara <mcomajoancara at gmail.com>
wrote:
> This work was part of GCI 2018
> ---
> testsuites/psxtests/Makefile.am | 9 ++++-
> .../psxtests/psxhdrs/inttypes/imaxabs.c | 38 ++++++++++++++++++
> .../psxtests/psxhdrs/inttypes/imaxdiv.c | 39 ++++++++++++++++++
> .../psxtests/psxhdrs/inttypes/strtoimax.c | 39 ++++++++++++++++++
> .../psxtests/psxhdrs/inttypes/strtoumax.c | 39 ++++++++++++++++++
> .../psxtests/psxhdrs/inttypes/wcstoimax.c | 40 +++++++++++++++++++
> .../psxtests/psxhdrs/inttypes/wcstoumax.c | 40 +++++++++++++++++++
> 7 files changed, 243 insertions(+), 1 deletion(-)
> create mode 100644 testsuites/psxtests/psxhdrs/inttypes/imaxabs.c
> create mode 100644 testsuites/psxtests/psxhdrs/inttypes/imaxdiv.c
> create mode 100644 testsuites/psxtests/psxhdrs/inttypes/strtoimax.c
> create mode 100644 testsuites/psxtests/psxhdrs/inttypes/strtoumax.c
> create mode 100644 testsuites/psxtests/psxhdrs/inttypes/wcstoimax.c
> create mode 100644 testsuites/psxtests/psxhdrs/inttypes/wcstoumax.c
>
> diff --git a/testsuites/psxtests/Makefile.am
> b/testsuites/psxtests/Makefile.am
> index 4feaa8d68a..f5359d8b19 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 0000000000..df5c244034
> --- /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 0000000000..3538fef12b
> --- /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 0000000000..1544bdcb29
> --- /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 0000000000..a8cd3137c8
> --- /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 0000000000..e7af7ba9a2
> --- /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 0000000000..763cd9bfc5
> --- /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 );
> +}
> --
> 2.19.2
>
> _______________________________________________
> devel mailing list
> devel at rtems.org
> http://lists.rtems.org/mailman/listinfo/devel
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.rtems.org/pipermail/devel/attachments/20181206/b957558c/attachment-0002.html>
More information about the devel
mailing list