[MERGED] libosmocore[master]: timer_test: print more details to stdout to check

This is merely a historical archive of years 2008-2021, before the migration to mailman3.

A maintained and still updated list archive can be found at https://lists.osmocom.org/hyperkitty/list/gerrit-log@lists.osmocom.org/.

Harald Welte gerrit-no-reply at lists.osmocom.org
Fri Sep 23 02:18:15 UTC 2016


Harald Welte has submitted this change and it was merged.

Change subject: timer_test: print more details to stdout to check
......................................................................


timer_test: print more details to stdout to check

The test is now fully deterministic, so include all detail in stdout, to check
for.

Change-Id: Iecf6387f1d25253fcf1260777673853030c1d326
---
M tests/timer/timer_test.c
M tests/timer/timer_test.ok
2 files changed, 116 insertions(+), 4 deletions(-)

Approvals:
  Harald Welte: Looks good to me, approved
  Jenkins Builder: Verified



diff --git a/tests/timer/timer_test.c b/tests/timer/timer_test.c
index 12caecf..ec85c04 100644
--- a/tests/timer/timer_test.c
+++ b/tests/timer/timer_test.c
@@ -73,6 +73,7 @@
 	unsigned int *step = data;
 	unsigned int add_in_this_step;
 	int i;
+	printf("main_timer_fired()\n");
 
 	if (*step == timer_nsteps) {
 		printf("Main timer has finished, please, "
@@ -98,6 +99,8 @@
 		v->stop.tv_usec = v->start.tv_usec;
 		osmo_timer_schedule(&v->timer, seconds, 0);
 		llist_add(&v->head, &timer_test_list);
+		printf("scheduled timer at %d.%06d\n",
+		       (int)v->stop.tv_sec, (int)v->stop.tv_usec);
 	}
 	printf("added %d timers in step %u (expired=%u)\n",
 		add_in_this_step, *step, expired_timers);
@@ -111,7 +114,7 @@
 	struct test_timer *v = data, *this, *tmp;
 	struct timeval current, res;
 	struct timeval precision = { 0, TIME_BETWEEN_TIMER_CHECKS + 1};
-	int i;
+	int i, deleted;
 
 	osmo_gettimeofday(&current, NULL);
 
@@ -132,6 +135,10 @@
 		       (int)res.tv_sec, (int)res.tv_usec);
 		too_soon++;
 	}
+	else
+		printf("timer fired on time: %d.%06d (+ %d.%06d)\n",
+		       (int)v->stop.tv_sec, (int)v->stop.tv_usec,
+		       (int)res.tv_sec, (int)res.tv_usec);
 
 	llist_del(&v->head);
 	talloc_free(data);
@@ -144,15 +151,19 @@
 
 	/* "random" deletion of timers. */
 	i = 0;
+	deleted = 0;
 	llist_for_each_entry_safe(this, tmp, &timer_test_list, head) {
 		i ++;
 		if (!(i & 0x3)) {
 			osmo_timer_del(&this->timer);
 			llist_del(&this->head);
 			talloc_free(this);
-			expired_timers++;
+			deleted++;
 		}
 	}
+	expired_timers += deleted;
+	printf("early deleted %d timers, %d still active\n", deleted,
+	       total_timers - expired_timers);
 }
 
 int main(int argc, char *argv[])
@@ -180,12 +191,16 @@
 	steps = ((MAIN_TIMER_NSTEPS * TIME_BETWEEN_STEPS + 20) * 1e6)
 		/ TIME_BETWEEN_TIMER_CHECKS;
 
-	printf("Running timer test for %u steps\n", timer_nsteps);
+	printf("Running timer test for %d iterations,"
+	       " %d steps of %d msecs each\n",
+	       timer_nsteps, steps, TIME_BETWEEN_TIMER_CHECKS / 1000);
 
 	osmo_timer_schedule(&main_timer, 1, 0);
 
 #ifdef HAVE_SYS_SELECT_H
 	while (steps--) {
+		printf("%d.%06d\n", (int)osmo_gettimeofday_override_time.tv_sec,
+		       (int)osmo_gettimeofday_override_time.tv_usec);
 		osmo_timers_prepare();
 		osmo_timers_update();
 		osmo_gettimeofday_override_add(0, TIME_BETWEEN_TIMER_CHECKS);
diff --git a/tests/timer/timer_test.ok b/tests/timer/timer_test.ok
index 7617bc3..109d039 100644
--- a/tests/timer/timer_test.ok
+++ b/tests/timer/timer_test.ok
@@ -1,8 +1,105 @@
-Running timer test for 5 steps
+Running timer test for 5 iterations, 85 steps of 423 msecs each
+23.424242
+23.847452
+24.270662
+24.693872
+main_timer_fired()
+scheduled timer at 25.693872
 added 1 timers in step 0 (expired=0)
+25.117082
+25.540292
+25.963502
+main_timer_fired()
+scheduled timer at 26.963502
+scheduled timer at 27.963502
 added 2 timers in step 1 (expired=0)
+timer fired on time: 25.693872 (+ 0.269630)
+early deleted 0 timers, 2 still active
+26.386712
+26.809922
+27.233132
+main_timer_fired()
+scheduled timer at 28.233132
+scheduled timer at 29.233132
+scheduled timer at 30.233132
+scheduled timer at 31.233132
 added 4 timers in step 2 (expired=1)
+timer fired on time: 26.963502 (+ 0.269630)
+early deleted 1 timers, 4 still active
+27.656342
+28.079552
+timer fired on time: 27.963502 (+ 0.116050)
+early deleted 0 timers, 3 still active
+28.502762
+main_timer_fired()
+scheduled timer at 29.502762
+scheduled timer at 30.502762
+scheduled timer at 31.502762
+scheduled timer at 32.502762
+scheduled timer at 33.502762
+scheduled timer at 34.502762
+scheduled timer at 35.502762
+scheduled timer at 36.502762
 added 8 timers in step 3 (expired=4)
+28.925972
+29.349182
+timer fired on time: 29.233132 (+ 0.116050)
+early deleted 2 timers, 8 still active
+29.772392
+main_timer_fired()
+scheduled timer at 30.772392
+scheduled timer at 31.772392
+scheduled timer at 32.772392
+scheduled timer at 33.772392
+scheduled timer at 34.772392
+scheduled timer at 35.772392
+scheduled timer at 36.772392
+scheduled timer at 37.772392
+scheduled timer at 30.772392
+scheduled timer at 31.772392
+scheduled timer at 32.772392
+scheduled timer at 33.772392
+scheduled timer at 34.772392
+scheduled timer at 35.772392
+scheduled timer at 36.772392
+scheduled timer at 37.772392
 added 16 timers in step 4 (expired=7)
+30.195602
+30.618812
+timer fired on time: 30.502762 (+ 0.116050)
+early deleted 5 timers, 18 still active
+timer fired on time: 30.233132 (+ 0.385680)
+early deleted 4 timers, 13 still active
+31.042022
+main_timer_fired()
 Main timer has finished, please, wait a bit for the final report.
+31.465232
+timer fired on time: 31.233132 (+ 0.232100)
+early deleted 3 timers, 9 still active
+31.888442
+timer fired on time: 31.772392 (+ 0.116050)
+early deleted 2 timers, 6 still active
+32.311652
+32.734862
+33.158072
+timer fired on time: 32.772392 (+ 0.385680)
+early deleted 1 timers, 4 still active
+33.581282
+34.004492
+34.427702
+34.850912
+35.274122
+35.697332
+36.120542
+timer fired on time: 35.772392 (+ 0.348150)
+early deleted 0 timers, 3 still active
+36.543752
+timer fired on time: 36.502762 (+ 0.040990)
+early deleted 0 timers, 2 still active
+36.966962
+timer fired on time: 36.772392 (+ 0.194570)
+early deleted 0 timers, 1 still active
+37.390172
+37.813382
+timer fired on time: 37.772392 (+ 0.040990)
 test over: added=31 expired=31 too_soon=0 too_late=0

-- 
To view, visit https://gerrit.osmocom.org/889
To unsubscribe, visit https://gerrit.osmocom.org/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: Iecf6387f1d25253fcf1260777673853030c1d326
Gerrit-PatchSet: 3
Gerrit-Project: libosmocore
Gerrit-Branch: master
Gerrit-Owner: Neels Hofmeyr <nhofmeyr at sysmocom.de>
Gerrit-Reviewer: Harald Welte <laforge at gnumonks.org>
Gerrit-Reviewer: Jenkins Builder



More information about the gerrit-log mailing list