diff mbox series

[rt-tests,1/4] rt-utils: Move timestamp calc helper to common header

Message ID 20200901154657.30198-2-dwagner@suse.de
State New
Headers show
Series Fix signaltest output when quiet | expand

Commit Message

Daniel Wagner Sept. 1, 2020, 3:46 p.m. UTC
Several test implement the same helpers. Move it to a
common header to avoid code duplication.

Signed-off-by: Daniel Wagner <dwagner@suse.de>
---
 src/cyclictest/cyclictest.c | 40 -------------------------------------
 src/include/rt-utils.h      | 40 +++++++++++++++++++++++++++++++++++++
 src/pi_tests/pi_stress.c    |  8 --------
 src/signaltest/signaltest.c | 15 --------------
 4 files changed, 40 insertions(+), 63 deletions(-)

Comments

John Kacur Sept. 3, 2020, 4:36 p.m. UTC | #1
On Tue, 1 Sep 2020, Daniel Wagner wrote:

> Several test implement the same helpers. Move it to a
> common header to avoid code duplication.
> 
> Signed-off-by: Daniel Wagner <dwagner@suse.de>
> ---
>  src/cyclictest/cyclictest.c | 40 -------------------------------------
>  src/include/rt-utils.h      | 40 +++++++++++++++++++++++++++++++++++++
>  src/pi_tests/pi_stress.c    |  8 --------
>  src/signaltest/signaltest.c | 15 --------------
>  4 files changed, 40 insertions(+), 63 deletions(-)
> 
> diff --git a/src/cyclictest/cyclictest.c b/src/cyclictest/cyclictest.c
> index dd418939a0c2..ae1d64a46b21 100644
> --- a/src/cyclictest/cyclictest.c
> +++ b/src/cyclictest/cyclictest.c
> @@ -86,9 +86,6 @@ extern int clock_nanosleep(clockid_t __clock_id, int __flags,
>  			   struct timespec *__rem);
>  #endif	/* __UCLIBC__ */
>  
> -#define USEC_PER_SEC		1000000
> -#define NSEC_PER_SEC		1000000000
> -
>  #define HIST_MAX		1000000
>  
>  #define MODE_CYCLIC		0
> @@ -291,43 +288,6 @@ enum {
>  static int trace_fd     = -1;
>  static int tracemark_fd = -1;
>  
> -static inline void tsnorm(struct timespec *ts)
> -{
> -	while (ts->tv_nsec >= NSEC_PER_SEC) {
> -		ts->tv_nsec -= NSEC_PER_SEC;
> -		ts->tv_sec++;
> -	}
> -}
> -
> -static inline int tsgreater(struct timespec *a, struct timespec *b)
> -{
> -	return ((a->tv_sec > b->tv_sec) ||
> -		(a->tv_sec == b->tv_sec && a->tv_nsec > b->tv_nsec));
> -}
> -
> -static inline int64_t calcdiff(struct timespec t1, struct timespec t2)
> -{
> -	int64_t diff = USEC_PER_SEC * (long long)((int) t1.tv_sec - (int) t2.tv_sec);
> -	diff += ((int) t1.tv_nsec - (int) t2.tv_nsec) / 1000;
> -	return diff;
> -}
> -
> -static inline int64_t calcdiff_ns(struct timespec t1, struct timespec t2)
> -{
> -	int64_t diff;
> -	diff = NSEC_PER_SEC * (int64_t)((int) t1.tv_sec - (int) t2.tv_sec);
> -	diff += ((int) t1.tv_nsec - (int) t2.tv_nsec);
> -	return diff;
> -}
> -
> -static inline int64_t calctime(struct timespec t)
> -{
> -	int64_t time;
> -	time = USEC_PER_SEC * t.tv_sec;
> -	time += ((int) t.tv_nsec) / 1000;
> -	return time;
> -}
> -
>  /*
>   * Raise the soft priority limit up to prio, if that is less than or equal
>   * to the hard limit
> diff --git a/src/include/rt-utils.h b/src/include/rt-utils.h
> index 51489b408e6c..fdd790600d68 100644
> --- a/src/include/rt-utils.h
> +++ b/src/include/rt-utils.h
> @@ -30,4 +30,44 @@ int parse_time_string(char *val);
>  void enable_trace_mark(void);
>  void tracemark(char *fmt, ...) __attribute__((format(printf, 1, 2)));
>  
> +#define USEC_PER_SEC		1000000
> +#define NSEC_PER_SEC		1000000000
> +
> +static inline void tsnorm(struct timespec *ts)
> +{
> +	while (ts->tv_nsec >= NSEC_PER_SEC) {
> +		ts->tv_nsec -= NSEC_PER_SEC;
> +		ts->tv_sec++;
> +	}
> +}
> +
> +static inline int tsgreater(struct timespec *a, struct timespec *b)
> +{
> +	return ((a->tv_sec > b->tv_sec) ||
> +		(a->tv_sec == b->tv_sec && a->tv_nsec > b->tv_nsec));
> +}
> +
> +static inline int64_t calcdiff(struct timespec t1, struct timespec t2)
> +{
> +	int64_t diff = USEC_PER_SEC * (long long)((int) t1.tv_sec - (int) t2.tv_sec);
> +	diff += ((int) t1.tv_nsec - (int) t2.tv_nsec) / 1000;
> +	return diff;
> +}
> +
> +static inline int64_t calcdiff_ns(struct timespec t1, struct timespec t2)
> +{
> +	int64_t diff;
> +	diff = NSEC_PER_SEC * (int64_t)((int) t1.tv_sec - (int) t2.tv_sec);
> +	diff += ((int) t1.tv_nsec - (int) t2.tv_nsec);
> +	return diff;
> +}
> +
> +static inline int64_t calctime(struct timespec t)
> +{
> +	int64_t time;
> +	time = USEC_PER_SEC * t.tv_sec;
> +	time += ((int) t.tv_nsec) / 1000;
> +	return time;
> +}
> +
>  #endif	/* __RT_UTILS.H */
> diff --git a/src/pi_tests/pi_stress.c b/src/pi_tests/pi_stress.c
> index eba21d7727bc..93d7044c9f22 100644
> --- a/src/pi_tests/pi_stress.c
> +++ b/src/pi_tests/pi_stress.c
> @@ -519,14 +519,6 @@ int pending_interrupt(void)
>  	return interrupted = sigismember(&pending, SIGINT);
>  }
>  
> -static inline void tsnorm(struct timespec *ts)
> -{
> -	while (ts->tv_nsec >= NSEC_PER_SEC) {
> -		ts->tv_nsec -= NSEC_PER_SEC;
> -		ts->tv_sec++;
> -	}
> -}
> -
>  /*
>   * this routine serves two purposes:
>   *   1. report progress
> diff --git a/src/signaltest/signaltest.c b/src/signaltest/signaltest.c
> index b5c86c5635cb..42a70facc6b3 100644
> --- a/src/signaltest/signaltest.c
> +++ b/src/signaltest/signaltest.c
> @@ -69,21 +69,6 @@ static int shutdown;
>  static int tracelimit = 0;
>  static int oldtrace = 0;
>  
> -static inline void tsnorm(struct timespec *ts)
> -{
> -	while (ts->tv_nsec >= NSEC_PER_SEC) {
> -		ts->tv_nsec -= NSEC_PER_SEC;
> -		ts->tv_sec++;
> -	}
> -}
> -
> -static inline long calcdiff(struct timespec t1, struct timespec t2)
> -{
> -	long diff;
> -	diff = USEC_PER_SEC * ((int) t1.tv_sec - (int) t2.tv_sec);
> -	diff += ((int) t1.tv_nsec - (int) t2.tv_nsec) / 1000;
> -	return diff;
> -}
>  
>  /*
>   * signal thread
> -- 
> 2.28.0
> 
> 
Signed-off-by: John Kacur <jkacur@redhat.com>
diff mbox series

Patch

diff --git a/src/cyclictest/cyclictest.c b/src/cyclictest/cyclictest.c
index dd418939a0c2..ae1d64a46b21 100644
--- a/src/cyclictest/cyclictest.c
+++ b/src/cyclictest/cyclictest.c
@@ -86,9 +86,6 @@  extern int clock_nanosleep(clockid_t __clock_id, int __flags,
 			   struct timespec *__rem);
 #endif	/* __UCLIBC__ */
 
-#define USEC_PER_SEC		1000000
-#define NSEC_PER_SEC		1000000000
-
 #define HIST_MAX		1000000
 
 #define MODE_CYCLIC		0
@@ -291,43 +288,6 @@  enum {
 static int trace_fd     = -1;
 static int tracemark_fd = -1;
 
-static inline void tsnorm(struct timespec *ts)
-{
-	while (ts->tv_nsec >= NSEC_PER_SEC) {
-		ts->tv_nsec -= NSEC_PER_SEC;
-		ts->tv_sec++;
-	}
-}
-
-static inline int tsgreater(struct timespec *a, struct timespec *b)
-{
-	return ((a->tv_sec > b->tv_sec) ||
-		(a->tv_sec == b->tv_sec && a->tv_nsec > b->tv_nsec));
-}
-
-static inline int64_t calcdiff(struct timespec t1, struct timespec t2)
-{
-	int64_t diff = USEC_PER_SEC * (long long)((int) t1.tv_sec - (int) t2.tv_sec);
-	diff += ((int) t1.tv_nsec - (int) t2.tv_nsec) / 1000;
-	return diff;
-}
-
-static inline int64_t calcdiff_ns(struct timespec t1, struct timespec t2)
-{
-	int64_t diff;
-	diff = NSEC_PER_SEC * (int64_t)((int) t1.tv_sec - (int) t2.tv_sec);
-	diff += ((int) t1.tv_nsec - (int) t2.tv_nsec);
-	return diff;
-}
-
-static inline int64_t calctime(struct timespec t)
-{
-	int64_t time;
-	time = USEC_PER_SEC * t.tv_sec;
-	time += ((int) t.tv_nsec) / 1000;
-	return time;
-}
-
 /*
  * Raise the soft priority limit up to prio, if that is less than or equal
  * to the hard limit
diff --git a/src/include/rt-utils.h b/src/include/rt-utils.h
index 51489b408e6c..fdd790600d68 100644
--- a/src/include/rt-utils.h
+++ b/src/include/rt-utils.h
@@ -30,4 +30,44 @@  int parse_time_string(char *val);
 void enable_trace_mark(void);
 void tracemark(char *fmt, ...) __attribute__((format(printf, 1, 2)));
 
+#define USEC_PER_SEC		1000000
+#define NSEC_PER_SEC		1000000000
+
+static inline void tsnorm(struct timespec *ts)
+{
+	while (ts->tv_nsec >= NSEC_PER_SEC) {
+		ts->tv_nsec -= NSEC_PER_SEC;
+		ts->tv_sec++;
+	}
+}
+
+static inline int tsgreater(struct timespec *a, struct timespec *b)
+{
+	return ((a->tv_sec > b->tv_sec) ||
+		(a->tv_sec == b->tv_sec && a->tv_nsec > b->tv_nsec));
+}
+
+static inline int64_t calcdiff(struct timespec t1, struct timespec t2)
+{
+	int64_t diff = USEC_PER_SEC * (long long)((int) t1.tv_sec - (int) t2.tv_sec);
+	diff += ((int) t1.tv_nsec - (int) t2.tv_nsec) / 1000;
+	return diff;
+}
+
+static inline int64_t calcdiff_ns(struct timespec t1, struct timespec t2)
+{
+	int64_t diff;
+	diff = NSEC_PER_SEC * (int64_t)((int) t1.tv_sec - (int) t2.tv_sec);
+	diff += ((int) t1.tv_nsec - (int) t2.tv_nsec);
+	return diff;
+}
+
+static inline int64_t calctime(struct timespec t)
+{
+	int64_t time;
+	time = USEC_PER_SEC * t.tv_sec;
+	time += ((int) t.tv_nsec) / 1000;
+	return time;
+}
+
 #endif	/* __RT_UTILS.H */
diff --git a/src/pi_tests/pi_stress.c b/src/pi_tests/pi_stress.c
index eba21d7727bc..93d7044c9f22 100644
--- a/src/pi_tests/pi_stress.c
+++ b/src/pi_tests/pi_stress.c
@@ -519,14 +519,6 @@  int pending_interrupt(void)
 	return interrupted = sigismember(&pending, SIGINT);
 }
 
-static inline void tsnorm(struct timespec *ts)
-{
-	while (ts->tv_nsec >= NSEC_PER_SEC) {
-		ts->tv_nsec -= NSEC_PER_SEC;
-		ts->tv_sec++;
-	}
-}
-
 /*
  * this routine serves two purposes:
  *   1. report progress
diff --git a/src/signaltest/signaltest.c b/src/signaltest/signaltest.c
index b5c86c5635cb..42a70facc6b3 100644
--- a/src/signaltest/signaltest.c
+++ b/src/signaltest/signaltest.c
@@ -69,21 +69,6 @@  static int shutdown;
 static int tracelimit = 0;
 static int oldtrace = 0;
 
-static inline void tsnorm(struct timespec *ts)
-{
-	while (ts->tv_nsec >= NSEC_PER_SEC) {
-		ts->tv_nsec -= NSEC_PER_SEC;
-		ts->tv_sec++;
-	}
-}
-
-static inline long calcdiff(struct timespec t1, struct timespec t2)
-{
-	long diff;
-	diff = USEC_PER_SEC * ((int) t1.tv_sec - (int) t2.tv_sec);
-	diff += ((int) t1.tv_nsec - (int) t2.tv_nsec) / 1000;
-	return diff;
-}
 
 /*
  * signal thread