[DHG_packages] 01/02: Backport patch to provide --show-detail=direct
Colin Watson
cjwatson at moszumanska.debian.org
Thu Jan 14 11:11:47 UTC 2016
This is an automated email from the git hooks/post-receive script.
cjwatson pushed a commit to branch master
in repository DHG_packages.
commit dd9422dfb975bb41f0f737a3cc9a8a79bc4fd611
Author: Colin Watson <cjwatson at debian.org>
Date: Thu Jan 14 11:08:00 2016 +0000
Backport patch to provide --show-detail=direct
This is mostly to work around problems with `setup test` on architectures
with insufficient threading support in GHC
(https://github.com/haskell/cabal/issues/2398). This matches a patch also
in the ghc package, but we need it here as well for the sake of packages
that build-depend on libghc-cabal-dev.
---
p/haskell-cabal/debian/changelog | 10 ++
.../debian/patches/cabal-show-detail-direct.patch | 103 +++++++++++++++++++++
p/haskell-cabal/debian/patches/series | 1 +
3 files changed, 114 insertions(+)
diff --git a/p/haskell-cabal/debian/changelog b/p/haskell-cabal/debian/changelog
index a4d4042..163f512 100644
--- a/p/haskell-cabal/debian/changelog
+++ b/p/haskell-cabal/debian/changelog
@@ -1,3 +1,13 @@
+haskell-cabal (1.22.5.0-2) UNRELEASED; urgency=medium
+
+ * Backport patch to provide --show-detail=direct, mostly to work around
+ problems with `setup test` on architectures with insufficient threading
+ support in GHC (https://github.com/haskell/cabal/issues/2398). This
+ matches a patch also in the ghc package, but we need it here as well for
+ the sake of packages that build-depend on libghc-cabal-dev.
+
+ -- Colin Watson <cjwatson at debian.org> Wed, 13 Jan 2016 11:17:02 +0000
+
haskell-cabal (1.22.5.0-1) unstable; urgency=medium
* New upstream release
diff --git a/p/haskell-cabal/debian/patches/cabal-show-detail-direct.patch b/p/haskell-cabal/debian/patches/cabal-show-detail-direct.patch
new file mode 100644
index 0000000..b4ae2ed
--- /dev/null
+++ b/p/haskell-cabal/debian/patches/cabal-show-detail-direct.patch
@@ -0,0 +1,103 @@
+commit 3792d212a6f60573ef43dd72088a353725d09461
+Author: Joachim Breitner <mail at joachim-breitner.de>
+Date: Thu Nov 5 11:31:12 2015 +0100
+
+ test: New mode --show-details=direct
+
+ This mode implements #2911, and allows to connect the test runner
+ directly to stdout/stdin. This is more reliable in the presence of no
+ threading, i.e. a work-arond for #2398.
+
+ I make the test suite use this, so that it passes again, despite
+ printing lots of stuff. Once #2398 is fixed properly, the test suite
+ should probably be extended to test all the various --show-details
+ modes.
+
+Index: b/Distribution/Simple/Setup.hs
+===================================================================
+--- a/Distribution/Simple/Setup.hs
++++ b/Distribution/Simple/Setup.hs
+@@ -1725,7 +1725,7 @@
+ -- * Test flags
+ -- ------------------------------------------------------------
+
+-data TestShowDetails = Never | Failures | Always | Streaming
++data TestShowDetails = Never | Failures | Always | Streaming | Direct
+ deriving (Eq, Ord, Enum, Bounded, Show)
+
+ knownTestShowDetails :: [TestShowDetails]
+@@ -1813,7 +1813,8 @@
+ ("'always': always show results of individual test cases. "
+ ++ "'never': never show results of individual test cases. "
+ ++ "'failures': show results of failing test cases. "
+- ++ "'streaming': show results of test cases in real time.")
++ ++ "'streaming': show results of test cases in real time."
++ ++ "'direct': send results of test cases in real time; no log file.")
+ testShowDetails (\v flags -> flags { testShowDetails = v })
+ (reqArg "FILTER"
+ (readP_to_E (\_ -> "--show-details flag expects one of "
+Index: b/Distribution/Simple/Test/ExeV10.hs
+===================================================================
+--- a/Distribution/Simple/Test/ExeV10.hs
++++ b/Distribution/Simple/Test/ExeV10.hs
+@@ -30,7 +30,7 @@
+ , getCurrentDirectory, removeDirectoryRecursive )
+ import System.Exit ( ExitCode(..) )
+ import System.FilePath ( (</>), (<.>) )
+-import System.IO ( hGetContents, hPutStr, stdout )
++import System.IO ( hGetContents, hPutStr, stdout, stderr )
+
+ runTest :: PD.PackageDescription
+ -> LBI.LocalBuildInfo
+@@ -63,15 +63,20 @@
+ -- Write summary notices indicating start of test suite
+ notice verbosity $ summarizeSuiteStart $ PD.testName suite
+
+- (rOut, wOut) <- createPipe
++ (wOut, wErr, logText) <- case details of
++ Direct -> return (stdout, stderr, "")
++ _ -> do
++ (rOut, wOut) <- createPipe
++
++ -- Read test executable's output lazily (returns immediately)
++ logText <- hGetContents rOut
++ -- Force the IO manager to drain the test output pipe
++ void $ forkIO $ length logText `seq` return ()
+
+- -- Read test executable's output lazily (returns immediately)
+- logText <- hGetContents rOut
+- -- Force the IO manager to drain the test output pipe
+- void $ forkIO $ length logText `seq` return ()
++ -- '--show-details=streaming': print the log output in another thread
++ when (details == Streaming) $ void $ forkIO $ hPutStr stdout logText
+
+- -- '--show-details=streaming': print the log output in another thread
+- when (details == Streaming) $ void $ forkIO $ hPutStr stdout logText
++ return (wOut, wOut, logText)
+
+ -- Run the test executable
+ let opts = map (testOption pkg_descr lbi suite)
+@@ -93,7 +98,7 @@
+
+ exit <- rawSystemIOWithEnv verbosity cmd opts Nothing (Just shellEnv')
+ -- these handles are automatically closed
+- Nothing (Just wOut) (Just wOut)
++ Nothing (Just wOut) (Just wErr)
+
+ -- Generate TestSuiteLog from executable exit code and a machine-
+ -- readable test log.
+@@ -112,12 +117,10 @@
+ -- Show the contents of the human-readable log file on the terminal
+ -- if there is a failure and/or detailed output is requested
+ let whenPrinting = when $
+- (details > Never)
+- && (not (suitePassed $ testLogs suiteLog) || details == Always)
++ ( details == Always ||
++ details == Failures && not (suitePassed $ testLogs suiteLog))
+ -- verbosity overrides show-details
+ && verbosity >= normal
+- -- if streaming, we already printed the log
+- && details /= Streaming
+ whenPrinting $ putStr $ unlines $ lines logText
+
+ -- Write summary notice to terminal indicating end of test suite
diff --git a/p/haskell-cabal/debian/patches/series b/p/haskell-cabal/debian/patches/series
new file mode 100644
index 0000000..b836fef
--- /dev/null
+++ b/p/haskell-cabal/debian/patches/series
@@ -0,0 +1 @@
+cabal-show-detail-direct.patch
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-haskell/DHG_packages.git
More information about the Pkg-haskell-commits
mailing list