From b055da27904c8d3bcda5895d86465cd474020f00 Mon Sep 17 00:00:00 2001 From: Himanshu40 Date: Mon, 3 Dec 2018 22:34:04 +0530 Subject: psxhdrs: add POSIX API Signature Compliance Tests for regex.h (GCI 2018) --- testsuites/psxtests/Makefile.am | 6 +++- testsuites/psxtests/psxhdrs/regex/regcomp.c | 40 ++++++++++++++++++++++++ testsuites/psxtests/psxhdrs/regex/regerror.c | 44 ++++++++++++++++++++++++++ testsuites/psxtests/psxhdrs/regex/regexec.c | 46 ++++++++++++++++++++++++++++ testsuites/psxtests/psxhdrs/regex/regfree.c | 41 +++++++++++++++++++++++++ 5 files changed, 176 insertions(+), 1 deletion(-) create mode 100644 testsuites/psxtests/psxhdrs/regex/regcomp.c create mode 100644 testsuites/psxtests/psxhdrs/regex/regerror.c create mode 100644 testsuites/psxtests/psxhdrs/regex/regexec.c create mode 100644 testsuites/psxtests/psxhdrs/regex/regfree.c diff --git a/testsuites/psxtests/Makefile.am b/testsuites/psxtests/Makefile.am index 7a3a635f8e..6484ac03ba 100644 --- a/testsuites/psxtests/Makefile.am +++ b/testsuites/psxtests/Makefile.am @@ -1133,7 +1133,11 @@ lib_a_SOURCES = psxhdrs/devctl/posix_devctl.c \ psxhdrs/locale/uselocale.c \ psxhdrs/locale/setlocale.c \ psxhdrs/locale/duplocale.c \ - psxhdrs/locale/localeconv.c + psxhdrs/locale/localeconv.c \ + psxhdrs/regex/regcomp.c \ + psxhdrs/regex/regerror.c \ + psxhdrs/regex/regexec.c \ + psxhdrs/regex/regfree.c endif rtems_tests_PROGRAMS = $(psx_tests) diff --git a/testsuites/psxtests/psxhdrs/regex/regcomp.c b/testsuites/psxtests/psxhdrs/regex/regcomp.c new file mode 100644 index 0000000000..4c1aee6920 --- /dev/null +++ b/testsuites/psxtests/psxhdrs/regex/regcomp.c @@ -0,0 +1,40 @@ +/** + * @file + * @brief regcomp() API Conformance Test + */ + +/* + * COPYRIGHT (c) 2018. + * Himanshu Sekhar Nayak + * + * 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 ) +{ + regex_t preg; + char *regex = "\\(sim[a-z]le\\) \\1"; + int result; + + result = regcomp( &preg, regex, REG_EXTENDED|REG_NOSUB ); + + return result; +} diff --git a/testsuites/psxtests/psxhdrs/regex/regerror.c b/testsuites/psxtests/psxhdrs/regex/regerror.c new file mode 100644 index 0000000000..dbe6412c49 --- /dev/null +++ b/testsuites/psxtests/psxhdrs/regex/regerror.c @@ -0,0 +1,44 @@ +/** + * @file + * @brief regerror() API Conformance Test + */ + +/* + * COPYRIGHT (c) 2018. + * Himanshu Sekhar Nayak + * + * 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 ) +{ + regex_t preg; + size_t error; + char *regex = "\\(sim[a-z]le\\) \\1"; + char buffer[100]; + int result; + + result = regcomp( &preg, regex, REG_EXTENDED|REG_NOSUB ); + (void) result; + error = regerror( result, &preg, buffer, 100 ); + + return (error != '\0'); +} diff --git a/testsuites/psxtests/psxhdrs/regex/regexec.c b/testsuites/psxtests/psxhdrs/regex/regexec.c new file mode 100644 index 0000000000..69ff3c290c --- /dev/null +++ b/testsuites/psxtests/psxhdrs/regex/regexec.c @@ -0,0 +1,46 @@ +/** + * @file + * @brief regexec() API Conformance Test + */ + +/* + * COPYRIGHT (c) 2018. + * Himanshu Sekhar Nayak + * + * 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 ) +{ + regex_t preg; + size_t nmatch = 2; + regmatch_t pmatch[2]; + char *string = "a very simple simple simple string"; + char *regex = "\\(sim[a-z]le\\) \\1"; + int result; + + result = regcomp( &preg, regex, REG_EXTENDED|REG_NOSUB ); + (void) result; + + result = regexec( &preg, string, nmatch, pmatch, 0 ); + + return result; +} diff --git a/testsuites/psxtests/psxhdrs/regex/regfree.c b/testsuites/psxtests/psxhdrs/regex/regfree.c new file mode 100644 index 0000000000..5c95f8053e --- /dev/null +++ b/testsuites/psxtests/psxhdrs/regex/regfree.c @@ -0,0 +1,41 @@ +/** + * @file + * @brief regfree() API Conformance Test + */ + +/* + * COPYRIGHT (c) 2018. + * Himanshu Sekhar Nayak + * + * 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 ) +{ + regex_t preg; + char *regex = "\\(sim[a-z]le\\) \\1"; + int result; + + result = regcomp( &preg, regex, REG_EXTENDED|REG_NOSUB ); + regfree( &preg ); + + return result; +} -- cgit v1.2.3