From bf763d3eeedd2ec251a5d86d75b038294ea4d326 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mar=C3=A7al=20Comajoan=20Cara?= Date: Thu, 6 Dec 2018 22:23:16 +0100 Subject: Implement POSIX API Signature Compliance Tests for inttypes.h This work was part of GCI 2018 --- 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 ++++++++++++++++++++++++ 6 files changed, 235 insertions(+) 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 (limited to 'testsuites/psxtests/psxhdrs') 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 + +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 + +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 + +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 + +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 +#include + +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 +#include + +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 ); +} -- cgit v1.2.3