Hi guys, Here is the patch file for new semaphore.c file.
Thanks Himanshu
From 46cc485261116de24508f01b8314b29f01a98511 Mon Sep 17 00:00:00 2001 From: Himanshu40 <himanshuwindows...@gmail.com> Date: Thu, 29 Nov 2018 22:33:19 +0530 Subject: [PATCH] psxtests : Add POSIX API Signature Compliance Tests for semaphore.h File (GCI 2018) --- testsuites/psxtests/Makefile.am | 12 ++++- .../psxtests/psxhdrs/semaphore/sem_close.c | 45 +++++++++++++++++ .../psxtests/psxhdrs/semaphore/sem_destroy.c | 45 +++++++++++++++++ .../psxtests/psxhdrs/semaphore/sem_getvalue.c | 46 +++++++++++++++++ .../psxtests/psxhdrs/semaphore/sem_init.c | 43 ++++++++++++++++ .../psxtests/psxhdrs/semaphore/sem_open.c | 46 +++++++++++++++++ .../psxtests/psxhdrs/semaphore/sem_post.c | 44 +++++++++++++++++ .../psxhdrs/semaphore/sem_timedwait.c | 49 +++++++++++++++++++ .../psxtests/psxhdrs/semaphore/sem_trywait.c | 44 +++++++++++++++++ .../psxtests/psxhdrs/semaphore/sem_unlink.c | 44 +++++++++++++++++ .../psxtests/psxhdrs/semaphore/sem_wait.c | 44 +++++++++++++++++ 11 files changed, 461 insertions(+), 1 deletion(-) create mode 100644 testsuites/psxtests/psxhdrs/semaphore/sem_close.c create mode 100644 testsuites/psxtests/psxhdrs/semaphore/sem_destroy.c create mode 100644 testsuites/psxtests/psxhdrs/semaphore/sem_getvalue.c create mode 100644 testsuites/psxtests/psxhdrs/semaphore/sem_init.c create mode 100644 testsuites/psxtests/psxhdrs/semaphore/sem_open.c create mode 100644 testsuites/psxtests/psxhdrs/semaphore/sem_post.c create mode 100644 testsuites/psxtests/psxhdrs/semaphore/sem_timedwait.c create mode 100644 testsuites/psxtests/psxhdrs/semaphore/sem_trywait.c create mode 100644 testsuites/psxtests/psxhdrs/semaphore/sem_unlink.c create mode 100644 testsuites/psxtests/psxhdrs/semaphore/sem_wait.c diff --git a/testsuites/psxtests/Makefile.am b/testsuites/psxtests/Makefile.am index 812dc303b6..2fd94e8b76 100644 --- a/testsuites/psxtests/Makefile.am +++ b/testsuites/psxtests/Makefile.am @@ -1103,7 +1103,17 @@ lib_a_SOURCES = psxhdrs/devctl/posix_devctl.c \ psxhdrs/mqueue/mq_send.c \ psxhdrs/mqueue/mq_timedreceive.c \ psxhdrs/mqueue/mq_timedsend.c \ - psxhdrs/mqueue/mq_unlink.c + psxhdrs/mqueue/mq_unlink.c \ + psxhdrs/semaphore/sem_init.c \ + psxhdrs/semaphore/sem_destroy.c \ + psxhdrs/semaphore/sem_open.c \ + psxhdrs/semaphore/sem_close.c \ + psxhdrs/semaphore/sem_getvalue.c \ + psxhdrs/semaphore/sem_unlink.c \ + psxhdrs/semaphore/sem_post.c \ + psxhdrs/semaphore/sem_wait.c \ + psxhdrs/semaphore/sem_trywait.c \ + psxhdrs/semaphore/sem_timedwait.c endif rtems_tests_PROGRAMS = $(psx_tests) diff --git a/testsuites/psxtests/psxhdrs/semaphore/sem_close.c b/testsuites/psxtests/psxhdrs/semaphore/sem_close.c new file mode 100644 index 0000000000..9bac9b9a92 --- /dev/null +++ b/testsuites/psxtests/psxhdrs/semaphore/sem_close.c @@ -0,0 +1,45 @@ +/** + * @file + * @brief sem_close() 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 <fcntl.h> + #include <sys/stat.h> + #include <semaphore.h> + + int test( void ); + + int test( void ) + { + sem_t *sem1; + int oflag = O_CREAT; + int result; + int value; + + value = 1; + + sem1 = sem_open( "sem", oflag, 0777, value ); + result = sem_close( sem1 ); + + return result; + } diff --git a/testsuites/psxtests/psxhdrs/semaphore/sem_destroy.c b/testsuites/psxtests/psxhdrs/semaphore/sem_destroy.c new file mode 100644 index 0000000000..13599ca072 --- /dev/null +++ b/testsuites/psxtests/psxhdrs/semaphore/sem_destroy.c @@ -0,0 +1,45 @@ +/** + * @file + * @brief sem_destroy() 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 <fcntl.h> + #include <sys/stat.h> + #include <semaphore.h> + + int test( void ); + + int test( void ) + { + sem_t *sem1; + int oflag = O_CREAT; + int result; + int value; + + value = 1; + + sem1 = sem_open( "sem", oflag, 0777, value ); + result = sem_destroy( sem1 ); + + return result; + } diff --git a/testsuites/psxtests/psxhdrs/semaphore/sem_getvalue.c b/testsuites/psxtests/psxhdrs/semaphore/sem_getvalue.c new file mode 100644 index 0000000000..1aefeafe19 --- /dev/null +++ b/testsuites/psxtests/psxhdrs/semaphore/sem_getvalue.c @@ -0,0 +1,46 @@ +/** + * @file + * @brief sem_getval() 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 <semaphore.h> + + int test( void ); + + int test( void ) + { + sem_t sem; + int pshared; + unsigned int value; + int sval; + int result; + + pshared = 0; + value = 1; + sval = 1; + + sem_init( &sem, pshared, value ); + result = sem_getvalue( &sem, &sval ); + + return result; + } diff --git a/testsuites/psxtests/psxhdrs/semaphore/sem_init.c b/testsuites/psxtests/psxhdrs/semaphore/sem_init.c new file mode 100644 index 0000000000..0f8c771e65 --- /dev/null +++ b/testsuites/psxtests/psxhdrs/semaphore/sem_init.c @@ -0,0 +1,43 @@ +/** + * @file + * @brief sem_init() 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 <semaphore.h> + + int test( void ); + + int test( void ) + { + sem_t sem; + int pshared; + unsigned int value; + int result; + + pshared = 0; + value = 1; + + result = sem_init( &sem, pshared, value ); + + return result; + } diff --git a/testsuites/psxtests/psxhdrs/semaphore/sem_open.c b/testsuites/psxtests/psxhdrs/semaphore/sem_open.c new file mode 100644 index 0000000000..d3b63d583b --- /dev/null +++ b/testsuites/psxtests/psxhdrs/semaphore/sem_open.c @@ -0,0 +1,46 @@ +/** + * @file + * @brief sem_open() 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 <fcntl.h> + #include <sys/stat.h> + #include <semaphore.h> + + int test( void ); + + int result = 1; + + int test( void ) + { + sem_t *sem1; + int oflag = O_CREAT; + unsigned int value; + + value = 1; + + sem1 = sem_open( "sem", oflag, 0777, value ); + (void) sem1; + + return result; + } diff --git a/testsuites/psxtests/psxhdrs/semaphore/sem_post.c b/testsuites/psxtests/psxhdrs/semaphore/sem_post.c new file mode 100644 index 0000000000..5612c70e68 --- /dev/null +++ b/testsuites/psxtests/psxhdrs/semaphore/sem_post.c @@ -0,0 +1,44 @@ +/** + * @file + * @brief sem_post() 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 <semaphore.h> + + int test( void ); + + int test( void ) + { + sem_t sem; + int pshared; + unsigned int value; + int result; + + pshared = 0; + value = 1; + + sem_init( &sem, pshared, value ); + result = sem_post( &sem ); + + return result; + } diff --git a/testsuites/psxtests/psxhdrs/semaphore/sem_timedwait.c b/testsuites/psxtests/psxhdrs/semaphore/sem_timedwait.c new file mode 100644 index 0000000000..9a1827a397 --- /dev/null +++ b/testsuites/psxtests/psxhdrs/semaphore/sem_timedwait.c @@ -0,0 +1,49 @@ +/** + * @file + * @brief sem_timedwait() 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 <fcntl.h> + #include <time.h> + #include <semaphore.h> + + int test( void ); + + int test( void ) + { + sem_t sem; + struct timespec abs_timeout; + int pshared; + unsigned int value; + int result; + + pshared = 0; + value = 1; + abs_timeout.tv_sec = 0; + abs_timeout.tv_nsec = 0; + + sem_init( &sem, pshared, value ); + result = sem_timedwait( &sem, &abs_timeout ); + + return result; + } diff --git a/testsuites/psxtests/psxhdrs/semaphore/sem_trywait.c b/testsuites/psxtests/psxhdrs/semaphore/sem_trywait.c new file mode 100644 index 0000000000..25486fb679 --- /dev/null +++ b/testsuites/psxtests/psxhdrs/semaphore/sem_trywait.c @@ -0,0 +1,44 @@ +/** + * @file + * @brief sem_trywait() 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 <semaphore.h> + + int test( void ); + + int test( void ) + { + sem_t sem; + int pshared; + unsigned int value; + int result; + + pshared = 0; + value = 1; + + sem_init( &sem, pshared, value ); + result = sem_trywait( &sem ); + + return result; + } diff --git a/testsuites/psxtests/psxhdrs/semaphore/sem_unlink.c b/testsuites/psxtests/psxhdrs/semaphore/sem_unlink.c new file mode 100644 index 0000000000..8f4619a960 --- /dev/null +++ b/testsuites/psxtests/psxhdrs/semaphore/sem_unlink.c @@ -0,0 +1,44 @@ +/** + * @file + * @brief sem_unlink() 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 <semaphore.h> + + int test( void ); + + int test( void ) + { + sem_t sem; + int pshared; + unsigned int value; + int result; + + pshared = 0; + value = 1; + + sem_init( &sem, pshared, value ); + result = sem_unlink( "sem" ); + + return result; + } diff --git a/testsuites/psxtests/psxhdrs/semaphore/sem_wait.c b/testsuites/psxtests/psxhdrs/semaphore/sem_wait.c new file mode 100644 index 0000000000..03d77cfce8 --- /dev/null +++ b/testsuites/psxtests/psxhdrs/semaphore/sem_wait.c @@ -0,0 +1,44 @@ +/** + * @file + * @brief sem_wait() 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 <semaphore.h> + + int test( void ); + + int test( void ) + { + sem_t sem; + int pshared; + unsigned int value; + int result; + + pshared = 0; + value = 1; + + sem_init( &sem, pshared, value ); + result = sem_wait( &sem ); + + return result; + } -- 2.17.2
_______________________________________________ devel mailing list devel@rtems.org http://lists.rtems.org/mailman/listinfo/devel