summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xtest/misc/tst-msgctl.c17
-rw-r--r--test/misc/tst-semctl.c13
-rw-r--r--test/misc/tst-shmctl.c14
3 files changed, 42 insertions, 2 deletions
diff --git a/test/misc/tst-msgctl.c b/test/misc/tst-msgctl.c
index d11380b..ac6ae34 100755
--- a/test/misc/tst-msgctl.c
+++ b/test/misc/tst-msgctl.c
@@ -34,9 +34,17 @@ void print_msqid_ds(struct msqid_ds *buf) {
int main() {
+ struct timespec ts_init, ts_final;
+
+ // Save system time
+ if (clock_gettime(CLOCK_REALTIME, &ts_init) == -1) {
+ perror("Error getting time");
+ return 1;
+ }
+
if (clock_settime(CLOCK_REALTIME, &ts) == -1) { // Set the time to after 2038
- perror("Error setting time");
- return 1;
+ perror("Error setting time");
+ return 1;
}
key_t key = ftok(".", 123);
@@ -109,5 +117,10 @@ int main() {
msgctl(msqid, IPC_RMID, NULL);
+ // Restore system time
+ clock_gettime(CLOCK_REALTIME, &ts_final);
+ ts_init.tv_sec = ts_init.tv_sec + ts_final.tv_sec - ts.tv_sec;
+ clock_settime(CLOCK_REALTIME, &ts_init);
+
return 0;
}
diff --git a/test/misc/tst-semctl.c b/test/misc/tst-semctl.c
index a4d69e2..99647d1 100644
--- a/test/misc/tst-semctl.c
+++ b/test/misc/tst-semctl.c
@@ -32,6 +32,14 @@ int main() {
int semid;
union semun arg;
struct semid_ds ds;
+ struct timespec ts_init, ts_final;
+
+ // Save system time
+ if (clock_gettime(CLOCK_REALTIME, &ts_init) == -1) {
+ perror("Error getting time");
+ return 1;
+ }
+
if (clock_settime(CLOCK_REALTIME, &ts) == -1) { // Set the time to after 2038
perror("Error setting time");
@@ -80,5 +88,10 @@ int main() {
exit(1);
}
+ // Restore system time
+ clock_gettime(CLOCK_REALTIME, &ts_final);
+ ts_init.tv_sec = ts_init.tv_sec + ts_final.tv_sec - ts.tv_sec;
+ clock_settime(CLOCK_REALTIME, &ts_init);
+
return 0;
}
diff --git a/test/misc/tst-shmctl.c b/test/misc/tst-shmctl.c
index ca51377..36dda83 100644
--- a/test/misc/tst-shmctl.c
+++ b/test/misc/tst-shmctl.c
@@ -27,6 +27,14 @@ void print_shmid_ds(struct shmid_ds *buf) {
int main() {
+ struct timespec ts_init, ts_final;
+
+ // Save system time
+ if (clock_gettime(CLOCK_REALTIME, &ts_init) == -1) {
+ perror("Error getting time");
+ return 1;
+ }
+
if (clock_settime(CLOCK_REALTIME, &ts) == -1) { // Set the time to after 2038
perror("Error setting time");
return 1;
@@ -66,5 +74,11 @@ int main() {
print_shmid_ds(&buf);
shmctl(shmid, IPC_RMID, NULL);
+
+ // Restore system time
+ clock_gettime(CLOCK_REALTIME, &ts_final);
+ ts_init.tv_sec = ts_init.tv_sec + ts_final.tv_sec - ts.tv_sec;
+ clock_settime(CLOCK_REALTIME, &ts_init);
+
return 0;
}