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

Reply via email to