[PATCH 1/1] testsuites: added compile tests for new APIs
Matt Joyce
mfjoyce2004 at gmail.com
Fri Aug 6 20:25:49 UTC 2021
Added compile only tests for the following POSIX standard APIs:
1) pthread_rwlock_clockrdlock()
2) pthread_rwlock_clockwrlock()
3) pthread_cond_clockwait()
4) pthread_mutex_clocklock()
All four were added to Issue 8 POSIX Standard and were added to
testsuites/psxtests/psxhdrs/pthread.
---
spec/build/testsuites/psxtests/libpsxhdrs.yml | 4 ++
.../psxhdrs/pthread/pthread_cond_clockwait.c | 59 +++++++++++++++++
.../psxhdrs/pthread/pthread_mutex_clocklock.c | 61 ++++++++++++++++++
.../pthread/pthread_rwlock_clockrdlock.c | 64 +++++++++++++++++++
.../pthread/pthread_rwlock_clockwrlock.c | 64 +++++++++++++++++++
5 files changed, 252 insertions(+)
create mode 100644 testsuites/psxtests/psxhdrs/pthread/pthread_cond_clockwait.c
create mode 100644 testsuites/psxtests/psxhdrs/pthread/pthread_mutex_clocklock.c
create mode 100644 testsuites/psxtests/psxhdrs/pthread/pthread_rwlock_clockrdlock.c
create mode 100644 testsuites/psxtests/psxhdrs/pthread/pthread_rwlock_clockwrlock.c
diff --git a/spec/build/testsuites/psxtests/libpsxhdrs.yml b/spec/build/testsuites/psxtests/libpsxhdrs.yml
index 6a0ab6d4f7..d7fc430a36 100644
--- a/spec/build/testsuites/psxtests/libpsxhdrs.yml
+++ b/spec/build/testsuites/psxtests/libpsxhdrs.yml
@@ -432,6 +432,7 @@ source:
- testsuites/psxtests/psxhdrs/pthread/pthread_cond_signal.c
- testsuites/psxtests/psxhdrs/pthread/pthread_cond_timedwait.c
- testsuites/psxtests/psxhdrs/pthread/pthread_cond_wait.c
+- testsuites/psxtests/psxhdrs/pthread/pthread_cond_clockwait.c
- testsuites/psxtests/psxhdrs/pthread/pthread_condattr_destroy.c
- testsuites/psxtests/psxhdrs/pthread/pthread_condattr_getpshared.c
- testsuites/psxtests/psxhdrs/pthread/pthread_condattr_init.c
@@ -453,6 +454,7 @@ source:
- testsuites/psxtests/psxhdrs/pthread/pthread_mutex_lock.c
- testsuites/psxtests/psxhdrs/pthread/pthread_mutex_setprioceiling.c
- testsuites/psxtests/psxhdrs/pthread/pthread_mutex_timedlock.c
+- testsuites/psxtests/psxhdrs/pthread/pthread_mutex_clocklock.c
- testsuites/psxtests/psxhdrs/pthread/pthread_mutex_trylock.c
- testsuites/psxtests/psxhdrs/pthread/pthread_mutex_unlock.c
- testsuites/psxtests/psxhdrs/pthread/pthread_mutexattr_destroy.c
@@ -464,6 +466,8 @@ source:
- testsuites/psxtests/psxhdrs/pthread/pthread_mutexattr_setprotocol.c
- testsuites/psxtests/psxhdrs/pthread/pthread_mutexattr_setpshared.c
- testsuites/psxtests/psxhdrs/pthread/pthread_once.c
+- testsuites/psxtests/psxhdrs/pthread/pthread_rwlock_clockrdlock.c
+- testsuites/psxtests/psxhdrs/pthread/pthread_rwlock_clockwrlock.c
- testsuites/psxtests/psxhdrs/pthread/pthread_self.c
- testsuites/psxtests/psxhdrs/pthread/pthread_setcancelstate.c
- testsuites/psxtests/psxhdrs/pthread/pthread_setcanceltype.c
diff --git a/testsuites/psxtests/psxhdrs/pthread/pthread_cond_clockwait.c b/testsuites/psxtests/psxhdrs/pthread/pthread_cond_clockwait.c
new file mode 100644
index 0000000000..15485eb587
--- /dev/null
+++ b/testsuites/psxtests/psxhdrs/pthread/pthread_cond_clockwait.c
@@ -0,0 +1,59 @@
+/*
+* @file
+* @brief pthread_cond_clockwait() API Conformance Test
+*/
+
+/*
+* Copyright (C) 2021 Matthew Joyce
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted provided that the following conditions
+* are met:
+* 1. Redistributions of source code must retain the above copyright
+* notice, this list of conditions and the following disclaimer.
+* 2. Redistributions in binary form must reproduce the above copyright
+* notice, this list of conditions and the following disclaimer in the
+* documentation and/or other materials provided with the distribution.
+*
+* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+* POSSIBILITY OF SUCH DAMAGE.
+*/
+
+/* Defining to have access to function prototype in libc/include/pthread.h */
+#define _GNU_SOURCE
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include <pthread.h>
+
+#ifndef _POSIX_THREADS
+#error "rtems is supposed to have pthread_cond_clockwait"
+#endif
+
+int test( void );
+
+int test( void )
+{
+ pthread_cond_t cond = PTHREAD_COND_INITIALIZER;
+ pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER;
+ clockid_t clock_id = CLOCK_REALTIME;
+ struct timespec abstime;
+ abstime.tv_sec = 2;
+ int result;
+
+ /* This method appeared in the Issue 8 POSIX Standard */
+ result = pthread_cond_clockwait( &cond, &mutex, clock_id, &abstime );
+
+ return result;
+}
diff --git a/testsuites/psxtests/psxhdrs/pthread/pthread_mutex_clocklock.c b/testsuites/psxtests/psxhdrs/pthread/pthread_mutex_clocklock.c
new file mode 100644
index 0000000000..d5bae8c645
--- /dev/null
+++ b/testsuites/psxtests/psxhdrs/pthread/pthread_mutex_clocklock.c
@@ -0,0 +1,61 @@
+/*
+* @file
+* @brief pthread_mutex_clocklock() API Conformance Test
+*/
+
+/*
+* Copyright (C) 2021 Matthew Joyce
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted provided that the following conditions
+* are met:
+* 1. Redistributions of source code must retain the above copyright
+* notice, this list of conditions and the following disclaimer.
+* 2. Redistributions in binary form must reproduce the above copyright
+* notice, this list of conditions and the following disclaimer in the
+* documentation and/or other materials provided with the distribution.
+*
+* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+* POSSIBILITY OF SUCH DAMAGE.
+*/
+
+/* Defining to have access to function prototype in libc/include/pthread.h */
+#define _GNU_SOURCE
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include <pthread.h>
+
+#ifndef _POSIX_THREADS
+#error "rtems is supposed to have pthread_mutex_clocklock"
+#endif
+#ifndef _POSIX_TIMEOUTS
+#error "rtems is supposed to have pthread_mutex_clocklock"
+#endif
+
+int test( void );
+
+int test( void )
+{
+ pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER;
+ clockid_t clock_id = CLOCK_REALTIME;
+ struct timespec abstime;
+ abstime.tv_sec = 2;
+ int result;
+
+ /* This method appeared in the Issue 8 POSIX Standard */
+ result = pthread_mutex_clocklock( &mutex, clock_id, &abstime );
+
+ return result;
+}
diff --git a/testsuites/psxtests/psxhdrs/pthread/pthread_rwlock_clockrdlock.c b/testsuites/psxtests/psxhdrs/pthread/pthread_rwlock_clockrdlock.c
new file mode 100644
index 0000000000..3807f4bbf9
--- /dev/null
+++ b/testsuites/psxtests/psxhdrs/pthread/pthread_rwlock_clockrdlock.c
@@ -0,0 +1,64 @@
+/*
+* @file
+* @brief pthread_rwlock_clockrdlock() API Conformance Test
+*/
+
+/*
+* Copyright (C) 2021 Matthew Joyce
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted provided that the following conditions
+* are met:
+* 1. Redistributions of source code must retain the above copyright
+* notice, this list of conditions and the following disclaimer.
+* 2. Redistributions in binary form must reproduce the above copyright
+* notice, this list of conditions and the following disclaimer in the
+* documentation and/or other materials provided with the distribution.
+*
+* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+* POSSIBILITY OF SUCH DAMAGE.
+*/
+
+/* Defining to have access to function prototype in libc/include/pthread.h */
+#define _GNU_SOURCE
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include <pthread.h>
+
+#ifndef _POSIX_THREADS
+#error "rtems is supposed to have pthread_rwlock_clockrdlock"
+#endif
+#ifndef _POSIX_TIMEOUTS
+#error "rtems is supposed to have pthread_rwlock_clockrdlock"
+#endif
+#ifndef _POSIX_READER_WRITER_LOCKS
+#error "rtems is supposed to have pthread_rwlock_clockrdlock"
+#endif
+
+int test( void );
+
+int test( void )
+{
+ pthread_rwlock_t rwlock = PTHREAD_RWLOCK_INITIALIZER;
+ clockid_t clock_id = CLOCK_REALTIME;
+ struct timespec abstime;
+ abstime.tv_sec = 2;
+ int result;
+
+ /* This method appeared in the Issue 8 POSIX Standard */
+ result = pthread_rwlock_clockrdlock( &rwlock, clock_id, &abstime );
+
+ return result;
+}
diff --git a/testsuites/psxtests/psxhdrs/pthread/pthread_rwlock_clockwrlock.c b/testsuites/psxtests/psxhdrs/pthread/pthread_rwlock_clockwrlock.c
new file mode 100644
index 0000000000..e75212a3c3
--- /dev/null
+++ b/testsuites/psxtests/psxhdrs/pthread/pthread_rwlock_clockwrlock.c
@@ -0,0 +1,64 @@
+/*
+* @file
+* @brief pthread_rwlock_clockwrlock() API Conformance Test
+*/
+
+/*
+* Copyright (C) 2021 Matthew Joyce
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted provided that the following conditions
+* are met:
+* 1. Redistributions of source code must retain the above copyright
+* notice, this list of conditions and the following disclaimer.
+* 2. Redistributions in binary form must reproduce the above copyright
+* notice, this list of conditions and the following disclaimer in the
+* documentation and/or other materials provided with the distribution.
+*
+* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+* POSSIBILITY OF SUCH DAMAGE.
+*/
+
+/* Defining to have access to function prototype in libc/include/pthread.h */
+#define _GNU_SOURCE
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include <pthread.h>
+
+#ifndef _POSIX_THREADS
+#error "rtems is supposed to have pthread_rwlock_clockwrlock"
+#endif
+#ifndef _POSIX_TIMEOUTS
+#error "rtems is supposed to have pthread_rwlock_clockwrlock"
+#endif
+#ifndef _POSIX_READER_WRITER_LOCKS
+#error "rtems is supposed to have pthread_rwlock_clockwrlock"
+#endif
+
+int test( void );
+
+int test( void )
+{
+ pthread_rwlock_t rwlock = PTHREAD_RWLOCK_INITIALIZER;
+ clockid_t clock_id = CLOCK_REALTIME;
+ struct timespec abstime;
+ abstime.tv_sec = 2;
+ int result;
+
+ /* This method appeared in the Issue 8 POSIX Standard */
+ result = pthread_rwlock_clockwrlock( &rwlock, clock_id, &abstime );
+
+ return result;
+}
--
2.31.1
More information about the devel
mailing list