Browse Source

Restore system time after *ctl functions tests

yliu 1 month ago
parent
commit
a0ccc413f3
3 changed files with 42 additions and 2 deletions
  1. 15 2
      test/misc/tst-msgctl.c
  2. 13 0
      test/misc/tst-semctl.c
  3. 14 0
      test/misc/tst-shmctl.c

+ 15 - 2
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;
 }

+ 13 - 0
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;
 }

+ 14 - 0
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;
 }