[LTP] [PATCH v2] openposix: timer_*/speculative: Skip untestable optional behavior on Linux
Avinesh Kumar
avinesh.kumar@suse.com
Wed Aug 19 11:31:59 CEST 2026
From: Avinesh Kumar <avinesh.kumar@suse.com>
timer_delete/speculative/5-{1,2}, timer_getoverrun/speculative/6-{1,2,3},
timer_gettime/speculative/6-{1,2,3}, and timer_settime/speculative/12-{1,2,3}
all test EINVAL for an invalid timerid, which POSIX Issue 6/TC2 made
optional rather than required.[0][1]
Linux does not implement this optional behavior, so skip it there with
PTS_UNSUPPORTED and leave the test intact for implementations that do.
[0] https://pubs.opengroup.org/onlinepubs/9799919799/functions/timer_getoverrun.html
[1] https://pubs.opengroup.org/onlinepubs/9799919799/functions/timer_delete.html
Suggested-by: Cyril Hrubis <chrubis@suse.cz>
Signed-off-by: Avinesh Kumar <avinesh.kumar@suse.com>
---
.../conformance/interfaces/timer_delete/speculative/5-1.c | 5 +++++
.../conformance/interfaces/timer_delete/speculative/5-2.c | 5 +++++
.../interfaces/timer_getoverrun/speculative/6-1.c | 5 +++++
.../interfaces/timer_getoverrun/speculative/6-2.c | 5 +++++
.../interfaces/timer_getoverrun/speculative/6-3.c | 5 +++++
.../conformance/interfaces/timer_gettime/speculative/6-1.c | 5 +++++
.../conformance/interfaces/timer_gettime/speculative/6-2.c | 5 +++++
.../conformance/interfaces/timer_gettime/speculative/6-3.c | 5 +++++
.../conformance/interfaces/timer_settime/speculative/12-1.c | 5 +++++
.../conformance/interfaces/timer_settime/speculative/12-2.c | 5 +++++
.../conformance/interfaces/timer_settime/speculative/12-3.c | 5 +++++
11 files changed, 55 insertions(+)
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/timer_delete/speculative/5-1.c b/testcases/open_posix_testsuite/conformance/interfaces/timer_delete/speculative/5-1.c
index 912cf5800e6f..7c776236d31d 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/timer_delete/speculative/5-1.c
+++ b/testcases/open_posix_testsuite/conformance/interfaces/timer_delete/speculative/5-1.c
@@ -19,6 +19,10 @@
int test_main(int argc PTS_ATTRIBUTE_UNUSED, char **argv PTS_ATTRIBUTE_UNUSED)
{
+#ifdef __linux__
+ printf("Linux does not implement this optional behavior\n");
+ return PTS_UNSUPPORTED;
+#else
timer_t tid;
int tval = BOGUSTIMERID;
tid = (timer_t) & tval;
@@ -37,4 +41,5 @@ int test_main(int argc PTS_ATTRIBUTE_UNUSED, char **argv PTS_ATTRIBUTE_UNUSED)
printf("timer_delete() did not return -1\n");
return PTS_PASS;
+#endif
}
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/timer_delete/speculative/5-2.c b/testcases/open_posix_testsuite/conformance/interfaces/timer_delete/speculative/5-2.c
index 74eeb46793b2..63574bfd58f7 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/timer_delete/speculative/5-2.c
+++ b/testcases/open_posix_testsuite/conformance/interfaces/timer_delete/speculative/5-2.c
@@ -34,6 +34,10 @@ static void handler(int signo PTS_ATTRIBUTE_UNUSED)
int test_main(int argc PTS_ATTRIBUTE_UNUSED, char **argv PTS_ATTRIBUTE_UNUSED)
{
+#ifdef __linux__
+ printf("Linux does not implement this optional behavior\n");
+ return PTS_UNSUPPORTED;
+#else
struct sigevent ev;
struct sigaction act;
timer_t tid;
@@ -91,4 +95,5 @@ int test_main(int argc PTS_ATTRIBUTE_UNUSED, char **argv PTS_ATTRIBUTE_UNUSED)
printf("fcn did not return -1\n");
return PTS_PASS;
+#endif
}
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/timer_getoverrun/speculative/6-1.c b/testcases/open_posix_testsuite/conformance/interfaces/timer_getoverrun/speculative/6-1.c
index 6e18560e5084..31c8a4df3d17 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/timer_getoverrun/speculative/6-1.c
+++ b/testcases/open_posix_testsuite/conformance/interfaces/timer_getoverrun/speculative/6-1.c
@@ -19,6 +19,10 @@
int test_main(int argc PTS_ATTRIBUTE_UNUSED, char **argv PTS_ATTRIBUTE_UNUSED)
{
+#ifdef __linux__
+ printf("Linux does not implement this optional behavior\n");
+ return PTS_UNSUPPORTED;
+#else
timer_t tid;
int tval = BOGUSTID;
tid = (timer_t) & tval;
@@ -36,4 +40,5 @@ int test_main(int argc PTS_ATTRIBUTE_UNUSED, char **argv PTS_ATTRIBUTE_UNUSED)
printf("fcn did not return -1\n");
return PTS_PASS;
+#endif
}
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/timer_getoverrun/speculative/6-2.c b/testcases/open_posix_testsuite/conformance/interfaces/timer_getoverrun/speculative/6-2.c
index 2d7f3967ced1..3004b1eb80ba 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/timer_getoverrun/speculative/6-2.c
+++ b/testcases/open_posix_testsuite/conformance/interfaces/timer_getoverrun/speculative/6-2.c
@@ -26,6 +26,10 @@
int test_main(int argc PTS_ATTRIBUTE_UNUSED, char **argv PTS_ATTRIBUTE_UNUSED)
{
+#ifdef __linux__
+ printf("Linux does not implement this optional behavior\n");
+ return PTS_UNSUPPORTED;
+#else
struct sigevent ev;
timer_t tid;
@@ -55,4 +59,5 @@ int test_main(int argc PTS_ATTRIBUTE_UNUSED, char **argv PTS_ATTRIBUTE_UNUSED)
printf("fcn did not return -1\n");
return PTS_PASS;
+#endif
}
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/timer_getoverrun/speculative/6-3.c b/testcases/open_posix_testsuite/conformance/interfaces/timer_getoverrun/speculative/6-3.c
index 933a31dcd3e7..bd443e7629aa 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/timer_getoverrun/speculative/6-3.c
+++ b/testcases/open_posix_testsuite/conformance/interfaces/timer_getoverrun/speculative/6-3.c
@@ -23,6 +23,10 @@
int test_main(int argc PTS_ATTRIBUTE_UNUSED, char **argv PTS_ATTRIBUTE_UNUSED)
{
+#ifdef __linux__
+ printf("Linux does not implement this optional behavior\n");
+ return PTS_UNSUPPORTED;
+#else
struct sigevent ev;
timer_t tid;
@@ -47,4 +51,5 @@ int test_main(int argc PTS_ATTRIBUTE_UNUSED, char **argv PTS_ATTRIBUTE_UNUSED)
printf("fcn did not return -1\n");
return PTS_PASS;
+#endif
}
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/timer_gettime/speculative/6-1.c b/testcases/open_posix_testsuite/conformance/interfaces/timer_gettime/speculative/6-1.c
index d09c2f70901d..82a2f0b508dd 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/timer_gettime/speculative/6-1.c
+++ b/testcases/open_posix_testsuite/conformance/interfaces/timer_gettime/speculative/6-1.c
@@ -19,6 +19,10 @@
int test_main(int argc PTS_ATTRIBUTE_UNUSED, char **argv PTS_ATTRIBUTE_UNUSED)
{
+#ifdef __linux__
+ printf("Linux does not implement this optional behavior\n");
+ return PTS_UNSUPPORTED;
+#else
timer_t tid;
struct itimerspec its;
int tval = BOGUSTID;
@@ -35,4 +39,5 @@ int test_main(int argc PTS_ATTRIBUTE_UNUSED, char **argv PTS_ATTRIBUTE_UNUSED)
}
printf("fcn did not return -1\n");
return PTS_PASS;
+#endif
}
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/timer_gettime/speculative/6-2.c b/testcases/open_posix_testsuite/conformance/interfaces/timer_gettime/speculative/6-2.c
index 88a8d221914b..df103dd78b9d 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/timer_gettime/speculative/6-2.c
+++ b/testcases/open_posix_testsuite/conformance/interfaces/timer_gettime/speculative/6-2.c
@@ -21,6 +21,10 @@
int test_main(int argc PTS_ATTRIBUTE_UNUSED, char **argv PTS_ATTRIBUTE_UNUSED)
{
+#ifdef __linux__
+ printf("Linux does not implement this optional behavior\n");
+ return PTS_UNSUPPORTED;
+#else
struct sigevent ev;
timer_t tid;
struct itimerspec its;
@@ -45,4 +49,5 @@ int test_main(int argc PTS_ATTRIBUTE_UNUSED, char **argv PTS_ATTRIBUTE_UNUSED)
}
printf("fcn did not return -1\n");
return PTS_PASS;
+#endif
}
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/timer_gettime/speculative/6-3.c b/testcases/open_posix_testsuite/conformance/interfaces/timer_gettime/speculative/6-3.c
index ef7c37f5eb99..4b901e0d4329 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/timer_gettime/speculative/6-3.c
+++ b/testcases/open_posix_testsuite/conformance/interfaces/timer_gettime/speculative/6-3.c
@@ -21,6 +21,10 @@
int test_main(int argc PTS_ATTRIBUTE_UNUSED, char **argv PTS_ATTRIBUTE_UNUSED)
{
+#ifdef __linux__
+ printf("Linux does not implement this optional behavior\n");
+ return PTS_UNSUPPORTED;
+#else
struct sigevent ev;
timer_t tid;
struct itimerspec its;
@@ -49,4 +53,5 @@ int test_main(int argc PTS_ATTRIBUTE_UNUSED, char **argv PTS_ATTRIBUTE_UNUSED)
}
printf("fcn did not return -1\n");
return PTS_PASS;
+#endif
}
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/timer_settime/speculative/12-1.c b/testcases/open_posix_testsuite/conformance/interfaces/timer_settime/speculative/12-1.c
index 5d4e1dda30ba..e20766ba5838 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/timer_settime/speculative/12-1.c
+++ b/testcases/open_posix_testsuite/conformance/interfaces/timer_settime/speculative/12-1.c
@@ -18,6 +18,10 @@
int test_main(int argc PTS_ATTRIBUTE_UNUSED, char **argv PTS_ATTRIBUTE_UNUSED)
{
+#ifdef __linux__
+ printf("Linux does not implement this optional behavior\n");
+ return PTS_UNSUPPORTED;
+#else
timer_t tid;
struct itimerspec its;
int tval = BOGUSTID;
@@ -39,4 +43,5 @@ int test_main(int argc PTS_ATTRIBUTE_UNUSED, char **argv PTS_ATTRIBUTE_UNUSED)
}
printf("fcn did not return -1\n");
return PTS_PASS;
+#endif
}
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/timer_settime/speculative/12-2.c b/testcases/open_posix_testsuite/conformance/interfaces/timer_settime/speculative/12-2.c
index 3b6901c25dc7..83c7aa10c7ce 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/timer_settime/speculative/12-2.c
+++ b/testcases/open_posix_testsuite/conformance/interfaces/timer_settime/speculative/12-2.c
@@ -25,6 +25,10 @@
int test_main(int argc PTS_ATTRIBUTE_UNUSED, char **argv PTS_ATTRIBUTE_UNUSED)
{
+#ifdef __linux__
+ printf("Linux does not implement this optional behavior\n");
+ return PTS_UNSUPPORTED;
+#else
struct sigevent ev;
timer_t tid;
struct itimerspec its;
@@ -54,4 +58,5 @@ int test_main(int argc PTS_ATTRIBUTE_UNUSED, char **argv PTS_ATTRIBUTE_UNUSED)
}
printf("fcn did not return -1\n");
return PTS_PASS;
+#endif
}
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/timer_settime/speculative/12-3.c b/testcases/open_posix_testsuite/conformance/interfaces/timer_settime/speculative/12-3.c
index 04ceb2745af3..c4c469410874 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/timer_settime/speculative/12-3.c
+++ b/testcases/open_posix_testsuite/conformance/interfaces/timer_settime/speculative/12-3.c
@@ -23,6 +23,10 @@
int test_main(int argc PTS_ATTRIBUTE_UNUSED, char **argv PTS_ATTRIBUTE_UNUSED)
{
+#ifdef __linux__
+ printf("Linux does not implement this optional behavior\n");
+ return PTS_UNSUPPORTED;
+#else
struct sigevent ev;
timer_t tid;
struct itimerspec its;
@@ -56,4 +60,5 @@ int test_main(int argc PTS_ATTRIBUTE_UNUSED, char **argv PTS_ATTRIBUTE_UNUSED)
}
printf("fcn did not return -1\n");
return PTS_PASS;
+#endif
}
--
2.55.0
More information about the ltp
mailing list