From owner-freebsd-hackers@freebsd.org Thu Apr 27 15:29:30 2017 Return-Path: Delivered-To: freebsd-hackers@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 9E345D53480; Thu, 27 Apr 2017 15:29:30 +0000 (UTC) (envelope-from jilles@stack.nl) Received: from mailout.stack.nl (mailout05.stack.nl [IPv6:2001:610:1108:5010::202]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mailout.stack.nl", Issuer "CA Cert Signing Authority" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 6A57EC0E; Thu, 27 Apr 2017 15:29:30 +0000 (UTC) (envelope-from jilles@stack.nl) Received: from snail.stack.nl (snail.stack.nl [IPv6:2001:610:1108:5010::131]) by mailout.stack.nl (Postfix) with ESMTP id 39F9E6E; Thu, 27 Apr 2017 17:29:27 +0200 (CEST) Received: by snail.stack.nl (Postfix, from userid 1677) id 23C8128497; Thu, 27 Apr 2017 17:29:27 +0200 (CEST) Date: Thu, 27 Apr 2017 17:29:27 +0200 From: Jilles Tjoelker To: Alfred Perlstein Cc: Ngie Cooper , Brooks Davis , "freebsd-testing@freebsd.org" , "freebsd-hackers@freebsd.org" , Alan Somers , "bdrewery@freebsd.org" Subject: Re: racy tests Message-ID: <20170427152926.GA88843@stack.nl> References: <20170425230247.GA8201@spindle.one-eyed-alien.net> <878d2f79-df2d-0c6c-bd21-c0e663160f45@freebsd.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <878d2f79-df2d-0c6c-bd21-c0e663160f45@freebsd.org> User-Agent: Mutt/1.5.21 (2010-09-15) X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 27 Apr 2017 15:29:30 -0000 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