All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Thomas Weißschuh" <linux@weissschuh.net>
To: Willy Tarreau <w@1wt.eu>, Shuah Khan <shuah@kernel.org>
Cc: linux-kselftest@vger.kernel.org, linux-kernel@vger.kernel.org,
	"Zhangjin Wu" <falcon@tinylab.org>,
	"Thomas Weißschuh" <linux@weissschuh.net>
Subject: [PATCH 3/4] selftests/nolibc: simplify status argument
Date: Tue, 11 Jul 2023 11:48:41 +0200	[thread overview]
Message-ID: <20230711-nolibc-sizeof-long-gaps-v1-3-dc78c3b85fc3@weissschuh.net> (raw)
In-Reply-To: <20230711-nolibc-sizeof-long-gaps-v1-0-dc78c3b85fc3@weissschuh.net>

I'm not sure if this is an improvement over the previous patch.
If so it should be squashed into it.

Not-Signed-off-by
---
 tools/testing/selftests/nolibc/nolibc-test.c | 115 ++++++++++-----------------
 1 file changed, 40 insertions(+), 75 deletions(-)

diff --git a/tools/testing/selftests/nolibc/nolibc-test.c b/tools/testing/selftests/nolibc/nolibc-test.c
index b7ed10512d67..754815c142f6 100644
--- a/tools/testing/selftests/nolibc/nolibc-test.c
+++ b/tools/testing/selftests/nolibc/nolibc-test.c
@@ -127,17 +127,13 @@ static void putcharn(char c, size_t n)
 	fputs(buf, stdout);
 }
 
-enum RESULT {
-	OK,
-	FAIL,
-	SKIPPED,
-};
+#define SKIPPED INT_MIN
 
-static void result(int llen, enum RESULT r)
+static void result(int llen, int r)
 {
 	const char *msg;
 
-	if (r == OK)
+	if (r == 0)
 		msg = " [OK]";
 	else if (r == SKIPPED)
 		msg = "[SKIPPED]";
@@ -162,7 +158,7 @@ static int expect_zr(int expr, int llen)
 	int ret = !(expr == 0);
 
 	llen += printf(" = %d ", expr);
-	result(llen, ret ? FAIL : OK);
+	result(llen, ret);
 	return ret;
 }
 
@@ -175,7 +171,7 @@ static int expect_nz(int expr, int llen)
 	int ret = !(expr != 0);
 
 	llen += printf(" = %d ", expr);
-	result(llen, ret ? FAIL : OK);
+	result(llen, ret);
 	return ret;
 }
 
@@ -188,7 +184,7 @@ static int expect_eq(uint64_t expr, int llen, uint64_t val)
 	int ret = !(expr == val);
 
 	llen += printf(" = %lld ", (long long)expr);
-	result(llen, ret ? FAIL : OK);
+	result(llen, ret);
 	return ret;
 }
 
@@ -201,7 +197,7 @@ static int expect_ne(int expr, int llen, int val)
 	int ret = !(expr != val);
 
 	llen += printf(" = %d ", expr);
-	result(llen, ret ? FAIL : OK);
+	result(llen, ret);
 	return ret;
 }
 
@@ -214,7 +210,7 @@ static int expect_ge(int expr, int llen, int val)
 	int ret = !(expr >= val);
 
 	llen += printf(" = %d ", expr);
-	result(llen, ret ? FAIL : OK);
+	result(llen, ret);
 	return ret;
 }
 
@@ -227,7 +223,7 @@ static int expect_gt(int expr, int llen, int val)
 	int ret = !(expr > val);
 
 	llen += printf(" = %d ", expr);
-	result(llen, ret ? FAIL : OK);
+	result(llen, ret);
 	return ret;
 }
 
@@ -240,7 +236,7 @@ static int expect_le(int expr, int llen, int val)
 	int ret = !(expr <= val);
 
 	llen += printf(" = %d ", expr);
-	result(llen, ret ? FAIL : OK);
+	result(llen, ret);
 	return ret;
 }
 
@@ -253,7 +249,7 @@ static int expect_lt(int expr, int llen, int val)
 	int ret = !(expr < val);
 
 	llen += printf(" = %d ", expr);
-	result(llen, ret ? FAIL : OK);
+	result(llen, ret);
 	return ret;
 }
 
@@ -268,11 +264,10 @@ static int expect_syszr(int expr, int llen)
 	if (expr) {
 		ret = 1;
 		llen += printf(" = %d %s ", expr, errorname(errno));
-		result(llen, FAIL);
 	} else {
 		llen += printf(" = %d ", expr);
-		result(llen, OK);
 	}
+	result(llen, ret);
 	return ret;
 }
 
@@ -287,11 +282,10 @@ static int expect_syseq(int expr, int llen, int val)
 	if (expr != val) {
 		ret = 1;
 		llen += printf(" = %d %s ", expr, errorname(errno));
-		result(llen, FAIL);
 	} else {
 		llen += printf(" = %d ", expr);
-		result(llen, OK);
 	}
+	result(llen, ret);
 	return ret;
 }
 
@@ -306,11 +300,10 @@ static int expect_sysne(int expr, int llen, int val)
 	if (expr == val) {
 		ret = 1;
 		llen += printf(" = %d %s ", expr, errorname(errno));
-		result(llen, FAIL);
 	} else {
 		llen += printf(" = %d ", expr);
-		result(llen, OK);
 	}
+	result(llen, ret);
 	return ret;
 }
 
@@ -333,10 +326,8 @@ static int expect_syserr2(int expr, int expret, int experr1, int experr2, int ll
 			llen += printf(" != (%d %s) ", expret, errorname(experr1));
 		else
 			llen += printf(" != (%d %s %s) ", expret, errorname(experr1), errorname(experr2));
-		result(llen, FAIL);
-	} else {
-		result(llen, OK);
 	}
+	result(llen, ret);
 	return ret;
 }
 
@@ -349,12 +340,9 @@ static int expect_ptrzr(const void *expr, int llen)
 	int ret = 0;
 
 	llen += printf(" = <%p> ", expr);
-	if (expr) {
+	if (expr)
 		ret = 1;
-		result(llen, FAIL);
-	} else {
-		result(llen, OK);
-	}
+	result(llen, ret);
 	return ret;
 }
 
@@ -367,12 +355,9 @@ static int expect_ptrnz(const void *expr, int llen)
 	int ret = 0;
 
 	llen += printf(" = <%p> ", expr);
-	if (!expr) {
+	if (!expr)
 		ret = 1;
-		result(llen, FAIL);
-	} else {
-		result(llen, OK);
-	}
+	result(llen, ret);
 	return ret;
 }
 
@@ -384,12 +369,9 @@ static int expect_ptreq(const void *expr, int llen, const void *cmp)
 	int ret = 0;
 
 	llen += printf(" = <%p> ", expr);
-	if (expr != cmp) {
+	if (expr != cmp)
 		ret = 1;
-		result(llen, FAIL);
-	} else {
-		result(llen, OK);
-	}
+	result(llen, ret);
 	return ret;
 }
 
@@ -401,12 +383,9 @@ static int expect_ptrne(const void *expr, int llen, const void *cmp)
 	int ret = 0;
 
 	llen += printf(" = <%p> ", expr);
-	if (expr == cmp) {
+	if (expr == cmp)
 		ret = 1;
-		result(llen, FAIL);
-	} else {
-		result(llen, OK);
-	}
+	result(llen, ret);
 	return ret;
 }
 
@@ -428,10 +407,8 @@ static int expect_ptrerr2(const void *expr, const void *expret, int experr1, int
 			llen += printf(" != (<%p> %s) ", expret, errorname(experr1));
 		else
 			llen += printf(" != (<%p> %s %s) ", expret, errorname(experr1), errorname(experr2));
-		result(llen, FAIL);
-	} else {
-		result(llen, OK);
 	}
+	result(llen, ret);
 	return ret;
 }
 
@@ -443,12 +420,9 @@ static int expect_strzr(const char *expr, int llen)
 	int ret = 0;
 
 	llen += printf(" = <%s> ", expr);
-	if (expr) {
+	if (expr)
 		ret = 1;
-		result(llen, FAIL);
-	} else {
-		result(llen, OK);
-	}
+	result(llen, ret);
 	return ret;
 }
 
@@ -461,12 +435,9 @@ static int expect_strnz(const char *expr, int llen)
 	int ret = 0;
 
 	llen += printf(" = <%s> ", expr);
-	if (!expr) {
+	if (!expr)
 		ret = 1;
-		result(llen, FAIL);
-	} else {
-		result(llen, OK);
-	}
+	result(llen, ret);
 	return ret;
 }
 
@@ -479,12 +450,9 @@ static int expect_streq(const char *expr, int llen, const char *cmp)
 	int ret = 0;
 
 	llen += printf(" = <%s> ", expr);
-	if (strcmp(expr, cmp) != 0) {
+	if (strcmp(expr, cmp) != 0)
 		ret = 1;
-		result(llen, FAIL);
-	} else {
-		result(llen, OK);
-	}
+	result(llen, ret);
 	return ret;
 }
 
@@ -497,12 +465,9 @@ static int expect_strne(const char *expr, int llen, const char *cmp)
 	int ret = 0;
 
 	llen += printf(" = <%s> ", expr);
-	if (strcmp(expr, cmp) == 0) {
+	if (strcmp(expr, cmp) == 0)
 		ret = 1;
-		result(llen, FAIL);
-	} else {
-		result(llen, OK);
-	}
+	result(llen, ret);
 	return ret;
 }
 
@@ -893,7 +858,7 @@ static int expect_vfprintf(int llen, size_t c, const char *expected, const char
 
 	memfile = fdopen(fd, "w+");
 	if (!memfile) {
-		result(llen, FAIL);
+		result(llen, 1);
 		return 1;
 	}
 
@@ -903,7 +868,7 @@ static int expect_vfprintf(int llen, size_t c, const char *expected, const char
 
 	if (w != c) {
 		llen += printf(" written(%d) != %d", w, (int) c);
-		result(llen, FAIL);
+		result(llen, 1);
 		return 1;
 	}
 
@@ -917,14 +882,14 @@ static int expect_vfprintf(int llen, size_t c, const char *expected, const char
 
 	if (r != w) {
 		llen += printf(" written(%d) != read(%d)", w, r);
-		result(llen, FAIL);
+		result(llen, 1);
 		return 1;
 	}
 
 	llen += printf(" \"%s\" = \"%s\"", expected, buf);
 	ret = strncmp(expected, buf, c);
 
-	result(llen, ret ? FAIL : OK);
+	result(llen, ret);
 	return ret;
 }
 
@@ -987,7 +952,7 @@ static int run_protection(int min, int max)
 #if defined(_NOLIBC_STACKPROTECTOR)
 	if (!__stack_chk_guard) {
 		llen += printf("__stack_chk_guard not initialized");
-		result(llen, FAIL);
+		result(llen, 1);
 		return 1;
 	}
 #endif
@@ -998,7 +963,7 @@ static int run_protection(int min, int max)
 	switch (pid) {
 	case -1:
 		llen += printf("fork()");
-		result(llen, FAIL);
+		result(llen, 1);
 		return 1;
 
 	case 0:
@@ -1014,10 +979,10 @@ static int run_protection(int min, int max)
 
 		if (pid == -1 || !WIFSIGNALED(status) || WTERMSIG(status) != SIGABRT) {
 			llen += printf("waitpid()");
-			result(llen, FAIL);
+			result(llen, 1);
 			return 1;
 		}
-		result(llen, OK);
+		result(llen, 0);
 		return 0;
 	}
 }

-- 
2.41.0


  parent reply	other threads:[~2023-07-11  9:49 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-07-11  9:48 [PATCH 0/4] selftests/nolibc: simplify conditions and testcases Thomas Weißschuh
2023-07-11  9:48 ` [PATCH 1/4] selftests/nolibc: make evaluation of test conditions Thomas Weißschuh
2023-07-11  9:48 ` [PATCH 2/4] selftests/nolibc: simplify status printing Thomas Weißschuh
2023-07-11  9:48 ` Thomas Weißschuh [this message]
2023-07-11 19:12   ` [PATCH 3/4] selftests/nolibc: simplify status argument Willy Tarreau
2023-07-11  9:48 ` [PATCH 4/4] selftests/nolibc: avoid gaps in test numbers Thomas Weißschuh

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20230711-nolibc-sizeof-long-gaps-v1-3-dc78c3b85fc3@weissschuh.net \
    --to=linux@weissschuh.net \
    --cc=falcon@tinylab.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-kselftest@vger.kernel.org \
    --cc=shuah@kernel.org \
    --cc=w@1wt.eu \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.