summaryrefslogtreecommitdiffstats
path: root/cpukit/libtest
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2020-08-13 10:09:30 +0200
committerSebastian Huber <sebastian.huber@embedded-brains.de>2020-08-18 07:08:51 +0200
commit33eb113c36a5418f25b3165092b622ea91c25d27 (patch)
treedb4bacc2e26b48f9d364755b31203ea24f9bf9a4 /cpukit/libtest
parentlibtest: Use line buffer in T_check() (diff)
downloadrtems-33eb113c36a5418f25b3165092b622ea91c25d27.tar.bz2
libtest: Add T_check_steps()
Update #3199.
Diffstat (limited to 'cpukit/libtest')
-rw-r--r--cpukit/libtest/t-test.c31
1 files changed, 13 insertions, 18 deletions
diff --git a/cpukit/libtest/t-test.c b/cpukit/libtest/t-test.c
index ec9ff6eed2..f9a2b2a0af 100644
--- a/cpukit/libtest/t-test.c
+++ b/cpukit/libtest/t-test.c
@@ -49,8 +49,6 @@
#define T_LINE_SIZE 128
-#define T_SCOPE_SIZE 64
-
typedef struct {
pthread_spinlock_t lock;
char *buf;
@@ -938,6 +936,17 @@ T_do_case_begin(T_context *ctx, const T_case_context *tc)
}
static void
+T_check_steps(unsigned int planned_steps, unsigned int steps,
+ unsigned int failures)
+{
+ if (planned_steps != UINT_MAX && planned_steps != steps &&
+ failures == 0) {
+ T_check(&T_special, false, "actual steps (%u), "
+ "planned steps (%u)", steps, planned_steps);
+ }
+}
+
+static void
T_do_case_end(T_context *ctx, const T_case_context *tc)
{
const T_config *config;
@@ -976,23 +985,9 @@ T_do_case_end(T_context *ctx, const T_case_context *tc)
memory_order_relaxed);
failures = atomic_fetch_add_explicit(&ctx->failures, 0,
memory_order_relaxed);
+ T_check_steps(planned_steps, steps, failures);
- if (planned_steps != UINT_MAX && planned_steps != steps &&
- failures == 0) {
- ++failures;
-
- if (ctx->verbosity >= T_NORMAL) {
- char scope[T_SCOPE_SIZE];
- size_t len;
-
- len = T_scope(ctx, scope, sizeof(scope) - 1);
- scope[len] = '\0';
- T_printf("F:*:%i:%s:*:*:actual steps (%u), "
- "planned steps (%u)\n", T_cpu(),
- scope, steps, planned_steps);
- }
- }
-
+ failures = atomic_load_explicit(&ctx->failures, memory_order_relaxed);
delta = (*config->now)() - ctx->case_begin_time;
T_do_log(ctx, T_QUIET, "E:%s:N:%u:F:%u:D:%s\n",
tc->name, steps, failures, T_time_to_string_us(delta, ts));