Unexpected failures on Travis

Hi, my inofficial travis build of GHC produced reliably these test suite failures. These do not occur when I use my regular GHC development tree, but they do occur with the settins of travis. The settings include echo 'GhcLibWays = v' >> mk/build.mk so I’m inclined to put unless(have_dynamic(),skip) to all these tests, but maybe someone with better understanding of theses issues could comment on them first? The failures I am talking about are Unexpected failures: ghc-api/T7478 T7478 [bad exit code] (normal) plugins plugins06 [exit code non-0] (normal) quasiquotation T7918 [bad exit code] (normal) th TH_Roles3 [stderr mismatch] (normal) th TH_Roles4 [stderr mismatch] (normal) and the error messages in detail can be found on https://s3.amazonaws.com/archive.travis-ci.org/jobs/12722962/log.txt To reproduce this, simply run git https://github.com/nomeata/ghc-complete.git cd ghc-complete ./validate.sh Thanks, Joachim -- Joachim “nomeata” Breitner mail@joachim-breitner.de • http://www.joachim-breitner.de/ Jabber: nomeata@joachim-breitner.de • GPG-Key: 0x4743206C Debian Developer: nomeata@debian.org

The TH_Roles tests both use `runIO` inside of a TH splice to spit out some stuff. It seems (even on my machine) that when output is redirected, the result of a `runIO` is suppressed. For example, when I compile
{-# LANGUAGE TemplateHaskell #-} module Scratch where
import Language.Haskell.TH
$( do runIO $ putStrLn "hi there" return [] )
I get an output include "hi there" when I run ghc normally, but prompt> ghc -c Scratch.hs >stdout.txt leaves me with no output to my terminal, and a stdout.txt that lists only the loaded libraries, no "hi there". I would guess that the problem on Travis is closely related. Does anyone know more about this output suppression? Thanks, Richard On Oct 18, 2013, at 2:29 PM, Joachim Breitner wrote:
Hi,
my inofficial travis build of GHC produced reliably these test suite failures. These do not occur when I use my regular GHC development tree, but they do occur with the settins of travis.
The settings include echo 'GhcLibWays = v' >> mk/build.mk so I’m inclined to put unless(have_dynamic(),skip) to all these tests, but maybe someone with better understanding of theses issues could comment on them first?
The failures I am talking about are
Unexpected failures: ghc-api/T7478 T7478 [bad exit code] (normal) plugins plugins06 [exit code non-0] (normal) quasiquotation T7918 [bad exit code] (normal) th TH_Roles3 [stderr mismatch] (normal) th TH_Roles4 [stderr mismatch] (normal)
and the error messages in detail can be found on https://s3.amazonaws.com/archive.travis-ci.org/jobs/12722962/log.txt
To reproduce this, simply run git https://github.com/nomeata/ghc-complete.git cd ghc-complete ./validate.sh
Thanks, Joachim
-- Joachim “nomeata” Breitner mail@joachim-breitner.de • http://www.joachim-breitner.de/ Jabber: nomeata@joachim-breitner.de • GPG-Key: 0x4743206C Debian Developer: nomeata@debian.org _______________________________________________ ghc-devs mailing list ghc-devs@haskell.org http://www.haskell.org/mailman/listinfo/ghc-devs

Hi, Am Freitag, den 18.10.2013, 14:46 -0400 schrieb Richard Eisenberg:
The TH_Roles tests both use `runIO` inside of a TH splice to spit out some stuff. It seems (even on my machine) that when output is redirected, the result of a `runIO` is suppressed. For example, when I compile
{-# LANGUAGE TemplateHaskell #-} module Scratch where
import Language.Haskell.TH
$( do runIO $ putStrLn "hi there" return [] )
I get an output include "hi there" when I run ghc normally, but
prompt> ghc -c Scratch.hs >stdout.txt
leaves me with no output to my terminal, and a stdout.txt that lists only the loaded libraries, no "hi there".
I would guess that the problem on Travis is closely related. Does anyone know more about this output suppression?
the docs for runIO say Note: for various murky reasons, stdout and stderr handles are not necesarily flushed when the compiler finishes running, so you should flush them yourself. so I guess that should be done in the tests, for greater reproducibility. I just added that (522f81d), let’s see if it helps with travis. Greetings, Joachim -- Joachim “nomeata” Breitner mail@joachim-breitner.de • http://www.joachim-breitner.de/ Jabber: nomeata@joachim-breitner.de • GPG-Key: 0x4743206C Debian Developer: nomeata@debian.org

Hi, Am Freitag, den 18.10.2013, 21:43 +0200 schrieb Joachim Breitner:
the docs for runIO say Note: for various murky reasons, stdout and stderr handles are not necesarily flushed when the compiler finishes running, so you should flush them yourself. so I guess that should be done in the tests, for greater reproducibility. I just added that (522f81d), let’s see if it helps with travis.
seems to be fixed. Now travis only complains about unexpected results from: TEST="T7918 T7478 plugins06" https://s3.amazonaws.com/archive.travis-ci.org/jobs/12742704/log.txt Greetings, Joachim -- Joachim “nomeata” Breitner mail@joachim-breitner.de • http://www.joachim-breitner.de/ Jabber: nomeata@joachim-breitner.de • GPG-Key: 0x4743206C Debian Developer: nomeata@debian.org
participants (2)
-
Joachim Breitner
-
Richard Eisenberg