From 36ebd92fa53c0097f1e2f9ec5aa5b5c6ec1b411d Mon Sep 17 00:00:00 2001
From: Thomas Perrot <thomas.perrot@bootlin.com>
Date: Wed, 29 Sep 2021 13:50:35 +0200
Subject: [PATCH] test: retriable tests are marked failed only when all
 attempts have failed

Fixes: #1193

Upstream-status: Pending

Signed-off-by: Thomas Perrot <thomas.perrot@bootlin.com>
---
 test/tinytest.c | 13 ++++++-------
 test/tinytest.h |  2 +-
 2 files changed, 7 insertions(+), 8 deletions(-)

diff --git a/test/tinytest.c b/test/tinytest.c
index 85dfe74a720e..bf2882418eb6 100644
--- a/test/tinytest.c
+++ b/test/tinytest.c
@@ -310,7 +310,8 @@ testcase_run_forked_(const struct testgroup_t *group,
 
 int
 testcase_run_one(const struct testgroup_t *group,
-		 const struct testcase_t *testcase)
+		 const struct testcase_t *testcase,
+		 const int test_attempts)
 {
 	enum outcome outcome;
 
@@ -348,7 +349,7 @@ testcase_run_one(const struct testgroup_t *group,
 		if (opt_verbosity>0 && !opt_forked)
 			puts("SKIPPED");
 	} else {
-		if (!opt_forked)
+		if (!opt_forked && (testcase->flags & TT_RETRIABLE) && !test_attempts)
 			printf("\n  [%s FAILED]\n", testcase->name);
 	}
 
@@ -525,22 +526,20 @@ tinytest_main(int c, const char **v, struct testgroup_t *groups)
 		struct testgroup_t *group = &groups[i];
 		for (j = 0; group->cases[j].name; ++j) {
 			struct testcase_t *testcase = &group->cases[j];
-			int test_attempts = 3;
+			int test_attempts = (testcase->flags & TT_RETRIABLE) ? 3: 1;
 			int test_ret_err;
 
 			if (!(testcase->flags & TT_ENABLED_))
 				continue;
 
 			for (;;) {
-				test_ret_err = testcase_run_one(group, testcase);
+				test_ret_err = testcase_run_one(group, testcase, test_attempts);
 
 				if (test_ret_err == OK)
 					break;
-				if (!(testcase->flags & TT_RETRIABLE))
+				if (!--test_attempts)
 					break;
 				printf("\n  [RETRYING %s (%i)]\n", testcase->name, test_attempts);
-				if (!test_attempts--)
-					break;
 			}
 
 			switch (test_ret_err) {
diff --git a/test/tinytest.h b/test/tinytest.h
index d321dd467542..c276b5339331 100644
--- a/test/tinytest.h
+++ b/test/tinytest.h
@@ -92,7 +92,7 @@ char *tinytest_format_hex_(const void *, unsigned long);
 	tinytest_set_flag_(groups, named, 1, TT_SKIP)
 
 /** Run a single testcase in a single group. */
-int testcase_run_one(const struct testgroup_t *,const struct testcase_t *);
+int testcase_run_one(const struct testgroup_t *,const struct testcase_t *, const int test_attempts);
 
 void tinytest_set_aliases(const struct testlist_alias_t *aliases);
 
-- 
2.31.1

