[Toybox] [PATCH] Fix pidof tests when stdout is a socket
Colin Cross
ccross at google.com
Tue Oct 10 11:30:30 PDT 2023
On Tue, Oct 10, 2023 at 11:28 AM Colin Cross <ccross at google.com> wrote:
>
> The pidof tests try to block a subprocess forever by reading from
> stdout via /proc/self/fd/1. This works for most stdout fds, but
> fails if stdout is a socket, which happens when running the tests
> in a sandbox in the Android build. Create a named fifo and read
> on that instead.
> ---
> tests/pidof.test | 5 +++--
> 1 file changed, 3 insertions(+), 2 deletions(-)
I forgot to include, this can be reproduced outside the sandbox by
using socat to make stdout a socket:
$ socat - EXEC:"scripts/test.sh pidof"
pidof:generated/{flags.h}
Compile generated/testdir/pidof
.....
./pidof-639615.test: line 2: /proc/self/fd/1: No such device or address
PASS: pidof short argv[1]
FAIL: pidof short argv[1] -x
echo -ne '' | "/usr/local/google/home/ccross/ssd/aosp/external/toybox/generated/testdir/pidof"
-x pidof-639615.test
--- expected 2023-10-10 11:29:58.370076418 -0700
+++ actual 2023-10-10 11:29:58.370076418 -0700
@@ -1 +0,0 @@
-639770
2023/10/10 11:29:58 socat[639614] E waitpid(): child 639615 exited with status 1
More information about the Toybox
mailing list