[commit: ghc] master: Disable T-signals-child test on single-threaded runtime (0d9524a)
git at git.haskell.org
git at git.haskell.org
Fri Oct 14 17:27:56 UTC 2016
Repository : ssh://git@git.haskell.org/ghc
On branch : master
Link : http://ghc.haskell.org/trac/ghc/changeset/0d9524a813a381dd13d461e731fc4ec8c0404aef/ghc
>---------------------------------------------------------------
commit 0d9524a813a381dd13d461e731fc4ec8c0404aef
Author: Michael Snoyman <michael at snoyman.com>
Date: Fri Oct 14 10:53:40 2016 -0400
Disable T-signals-child test on single-threaded runtime
As identified by Joachim, this test broke the Travis build. It appears
that this is due to the usage of the single-threaded runtime there. I've
confirmed that this fix causes the Travis build to pass:
https://travis-ci.org/snoyberg/ghc/builds/167368988.
Test Plan: Confirm tests now pass
Reviewers: austin, nomeata, bgamari
Reviewed By: nomeata, bgamari
Subscribers: thomie
Differential Revision: https://phabricator.haskell.org/D2593
>---------------------------------------------------------------
0d9524a813a381dd13d461e731fc4ec8c0404aef
testsuite/tests/runghc/T-signals-child.hs | 9 +++++++--
testsuite/tests/runghc/all.T | 4 +++-
2 files changed, 10 insertions(+), 3 deletions(-)
diff --git a/testsuite/tests/runghc/T-signals-child.hs b/testsuite/tests/runghc/T-signals-child.hs
index 21c1b64..ee36f62 100644
--- a/testsuite/tests/runghc/T-signals-child.hs
+++ b/testsuite/tests/runghc/T-signals-child.hs
@@ -1,7 +1,7 @@
import Control.Concurrent.MVar (readMVar)
import System.Environment (getArgs)
import System.Exit (ExitCode (ExitFailure), exitFailure)
-import System.IO (hGetLine, hPutStrLn)
+import System.IO (hClose, hGetLine, hPutStrLn)
import System.Posix.Process (exitImmediately, getProcessID)
import System.Posix.Signals (Handler (Catch), installHandler, sigHUP,
signalProcess)
@@ -9,6 +9,7 @@ import System.Process (StdStream (CreatePipe), createProcess, proc,
std_in, std_out, waitForProcess)
import System.Process.Internals (ProcessHandle (..),
ProcessHandle__ (OpenHandle))
+import System.Timeout (timeout)
main :: IO ()
main = do
@@ -46,6 +47,7 @@ runParent runghc = do
-- Send the child some input so that it will exit if it didn't
-- have a sigHUP handler installed.
hPutStrLn inH ""
+ hClose inH
-- Read out the rest of stdout from the child, which will be
-- either "NOSIGNAL\n" or "HUP\n"
@@ -95,7 +97,10 @@ runChild = do
-- Block until we receive input, giving a chance for the signal
-- handler to be triggered, and if the signal handler isn't
-- triggered, gives us an escape route from this function.
- _ <- getLine
+ --
+ -- Include a reasonable timeout to prevent this from running for
+ -- too long
+ _ <- timeout 10000000 getLine
-- Reaching this point indicates a failure of the test. Print some
-- non HUP message and exit with a non HUP exit
diff --git a/testsuite/tests/runghc/all.T b/testsuite/tests/runghc/all.T
index 107f35b..01337bc 100644
--- a/testsuite/tests/runghc/all.T
+++ b/testsuite/tests/runghc/all.T
@@ -10,6 +10,8 @@ test('T11247', [req_interp, expect_broken(11247)], run_command,
test('T6132', [when(opsys('darwin'), expect_broken(6132))], compile, [''])
test('T-signals-child',
- [when(opsys('mingw32'), skip), req_interp],
+ [ when(opsys('mingw32'), skip), req_interp
+ , only_ways(['threaded1', 'threaded2'])
+ ],
run_command,
['$MAKE --no-print-directory -s T-signals-child'])
More information about the ghc-commits
mailing list