@@ -59,6 +59,4 @@ void *probe_free_addr(const char *file, const int lineno);
#define PROBE_FREE_ADDR() \
probe_free_addr(__FILE__, __LINE__)
-time_t get_ipc_timestamp(void);
-
#endif /* newlibipc.h */
@@ -20,4 +20,10 @@ int tst_clock_settime(clockid_t clk_id, struct timespec *ts);
*/
const char *tst_clock_name(clockid_t clk_id);
+/*
+ * Returns current system time for file/IPC operations, which may slightly lag
+ * behind time() return values.
+ */
+time_t tst_get_fs_timestamp(void);
+
#endif /* TST_CLOCKS__ */
@@ -142,3 +142,16 @@ const char *tst_clock_name(clockid_t clk_id)
return "INVALID/UNKNOWN CLOCK";
}
}
+
+time_t tst_get_fs_timestamp(void)
+{
+ struct timespec ts;
+ int ret;
+
+ ret = tst_clock_gettime(CLOCK_REALTIME_COARSE, &ts);
+
+ if (ret < 0)
+ tst_brk(TBROK | TERRNO, "clock_gettime(CLOCK_REALTIME_COARSE)");
+
+ return ts.tv_sec;
+}
@@ -23,7 +23,6 @@
#include "libnewipc.h"
#include "tst_safe_stdio.h"
#include "tst_safe_sysv_ipc.h"
-#include "tst_clocks.h"
#define BUFSIZE 1024
@@ -87,15 +86,3 @@ void *probe_free_addr(const char *file, const int lineno)
return addr;
}
-
-time_t get_ipc_timestamp(void)
-{
- struct timespec ts;
- int ret;
-
- ret = tst_clock_gettime(CLOCK_REALTIME_COARSE, &ts);
- if (ret < 0)
- tst_brk(TBROK | TERRNO, "clock_gettime(CLOCK_REALTIME_COARSE)");
-
- return ts.tv_sec;
-}
@@ -9,6 +9,7 @@
#include <sys/wait.h>
#include "tst_test.h"
#include "tst_safe_sysv_ipc.h"
+#include "tst_clocks.h"
#include "libnewipc.h"
static key_t msgkey;
@@ -25,13 +26,13 @@ static void verify_msgrcv(void)
SAFE_MSGSND(queue_id, &snd_buf, MSGSIZE, 0);
- before_rcv = get_ipc_timestamp();
+ before_rcv = tst_get_fs_timestamp();
TEST(msgrcv(queue_id, &rcv_buf, MSGSIZE, 1, 0));
if (TST_RET == -1) {
tst_res(TFAIL | TTERRNO, "msgrcv failed");
return;
}
- after_rcv = get_ipc_timestamp();
+ after_rcv = tst_get_fs_timestamp();
if (strcmp(rcv_buf.mtext, snd_buf.mtext) == 0)
tst_res(TPASS, "message received(%s) = message sent(%s)",
@@ -15,6 +15,7 @@
#include "tst_test.h"
#include "tst_safe_sysv_ipc.h"
+#include "tst_clocks.h"
#include "libnewipc.h"
static key_t msgkey;
@@ -29,13 +30,13 @@ static void verify_msgsnd(void)
struct msqid_ds qs_buf;
time_t before_snd, after_snd;
- before_snd = get_ipc_timestamp();
+ before_snd = tst_get_fs_timestamp();
TEST(msgsnd(queue_id, &snd_buf, MSGSIZE, 0));
if (TST_RET == -1) {
tst_res(TFAIL | TTERRNO, "msgsnd() failed");
return;
}
- after_snd = get_ipc_timestamp();
+ after_snd = tst_get_fs_timestamp();
SAFE_MSGCTL(queue_id, IPC_STAT, &qs_buf);
@@ -21,6 +21,7 @@
#include <stdlib.h>
#include "tst_test.h"
#include "tst_safe_sysv_ipc.h"
+#include "tst_clocks.h"
#include "libnewipc.h"
#define NCHILD 20
@@ -243,9 +244,9 @@ static int get_shm_idx_from_id(int shm_id)
static void setup(void)
{
- ctime_min = get_ipc_timestamp();
+ ctime_min = tst_get_fs_timestamp();
shm_id = SAFE_SHMGET(IPC_PRIVATE, SHM_SIZE, IPC_CREAT | SHM_RW);
- ctime_max = get_ipc_timestamp();
+ ctime_max = tst_get_fs_timestamp();
shm_idx = get_shm_idx_from_id(shm_id);
The get_ipc_timestamp() helper functions is also needed for generic FS tests. Rename it to tst_get_fs_timestamp() and move it to tst_clocks.h. Signed-off-by: Martin Doucha <mdoucha@suse.cz> --- I forgot to add the tst_ prefix to the renamed function. Sorry about resubmitting so quickly. include/libnewipc.h | 2 -- include/tst_clocks.h | 6 ++++++ lib/tst_clocks.c | 13 +++++++++++++ libs/libltpnewipc/libnewipc.c | 13 ------------- testcases/kernel/syscalls/ipc/msgrcv/msgrcv01.c | 5 +++-- testcases/kernel/syscalls/ipc/msgsnd/msgsnd01.c | 5 +++-- testcases/kernel/syscalls/ipc/shmctl/shmctl01.c | 5 +++-- 7 files changed, 28 insertions(+), 21 deletions(-)