selftests/nolibc: reduce syscalls during space padding

Previously each space character used for alignment during test execution
was written in a single write() call.
This would make the output from strace fairly unreadable.
Coalesce all spaces into a single call to write().

Signed-off-by: Thomas Weißschuh <linux@weissschuh.net>
Signed-off-by: Willy Tarreau <w@1wt.eu>
Signed-off-by: Paul E. McKenney <paulmck@kernel.org>
This commit is contained in:
Thomas Weißschuh 2023-04-17 18:01:31 +02:00 committed by Paul E. McKenney
parent ec8e1b73d5
commit 443de90314

View File

@ -111,19 +111,26 @@ const char *errorname(int err)
}
}
static void putcharn(char c, size_t n)
{
char buf[64];
memset(buf, c, n);
buf[n] = '\0';
fputs(buf, stdout);
}
static int pad_spc(int llen, int cnt, const char *fmt, ...)
{
va_list args;
int len;
int ret;
for (len = 0; len < cnt - llen; len++)
putchar(' ');
putcharn(' ', cnt - llen);
va_start(args, fmt);
ret = vfprintf(stdout, fmt, args);
va_end(args);
return ret < 0 ? ret : ret + len;
return ret < 0 ? ret : ret + cnt - llen;
}
/* The tests below are intended to be used by the macroes, which evaluate