[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <201905201446.B1CE073E@keescook>
Date: Mon, 20 May 2019 14:50:03 -0700
From: Kees Cook <keescook@...omium.org>
To: Takashi Iwai <tiwai@...e.de>
Cc: shuah <shuah@...nel.org>,
Greg Kroah-Hartman <gregkh@...uxfoundation.org>,
Luis Chamberlain <mcgrof@...nel.org>,
"Rafael J . Wysocki" <rafael@...nel.org>,
linux-kernel@...r.kernel.org
Subject: Re: [PATCH 0/5] firmware: Add support for loading compressed files
On Mon, May 20, 2019 at 08:59:14PM +0200, Takashi Iwai wrote:
> So the problem is obvious: the commit above adjusts the stdout to be
> unbuffered via stdbuf, hence each invocation like
> echo -n abc > /sys/....
>
> would become writes of "a", "b" and "c", instead of "abc".
>
> Although we can work around it in each test unit, I'm afraid that
> enforcing the unbuffered stdio is too fragile for scripts like the
> above case.
Oh this is nasty. Looks like stdbuf overrides all child processes too...
yeah, that's very broken. Let me try to see if I can find an
alternative.
Shuah, in the meantime, if you want a fix to restore test behavior,
but regress output flushing, this will work:
diff --git a/tools/testing/selftests/kselftest/runner.sh b/tools/testing/selftests/kselftest/runner.sh
index eff3ee303d0d..a529c19240fc 100644
--- a/tools/testing/selftests/kselftest/runner.sh
+++ b/tools/testing/selftests/kselftest/runner.sh
@@ -27,11 +27,11 @@ tap_prefix()
# If stdbuf is unavailable, we must fall back to line-at-a-time piping.
tap_unbuffer()
{
- if ! which stdbuf >/dev/null ; then
+ #if ! which asdfstdbuf >/dev/null ; then
"$@"
- else
- stdbuf -i0 -o0 -e0 "$@"
- fi
+ #else
+ # stdbuf -i0 -o0 -e0 "$@"
+ #fi
}
run_one()
Some tests will no longer show their output until they're entirely done,
but at least no test pass/fail results should regress.
I'll keep looking at solutions...
--
Kees Cook
Powered by blists - more mailing lists