From e543a1695b5d99318ed752107cc00ff50c53e8e7 Mon Sep 17 00:00:00 2001 From: Sebastian Huber Date: Fri, 26 Nov 2021 07:29:52 +0100 Subject: libtest: Fix sample reporting The sample reporting wronly added values to the wrong bin in some cases. --- cpukit/libtest/t-test-rtems-measure.c | 25 ++++++++++++++----------- 1 file changed, 14 insertions(+), 11 deletions(-) (limited to 'cpukit') diff --git a/cpukit/libtest/t-test-rtems-measure.c b/cpukit/libtest/t-test-rtems-measure.c index da4dea50e8..e21b092a81 100644 --- a/cpukit/libtest/t-test-rtems-measure.c +++ b/cpukit/libtest/t-test-rtems-measure.c @@ -378,13 +378,12 @@ report_sorted_samples(const T_measure_runtime_context *ctx) sample_count = ctx->sample_count; samples = ctx->samples; - last = 0; - --last; - count = 0; + last = samples[0]; + v = samples[0]; + count = 1; - for (i = 0; i < sample_count; ++i) { + for (i = 1; i < sample_count; ++i) { v = samples[i]; - ++count; if (v != last) { uint32_t sa; @@ -393,24 +392,28 @@ report_sorted_samples(const T_measure_runtime_context *ctx) uint32_t nsb; T_time t; - T_time_to_seconds_and_nanoseconds(T_ticks_to_time(last), - &sa, &nsa); - t = T_ticks_to_time(v); - T_time_to_seconds_and_nanoseconds(t, &sb, &nsb); + t = T_ticks_to_time(last); + T_time_to_seconds_and_nanoseconds(t, &sa, &nsa); + T_time_to_seconds_and_nanoseconds(T_ticks_to_time(v), + &sb, &nsb); if (sa != sb || nsa != nsb) { T_printf("M:S:%zu:%s\n", count, T_time_to_string_ns(t, ts)); - count = 0; + count = 1; + } else { + ++count; } last = v; + } else { + ++count; } } if (count > 0) { T_printf("M:S:%zu:%s\n", count, - T_ticks_to_string_ns(last, ts)); + T_ticks_to_string_ns(v, ts)); } } -- cgit v1.2.3