From 4cc6d2c3f818a432f4b2af801d15e8c726b4c325 Mon Sep 17 00:00:00 2001
From: Orestis Melkonian <melkon.or@gmail.com>
Date: Sun, 4 Mar 2018 13:56:57 +0100
Subject: [PATCH] Tests: silence stderr

---
 test/Spec.hs                |  2 +-
 test/TEquivalenceClasses.hs | 15 ++++++++-------
 test/TExamples.hs           | 11 ++++++-----
 3 files changed, 15 insertions(+), 13 deletions(-)

diff --git a/test/Spec.hs b/test/Spec.hs
index feafa3c..4baa535 100644
--- a/test/Spec.hs
+++ b/test/Spec.hs
@@ -10,8 +10,8 @@ main = defaultMain
   [ constructTestSuite testName testSuite
   | (testName, testSuite) <- [
         ("LIR_PARSER", parserTests)
-      , ("EXAMPLES", examples)
       , ("MODEL_PARSER", modelParserTests)
+      , ("EXAMPLES", examples)
       , ("EQUIV_REAL", genEquivTests "examples/test_equiv/Reals.java")
       , ("EQUIV_ARRAY", genEquivTests "examples/test_equiv/Arrays.java")
       ]
diff --git a/test/TEquivalenceClasses.hs b/test/TEquivalenceClasses.hs
index 388ea75..ed07077 100644
--- a/test/TEquivalenceClasses.hs
+++ b/test/TEquivalenceClasses.hs
@@ -1,20 +1,21 @@
 module TEquivalenceClasses where
 
 import Control.Monad
-import Data.List (elemIndex)
-import Data.List.Split (splitOn)
+import Data.List          (elemIndex)
+import Data.List.Split    (splitOn)
 import Data.Maybe
-import System.IO.Silently (silence)
-import System.IO.Unsafe (unsafePerformIO)
+import System.IO          (stderr, stdout)
+import System.IO.Silently (hSilence)
+import System.IO.Unsafe   (unsafePerformIO)
 import Test.HUnit
 
+import API
 import Javawlp.Engine.HelperFunctions (parseMethodIds)
 import Model
-import API
 
 testEquiv :: Response -> String -> String -> String -> Assertion
 testEquiv b src s s' =
-  (case unsafePerformIO (silence $ compareSpec Debug File (src, s) (src, s')) of
+  (case unsafePerformIO (hSilence [stdout, stderr] $ compareSpec Debug File (src, s) (src, s')) of
     NotEquivalent x -> NotEquivalent emptyModel
     x               -> x
    ) @?= b
@@ -22,7 +23,7 @@ testEquiv b src s s' =
 (.!=) = testEquiv $ NotEquivalent emptyModel
 
 genEquivTests edslSrc =
-  let methodIds = unsafePerformIO (silence $ parseMethodIds edslSrc)
+  let methodIds = unsafePerformIO (hSilence [stdout, stderr] $ parseMethodIds edslSrc)
       getClass = last . splitOn "_"
       tailFrom :: Eq a => [a] -> a -> [a]
       tailFrom xs x = case elemIndex x xs of Just i  -> snd $ splitAt i xs
diff --git a/test/TExamples.hs b/test/TExamples.hs
index 8be3920..30ff8b5 100644
--- a/test/TExamples.hs
+++ b/test/TExamples.hs
@@ -1,18 +1,19 @@
 module TExamples where
-import System.IO.Unsafe (unsafePerformIO)
-import System.IO.Silently (silence)
+import System.IO          (stderr, stdout)
+import System.IO.Silently (hSilence)
+import System.IO.Unsafe   (unsafePerformIO)
 import Test.HUnit
 
-import Model
 import API
+import Model
 
 src = "examples/javawlp_edsl/src/nl/uu/javawlp_edsl/Main.java"
 
 testEquiv :: Response -> String -> String -> Assertion
 testEquiv b s s' =
-  (case unsafePerformIO (silence $ compareSpec Debug File (src, s) (src, s')) of
+  (case unsafePerformIO (hSilence [stdout, stderr] $ compareSpec Debug File (src, s) (src, s')) of
     NotEquivalent _ -> NotEquivalent emptyModel
-    x -> x
+    x               -> x
    ) @?= b
 (.==) = testEquiv Equivalent
 (.!=) = testEquiv $ NotEquivalent emptyModel
-- 
GitLab