[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