From a29b6d38a80629c673eed2634b9ed28bb352f736 Mon Sep 17 00:00:00 2001
From: Johan Tibell <johan.tibell@gmail.com>
Date: Fri, 26 Oct 2012 10:20:41 -0700
Subject: [PATCH] Fix remaining warnings in the test suite

---
 Cabal/tests/PackageTests.hs                   | 27 ++++++++--------
 .../PackageTests/BenchmarkExeV10/Check.hs     | 12 +++----
 .../PackageTests/BenchmarkOptions/Check.hs    | 15 +++++----
 .../PackageTests/BenchmarkStanza/Check.hs     | 28 ++++++-----------
 .../BuildDeps/InternalLibrary0/Check.hs       |  8 ++---
 .../BuildDeps/InternalLibrary1/Check.hs       |  5 ++-
 .../BuildDeps/InternalLibrary2/Check.hs       |  7 ++---
 .../BuildDeps/InternalLibrary3/Check.hs       |  7 ++---
 .../BuildDeps/InternalLibrary4/Check.hs       |  7 ++---
 Cabal/tests/PackageTests/PackageTester.hs     | 11 ++++++-
 .../PathsModule/Executable/Check.hs           |  5 ++-
 .../PackageTests/PathsModule/Library/Check.hs |  5 ++-
 .../PackageTests/TemplateHaskell/Check.hs     | 24 ++------------
 Cabal/tests/PackageTests/TestOptions/Check.hs | 15 +++++----
 Cabal/tests/PackageTests/TestStanza/Check.hs  | 31 ++++++-------------
 15 files changed, 81 insertions(+), 126 deletions(-)

diff --git a/Cabal/tests/PackageTests.hs b/Cabal/tests/PackageTests.hs
index 25efc219ae..5ed96b2021 100644
--- a/Cabal/tests/PackageTests.hs
+++ b/Cabal/tests/PackageTests.hs
@@ -26,7 +26,6 @@ import PackageTests.BuildDeps.InternalLibrary3.Check
 import PackageTests.BuildDeps.InternalLibrary4.Check
 import PackageTests.BuildDeps.SameDepsAllRound.Check
 import PackageTests.BuildDeps.TargetSpecificDeps1.Check
-import PackageTests.BuildDeps.TargetSpecificDeps1.Check
 import PackageTests.BuildDeps.TargetSpecificDeps2.Check
 import PackageTests.BuildDeps.TargetSpecificDeps3.Check
 import PackageTests.PathsModule.Executable.Check
@@ -40,7 +39,7 @@ hunit :: TestName -> HUnit.Test -> Test
 hunit name test = testGroup name $ hUnitTestToTests test
 
 tests :: Version -> [Test]
-tests cabalVersion =
+tests version =
     [ hunit "BuildDeps/SameDepsAllRound"
       PackageTests.BuildDeps.SameDepsAllRound.Check.suite
       -- The two following tests were disabled by Johan Tibell as
@@ -50,7 +49,7 @@ tests cabalVersion =
       -- , hunit "BuildDeps/GlobalBuildDepsNotAdditive2/"
       --   PackageTests.BuildDeps.GlobalBuildDepsNotAdditive2.Check.suite
     , hunit "BuildDeps/InternalLibrary0"
-      (PackageTests.BuildDeps.InternalLibrary0.Check.suite cabalVersion)
+      (PackageTests.BuildDeps.InternalLibrary0.Check.suite version)
     , hunit "TestStanza" PackageTests.TestStanza.Check.suite
       -- ^ The Test stanza test will eventually be required
       -- only for higher versions.
@@ -58,12 +57,11 @@ tests cabalVersion =
     , hunit "TestSuiteExeV10/TestWithHpc"
       PackageTests.TestSuiteExeV10.Check.checkTestWithHpc
     , hunit "TestOptions" PackageTests.TestOptions.Check.suite
-    , hunit "BenchmarkStanza"
-      (PackageTests.BenchmarkStanza.Check.suite cabalVersion)
+    , hunit "BenchmarkStanza" PackageTests.BenchmarkStanza.Check.suite
       -- ^ The benchmark stanza test will eventually be required
       -- only for higher versions.
     , hunit "BenchmarkExeV10/Test"
-      (PackageTests.BenchmarkExeV10.Check.checkBenchmark cabalVersion)
+      PackageTests.BenchmarkExeV10.Check.checkBenchmark
     , hunit "BenchmarkOptions" PackageTests.BenchmarkOptions.Check.suite
     , hunit "TemplateHaskell/profiling"
       PackageTests.TemplateHaskell.Check.profiling
@@ -74,24 +72,25 @@ tests cabalVersion =
     , hunit "PathsModule/Library" PackageTests.PathsModule.Library.Check.suite
     ] ++
     -- These tests are only required to pass on cabal version >= 1.7
-    (if cabalVersion >= Version [1, 7] []
-     then [ hunit "BuildDeps/TargetSpecificDeps1/"
+    (if version >= Version [1, 7] []
+     then [ hunit "BuildDeps/TargetSpecificDeps1"
             PackageTests.BuildDeps.TargetSpecificDeps1.Check.suite
-          , hunit "BuildDeps/TargetSpecificDeps2/"
+          , hunit "BuildDeps/TargetSpecificDeps2"
             PackageTests.BuildDeps.TargetSpecificDeps2.Check.suite
-          , hunit "BuildDeps/TargetSpecificDeps3/"
+          , hunit "BuildDeps/TargetSpecificDeps3"
             PackageTests.BuildDeps.TargetSpecificDeps3.Check.suite
-          , hunit "BuildDeps/InternalLibrary1/"
+          , hunit "BuildDeps/InternalLibrary1"
             PackageTests.BuildDeps.InternalLibrary1.Check.suite
-          , hunit "BuildDeps/InternalLibrary2/"
+          , hunit "BuildDeps/InternalLibrary2"
             PackageTests.BuildDeps.InternalLibrary2.Check.suite
-          , hunit "BuildDeps/InternalLibrary3/"
+          , hunit "BuildDeps/InternalLibrary3"
             PackageTests.BuildDeps.InternalLibrary3.Check.suite
-          , hunit "BuildDeps/InternalLibrary4/"
+          , hunit "BuildDeps/InternalLibrary4"
             PackageTests.BuildDeps.InternalLibrary4.Check.suite
           ]
      else [])
 
+main :: IO ()
 main = do
     putStrLn $ "Cabal test suite - testing cabal version " ++
         display cabalVersion
diff --git a/Cabal/tests/PackageTests/BenchmarkExeV10/Check.hs b/Cabal/tests/PackageTests/BenchmarkExeV10/Check.hs
index 2d5a75afe3..1061e4309f 100644
--- a/Cabal/tests/PackageTests/BenchmarkExeV10/Check.hs
+++ b/Cabal/tests/PackageTests/BenchmarkExeV10/Check.hs
@@ -2,19 +2,15 @@ module PackageTests.BenchmarkExeV10.Check
        ( checkBenchmark
        ) where
 
-import Distribution.PackageDescription ( Benchmark(..), emptyBenchmark )
-import Distribution.Simple.Hpc
-import Distribution.Version
-import Test.HUnit
-import System.Directory
-import System.FilePath
 import PackageTests.PackageTester
+import System.FilePath
+import Test.HUnit
 
 dir :: FilePath
 dir = "PackageTests" </> "BenchmarkExeV10"
 
-checkBenchmark :: Version -> Test
-checkBenchmark cabalVersion = TestCase $ do
+checkBenchmark :: Test
+checkBenchmark = TestCase $ do
     let spec = PackageSpec dir ["--enable-benchmarks"]
     buildResult <- cabal_build spec
     assertBuildSucceeded buildResult
diff --git a/Cabal/tests/PackageTests/BenchmarkOptions/Check.hs b/Cabal/tests/PackageTests/BenchmarkOptions/Check.hs
index dbb7a74e8c..0046fed1d9 100644
--- a/Cabal/tests/PackageTests/BenchmarkOptions/Check.hs
+++ b/Cabal/tests/PackageTests/BenchmarkOptions/Check.hs
@@ -1,14 +1,13 @@
 module PackageTests.BenchmarkOptions.Check where
 
-import Test.HUnit
-import System.FilePath
 import PackageTests.PackageTester
+import System.FilePath
+import Test.HUnit
 
 suite :: Test
 suite = TestCase $ do
-    let directory = "PackageTests" </> "BenchmarkOptions"
-        pdFile = directory </> "BenchmarkOptions" <.> "cabal"
-        spec = PackageSpec directory ["--enable-benchmarks"]
+    let spec = PackageSpec ("PackageTests" </> "BenchmarkOptions")
+               ["--enable-benchmarks"]
     _ <- cabal_build spec
     result <- cabal_bench spec ["--benchmark-options=1 2 3"]
     let message = "\"cabal bench\" did not pass the correct options to the "
@@ -18,6 +17,6 @@ suite = TestCase $ do
                                 , "--benchmark-option=2"
                                 , "--benchmark-option=3"
                                 ]
-    let message = "\"cabal bench\" did not pass the correct options to the "
-                  ++ "benchmark executable with \"--benchmark-option\""
-    assertEqual message True $ successful result'
+    let message' = "\"cabal bench\" did not pass the correct options to the "
+                   ++ "benchmark executable with \"--benchmark-option\""
+    assertEqual message' True $ successful result'
diff --git a/Cabal/tests/PackageTests/BenchmarkStanza/Check.hs b/Cabal/tests/PackageTests/BenchmarkStanza/Check.hs
index 3f83002f87..264ee2ae7a 100644
--- a/Cabal/tests/PackageTests/BenchmarkStanza/Check.hs
+++ b/Cabal/tests/PackageTests/BenchmarkStanza/Check.hs
@@ -3,41 +3,33 @@ module PackageTests.BenchmarkStanza.Check where
 import Test.HUnit
 import System.FilePath
 import PackageTests.PackageTester
-import Data.List (isInfixOf, intercalate)
 import Distribution.Version
 import Distribution.PackageDescription.Parse
         ( readPackageDescription )
 import Distribution.PackageDescription.Configuration
         ( finalizePackageDescription )
 import Distribution.Package
-        ( PackageIdentifier(..), PackageName(..), Dependency(..) )
+        ( PackageName(..), Dependency(..) )
 import Distribution.PackageDescription
-        ( PackageDescription(..), BuildInfo(..), Benchmark(..), Library(..)
+        ( PackageDescription(..), BuildInfo(..), Benchmark(..)
         , BenchmarkInterface(..)
-        , TestType(..), emptyPackageDescription, emptyBuildInfo, emptyLibrary
-        , emptyBenchmark, BuildType(..) )
+        , emptyBuildInfo
+        , emptyBenchmark )
 import Distribution.Verbosity (silent)
-import Distribution.License (License(..))
-import Distribution.ModuleName (fromString)
 import Distribution.System (buildPlatform)
 import Distribution.Compiler
         ( CompilerId(..), CompilerFlavor(..) )
 import Distribution.Text
 
-suite :: Version -> Test
-suite cabalVersion = TestCase $ do
-    let directory = "PackageTests" </> "BenchmarkStanza"
-        pdFile = directory </> "my" <.> "cabal"
-        spec = PackageSpec directory []
+suite :: Test
+suite = TestCase $ do
+    let dir = "PackageTests" </> "BenchmarkStanza"
+        pdFile = dir </> "my" <.> "cabal"
+        spec = PackageSpec dir []
     result <- cabal_configure spec
-    let message = "cabal configure should recognize benchmark section"
-        test = "unknown section type"
-               `isInfixOf`
-               (intercalate " " $ lines $ outputText result)
-    assertEqual message False test
+    assertOutputDoesNotContain "unknown section type" result
     genPD <- readPackageDescription silent pdFile
     let compiler = CompilerId GHC $ Version [6, 12, 2] []
-        anyV = intersectVersionRanges anyVersion anyVersion
         anticipatedBenchmark = emptyBenchmark
             { benchmarkName = "dummy"
             , benchmarkInterface = BenchmarkExeV10 (Version [1,0] []) "dummy.hs"
diff --git a/Cabal/tests/PackageTests/BuildDeps/InternalLibrary0/Check.hs b/Cabal/tests/PackageTests/BuildDeps/InternalLibrary0/Check.hs
index 059ebf301f..fb1e9e58e0 100644
--- a/Cabal/tests/PackageTests/BuildDeps/InternalLibrary0/Check.hs
+++ b/Cabal/tests/PackageTests/BuildDeps/InternalLibrary0/Check.hs
@@ -1,13 +1,11 @@
 module PackageTests.BuildDeps.InternalLibrary0.Check where
 
-import Test.HUnit
-import PackageTests.PackageTester
 import Control.Monad
-import System.FilePath
 import Data.Version
-import Data.List (isInfixOf, intercalate)
-import Control.Exception
+import PackageTests.PackageTester
 import Prelude hiding (catch)
+import System.FilePath
+import Test.HUnit
 
 
 suite :: Version -> Test
diff --git a/Cabal/tests/PackageTests/BuildDeps/InternalLibrary1/Check.hs b/Cabal/tests/PackageTests/BuildDeps/InternalLibrary1/Check.hs
index 4c885694f1..ec5f989212 100644
--- a/Cabal/tests/PackageTests/BuildDeps/InternalLibrary1/Check.hs
+++ b/Cabal/tests/PackageTests/BuildDeps/InternalLibrary1/Check.hs
@@ -1,10 +1,9 @@
 module PackageTests.BuildDeps.InternalLibrary1.Check where
 
-import Test.HUnit
 import PackageTests.PackageTester
-import System.FilePath
-import Control.Exception
 import Prelude hiding (catch)
+import System.FilePath
+import Test.HUnit
 
 
 suite :: Test
diff --git a/Cabal/tests/PackageTests/BuildDeps/InternalLibrary2/Check.hs b/Cabal/tests/PackageTests/BuildDeps/InternalLibrary2/Check.hs
index d631987503..1f46455c54 100644
--- a/Cabal/tests/PackageTests/BuildDeps/InternalLibrary2/Check.hs
+++ b/Cabal/tests/PackageTests/BuildDeps/InternalLibrary2/Check.hs
@@ -1,11 +1,10 @@
 module PackageTests.BuildDeps.InternalLibrary2.Check where
 
-import Test.HUnit
-import PackageTests.PackageTester
-import System.FilePath
 import qualified Data.ByteString.Char8 as C
-import Control.Exception
+import PackageTests.PackageTester
 import Prelude hiding (catch)
+import System.FilePath
+import Test.HUnit
 
 
 suite :: Test
diff --git a/Cabal/tests/PackageTests/BuildDeps/InternalLibrary3/Check.hs b/Cabal/tests/PackageTests/BuildDeps/InternalLibrary3/Check.hs
index 67ced0575a..9f5426dabe 100644
--- a/Cabal/tests/PackageTests/BuildDeps/InternalLibrary3/Check.hs
+++ b/Cabal/tests/PackageTests/BuildDeps/InternalLibrary3/Check.hs
@@ -1,11 +1,10 @@
 module PackageTests.BuildDeps.InternalLibrary3.Check where
 
-import Test.HUnit
-import PackageTests.PackageTester
-import System.FilePath
 import qualified Data.ByteString.Char8 as C
-import Control.Exception
+import PackageTests.PackageTester
 import Prelude hiding (catch)
+import System.FilePath
+import Test.HUnit
 
 
 suite :: Test
diff --git a/Cabal/tests/PackageTests/BuildDeps/InternalLibrary4/Check.hs b/Cabal/tests/PackageTests/BuildDeps/InternalLibrary4/Check.hs
index 331e592ce3..92c0a5c16d 100644
--- a/Cabal/tests/PackageTests/BuildDeps/InternalLibrary4/Check.hs
+++ b/Cabal/tests/PackageTests/BuildDeps/InternalLibrary4/Check.hs
@@ -1,11 +1,10 @@
 module PackageTests.BuildDeps.InternalLibrary4.Check where
 
-import Test.HUnit
-import PackageTests.PackageTester
-import System.FilePath
 import qualified Data.ByteString.Char8 as C
-import Control.Exception
+import PackageTests.PackageTester
 import Prelude hiding (catch)
+import System.FilePath
+import Test.HUnit
 
 
 suite :: Test
diff --git a/Cabal/tests/PackageTests/PackageTester.hs b/Cabal/tests/PackageTests/PackageTester.hs
index fd14386bdc..34db726456 100644
--- a/Cabal/tests/PackageTests/PackageTester.hs
+++ b/Cabal/tests/PackageTests/PackageTester.hs
@@ -14,7 +14,8 @@ module PackageTests.PackageTester (
         assertBuildFailed,
         assertTestSucceeded,
         assertInstallSucceeded,
-        assertOutputContains
+        assertOutputContains,
+        assertOutputDoesNotContain
     ) where
 
 import qualified Control.Exception.Extensible as E
@@ -220,6 +221,14 @@ assertOutputContains needle result =
     "in output: " ++ output
   where output = outputText result
 
+assertOutputDoesNotContain :: String -> Result -> Assertion
+assertOutputDoesNotContain needle result =
+    when (needle `isInfixOf` (intercalate " " $ lines output)) $
+    assertFailure $
+    "unexpected: " ++ needle ++
+    " in output: " ++ output
+  where output = outputText result
+
 ------------------------------------------------------------------------
 -- Finding ghc and related tools
 --
diff --git a/Cabal/tests/PackageTests/PathsModule/Executable/Check.hs b/Cabal/tests/PackageTests/PathsModule/Executable/Check.hs
index a33ceb1cd7..48950e53a8 100644
--- a/Cabal/tests/PackageTests/PathsModule/Executable/Check.hs
+++ b/Cabal/tests/PackageTests/PathsModule/Executable/Check.hs
@@ -1,8 +1,7 @@
 module PackageTests.PathsModule.Executable.Check (suite) where
 
-import Distribution.Version
-import PackageTests.PackageTester (PackageSpec(..), assertBuildSucceeded,
-                                   cabal_build)
+import PackageTests.PackageTester
+    (PackageSpec(..), assertBuildSucceeded, cabal_build)
 import System.FilePath
 import Test.HUnit
 
diff --git a/Cabal/tests/PackageTests/PathsModule/Library/Check.hs b/Cabal/tests/PackageTests/PathsModule/Library/Check.hs
index 3302ba2a6e..420b2044bc 100644
--- a/Cabal/tests/PackageTests/PathsModule/Library/Check.hs
+++ b/Cabal/tests/PackageTests/PathsModule/Library/Check.hs
@@ -1,8 +1,7 @@
 module PackageTests.PathsModule.Library.Check (suite) where
 
-import Distribution.Version
-import PackageTests.PackageTester (PackageSpec(..), assertBuildSucceeded,
-                                   cabal_build)
+import PackageTests.PackageTester
+    (PackageSpec(..), assertBuildSucceeded, cabal_build)
 import System.FilePath
 import Test.HUnit
 
diff --git a/Cabal/tests/PackageTests/TemplateHaskell/Check.hs b/Cabal/tests/PackageTests/TemplateHaskell/Check.hs
index c880c8ee46..346c9ba1d0 100644
--- a/Cabal/tests/PackageTests/TemplateHaskell/Check.hs
+++ b/Cabal/tests/PackageTests/TemplateHaskell/Check.hs
@@ -1,28 +1,8 @@
 module PackageTests.TemplateHaskell.Check where
 
-import Test.HUnit
-import System.FilePath
 import PackageTests.PackageTester
-import Data.List (isInfixOf, intercalate)
-import Distribution.Version
-import Distribution.PackageDescription.Parse
-        ( readPackageDescription )
-import Distribution.PackageDescription.Configuration
-        ( finalizePackageDescription )
-import Distribution.Package
-        ( PackageIdentifier(..), PackageName(..), Dependency(..) )
-import Distribution.PackageDescription
-        ( PackageDescription(..), BuildInfo(..), TestSuite(..), Library(..)
-        , TestSuiteInterface(..)
-        , TestType(..), emptyPackageDescription, emptyBuildInfo, emptyLibrary
-        , emptyTestSuite, BuildType(..) )
-import Distribution.Verbosity (silent)
-import Distribution.License (License(..))
-import Distribution.ModuleName (fromString)
-import Distribution.System (buildPlatform)
-import Distribution.Compiler
-        ( CompilerId(..), CompilerFlavor(..) )
-import Distribution.Text
+import System.FilePath
+import Test.HUnit
 
 profiling :: Test
 profiling = TestCase $ do
diff --git a/Cabal/tests/PackageTests/TestOptions/Check.hs b/Cabal/tests/PackageTests/TestOptions/Check.hs
index 0943530038..ea4f4d3b0d 100644
--- a/Cabal/tests/PackageTests/TestOptions/Check.hs
+++ b/Cabal/tests/PackageTests/TestOptions/Check.hs
@@ -1,14 +1,13 @@
 module PackageTests.TestOptions.Check where
 
-import Test.HUnit
-import System.FilePath
 import PackageTests.PackageTester
+import System.FilePath
+import Test.HUnit
 
 suite :: Test
 suite = TestCase $ do
-    let directory = "PackageTests" </> "TestOptions"
-        pdFile = directory </> "TestOptions" <.> "cabal"
-        spec = PackageSpec directory ["--enable-tests"]
+    let spec = PackageSpec ("PackageTests" </> "TestOptions")
+               ["--enable-tests"]
     _ <- cabal_build spec
     result <- cabal_test spec ["--test-options=1 2 3"]
     let message = "\"cabal test\" did not pass the correct options to the "
@@ -18,6 +17,6 @@ suite = TestCase $ do
                                , "--test-option=2"
                                , "--test-option=3"
                                ]
-    let message = "\"cabal test\" did not pass the correct options to the "
-                  ++ "test executable with \"--test-option\""
-    assertEqual message True $ successful result'
+    let message' = "\"cabal test\" did not pass the correct options to the "
+                   ++ "test executable with \"--test-option\""
+    assertEqual message' True $ successful result'
diff --git a/Cabal/tests/PackageTests/TestStanza/Check.hs b/Cabal/tests/PackageTests/TestStanza/Check.hs
index 42dd52123e..fdf47b733e 100644
--- a/Cabal/tests/PackageTests/TestStanza/Check.hs
+++ b/Cabal/tests/PackageTests/TestStanza/Check.hs
@@ -3,39 +3,28 @@ module PackageTests.TestStanza.Check where
 import Test.HUnit
 import System.FilePath
 import PackageTests.PackageTester
-import Data.List (isInfixOf, intercalate)
 import Distribution.Version
-import Distribution.PackageDescription.Parse
-        ( readPackageDescription )
+import Distribution.PackageDescription.Parse (readPackageDescription)
 import Distribution.PackageDescription.Configuration
-        ( finalizePackageDescription )
-import Distribution.Package
-        ( PackageName(..), Dependency(..) )
+    (finalizePackageDescription)
+import Distribution.Package (PackageName(..), Dependency(..))
 import Distribution.PackageDescription
-        ( PackageDescription(..), BuildInfo(..), TestSuite(..)
-        , TestSuiteInterface(..), emptyBuildInfo, emptyTestSuite )
+    ( PackageDescription(..), BuildInfo(..), TestSuite(..)
+    , TestSuiteInterface(..), emptyBuildInfo, emptyTestSuite)
 import Distribution.Verbosity (silent)
-import Distribution.License (License(..))
-import Distribution.ModuleName (fromString)
 import Distribution.System (buildPlatform)
-import Distribution.Compiler
-        ( CompilerId(..), CompilerFlavor(..) )
+import Distribution.Compiler (CompilerId(..), CompilerFlavor(..))
 import Distribution.Text
 
 suite :: Test
 suite = TestCase $ do
-    let directory = "PackageTests" </> "TestStanza"
-        pdFile = directory </> "my" <.> "cabal"
-        spec = PackageSpec directory []
+    let dir = "PackageTests" </> "TestStanza"
+        pdFile = dir </> "my" <.> "cabal"
+        spec = PackageSpec dir []
     result <- cabal_configure spec
-    let message = "cabal configure should recognize test section"
-        test = "unknown section type"
-               `isInfixOf`
-               (intercalate " " $ lines $ outputText result)
-    assertEqual message False test
+    assertOutputDoesNotContain "unknown section type" result
     genPD <- readPackageDescription silent pdFile
     let compiler = CompilerId GHC $ Version [6, 12, 2] []
-        anyV = intersectVersionRanges anyVersion anyVersion
         anticipatedTestSuite = emptyTestSuite
             { testName = "dummy"
             , testInterface = TestSuiteExeV10 (Version [1,0] []) "dummy.hs"
-- 
GitLab