Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 27 Apr 2017 17:29:27 +0200
From:      Jilles Tjoelker <jilles@stack.nl>
To:        Alfred Perlstein <alfred@freebsd.org>
Cc:        Ngie Cooper <yaneurabeya@gmail.com>, Brooks Davis <brooks@freebsd.org>, "freebsd-testing@freebsd.org" <freebsd-testing@freebsd.org>, "freebsd-hackers@freebsd.org" <freebsd-hackers@freebsd.org>, Alan Somers <asomers@freebsd.org>, "bdrewery@freebsd.org" <bdrewery@freebsd.org>
Subject:   Re: racy tests
Message-ID:  <20170427152926.GA88843@stack.nl>
In-Reply-To: <878d2f79-df2d-0c6c-bd21-c0e663160f45@freebsd.org>
References:  <20170425230247.GA8201@spindle.one-eyed-alien.net> <CAGHfRMD9DtJOXugffdpXwNjg-XaUE6%2BOW-gCU56Rb8STjDu7aA@mail.gmail.com> <878d2f79-df2d-0c6c-bd21-c0e663160f45@freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Thu, Apr 27, 2017 at 05:47:11AM -0700, Alfred Perlstein wrote:
> Can't something similar to this be done?

> .(05:40:37)(bright@elvis.mu.org)
> ~ % mkfifo derp
> .(05:43:46)(bright@elvis.mu.org)
> ~ % cat derp &
> [1] 59244
> .(05:43:53)(bright@elvis.mu.org)
> ~ % ( pwait $! && echo "$?" > ex_status )&
> [2] 59263
> .(05:44:28)(bright@elvis.mu.org)
> ~ % echo "hi" >> derp && echo "exit status: $(cat ex_status)"
> hi
> [2]  + done       ( pwait $! && echo "$?" > ex_status; )
> [1]  + done       cat derp
> exit status: 0

> Make a fifo, lodge a cat(1) process waiting for data, pwait in the
> background and stuff pwait's status into a file, then unstick the
> cat(1) by writing to the fifo, and then read the exit status from
> pwait from the file?

Fifos are indeed a good idea. They are used various times in the /bin/sh
tests, which should not wait for any sleeps in successful test runs (my
main motivation for this is to be able to run the whole suite in a few
seconds).

In this case, however, the -t option being tested is inherently related
to time. It would be possible to cheat by passing a very long timeout
and cut it short by sending SIGALRM using kill (which depends on the
concrete implementation).

-- 
Jilles Tjoelker



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20170427152926.GA88843>