diff --git a/Cabal/Cabal.cabal b/Cabal/Cabal.cabal index 83097a31553a58aad5670cf8a782701f467b773c..6d73a20db3197df180006a4f244b4acf8c44048f 100644 --- a/Cabal/Cabal.cabal +++ b/Cabal/Cabal.cabal @@ -261,11 +261,10 @@ test-suite unit-tests main-is: UnitTests.hs build-depends: base, - test-framework, - test-framework-hunit, - test-framework-quickcheck2, - HUnit, - QuickCheck < 2.8, + tasty, + tasty-hunit, + tasty-quickcheck, + QuickCheck < 2.9, Cabal ghc-options: -Wall default-language: Haskell98 @@ -308,11 +307,10 @@ test-suite package-tests build-depends: base, containers, - test-framework, - test-framework-quickcheck2 >= 0.2.12, - test-framework-hunit, - HUnit, - QuickCheck >= 2.1.0.1 && < 2.8, + tasty, + tasty-quickcheck, + tasty-hunit, + QuickCheck >= 2.1.0.1 && < 2.9, Cabal, process, directory, diff --git a/Cabal/tests/PackageTests.hs b/Cabal/tests/PackageTests.hs index a3b244438e752250c910ad40fdd23ed376526e40..e9b05d054bcb9fadc36717ab66fe73bd870f19d5 100644 --- a/Cabal/tests/PackageTests.hs +++ b/Cabal/tests/PackageTests.hs @@ -52,87 +52,78 @@ import Control.Exception (try, throw) import System.Directory ( getCurrentDirectory, setCurrentDirectory ) import System.FilePath ((</>)) -import System.IO (BufferMode(NoBuffering), hSetBuffering, stdout) -import Test.Framework (Test, TestName, defaultMain, testGroup) -import Test.Framework.Providers.HUnit (hUnitTestToTests) -import qualified Test.HUnit as HUnit +import Test.Tasty +import Test.Tasty.HUnit -hunit :: TestName -> HUnit.Test -> Test -hunit name test = testGroup name $ hUnitTestToTests test - -tests :: Version -> PackageSpec -> FilePath -> FilePath -> [Test] +tests :: Version -> PackageSpec -> FilePath -> FilePath -> [TestTree] tests version inplaceSpec ghcPath ghcPkgPath = - [ hunit "BuildDeps/SameDepsAllRound" + [ testCase "BuildDeps/SameDepsAllRound" (PackageTests.BuildDeps.SameDepsAllRound.Check.suite ghcPath) -- The two following tests were disabled by Johan Tibell as -- they have been failing for a long time: - -- , hunit "BuildDeps/GlobalBuildDepsNotAdditive1/" + -- , testCase "BuildDeps/GlobalBuildDepsNotAdditive1/" -- (PackageTests.BuildDeps.GlobalBuildDepsNotAdditive1.Check.suite ghcPath) - -- , hunit "BuildDeps/GlobalBuildDepsNotAdditive2/" + -- , testCase "BuildDeps/GlobalBuildDepsNotAdditive2/" -- (PackageTests.BuildDeps.GlobalBuildDepsNotAdditive2.Check.suite ghcPath) - , hunit "BuildDeps/InternalLibrary0" + , testCase "BuildDeps/InternalLibrary0" (PackageTests.BuildDeps.InternalLibrary0.Check.suite version ghcPath) - , hunit "PreProcess" (PackageTests.PreProcess.Check.suite ghcPath) - , hunit "TestStanza" (PackageTests.TestStanza.Check.suite ghcPath) + , testCase "PreProcess" (PackageTests.PreProcess.Check.suite ghcPath) + , testCase "TestStanza" (PackageTests.TestStanza.Check.suite ghcPath) -- ^ The Test stanza test will eventually be required -- only for higher versions. , testGroup "TestSuiteExeV10" (PackageTests.TestSuiteExeV10.Check.checks ghcPath) - , hunit "TestOptions" (PackageTests.TestOptions.Check.suite ghcPath) - , hunit "BenchmarkStanza" (PackageTests.BenchmarkStanza.Check.suite ghcPath) + , testCase "TestOptions" (PackageTests.TestOptions.Check.suite ghcPath) + , testCase "BenchmarkStanza" (PackageTests.BenchmarkStanza.Check.suite ghcPath) -- ^ The benchmark stanza test will eventually be required -- only for higher versions. - , hunit "BenchmarkExeV10/Test" + , testCase "BenchmarkExeV10/Test" (PackageTests.BenchmarkExeV10.Check.checkBenchmark ghcPath) - , hunit "BenchmarkOptions" (PackageTests.BenchmarkOptions.Check.suite ghcPath) - , hunit "TemplateHaskell/vanilla" + , testCase "BenchmarkOptions" (PackageTests.BenchmarkOptions.Check.suite ghcPath) + , testCase "TemplateHaskell/vanilla" (PackageTests.TemplateHaskell.Check.vanilla ghcPath) - , hunit "TemplateHaskell/profiling" + , testCase "TemplateHaskell/profiling" (PackageTests.TemplateHaskell.Check.profiling ghcPath) - , hunit "PathsModule/Executable" + , testCase "PathsModule/Executable" (PackageTests.PathsModule.Executable.Check.suite ghcPath) - , hunit "PathsModule/Library" (PackageTests.PathsModule.Library.Check.suite ghcPath) - , hunit "DeterministicAr" + , testCase "PathsModule/Library" (PackageTests.PathsModule.Library.Check.suite ghcPath) + , testCase "DeterministicAr" (PackageTests.DeterministicAr.Check.suite ghcPath ghcPkgPath) - , hunit "EmptyLib/emptyLib" + , testCase "EmptyLib/emptyLib" (PackageTests.EmptyLib.Check.emptyLib ghcPath) - , hunit "Haddock" (PackageTests.Haddock.Check.suite ghcPath) - , hunit "BuildTestSuiteDetailedV09" + , testCase "Haddock" (PackageTests.Haddock.Check.suite ghcPath) + , testCase "BuildTestSuiteDetailedV09" (PackageTests.BuildTestSuiteDetailedV09.Check.suite inplaceSpec ghcPath) - , hunit "OrderFlags" + , testCase "OrderFlags" (PackageTests.OrderFlags.Check.suite ghcPath) - , hunit "TemplateHaskell/dynamic" + , testCase "TemplateHaskell/dynamic" (PackageTests.TemplateHaskell.Check.dynamic ghcPath) - , hunit "ReexportedModules" + , testCase "ReexportedModules" (PackageTests.ReexportedModules.Check.suite ghcPath) ] ++ -- These tests are only required to pass on cabal version >= 1.7 (if version >= Version [1, 7] [] - then [ hunit "BuildDeps/TargetSpecificDeps1" + then [ testCase "BuildDeps/TargetSpecificDeps1" (PackageTests.BuildDeps.TargetSpecificDeps1.Check.suite ghcPath) - , hunit "BuildDeps/TargetSpecificDeps2" + , testCase "BuildDeps/TargetSpecificDeps2" (PackageTests.BuildDeps.TargetSpecificDeps2.Check.suite ghcPath) - , hunit "BuildDeps/TargetSpecificDeps3" + , testCase "BuildDeps/TargetSpecificDeps3" (PackageTests.BuildDeps.TargetSpecificDeps3.Check.suite ghcPath) - , hunit "BuildDeps/InternalLibrary1" + , testCase "BuildDeps/InternalLibrary1" (PackageTests.BuildDeps.InternalLibrary1.Check.suite ghcPath) - , hunit "BuildDeps/InternalLibrary2" + , testCase "BuildDeps/InternalLibrary2" (PackageTests.BuildDeps.InternalLibrary2.Check.suite ghcPath ghcPkgPath) - , hunit "BuildDeps/InternalLibrary3" + , testCase "BuildDeps/InternalLibrary3" (PackageTests.BuildDeps.InternalLibrary3.Check.suite ghcPath ghcPkgPath) - , hunit "BuildDeps/InternalLibrary4" + , testCase "BuildDeps/InternalLibrary4" (PackageTests.BuildDeps.InternalLibrary4.Check.suite ghcPath ghcPkgPath) - , hunit "PackageTests/CMain" + , testCase "PackageTests/CMain" (PackageTests.CMain.Check.checkBuild ghcPath) ] else []) main :: IO () main = do - -- WORKAROUND: disable buffering on stdout to get streaming test logs - -- test providers _should_ do this themselves - hSetBuffering stdout NoBuffering - wd <- getCurrentDirectory let dbFile = wd </> "dist/package.conf.inplace" inplaceSpec = PackageSpec @@ -157,7 +148,8 @@ main = do setCurrentDirectory "tests" -- Create a shared Setup executable to speed up Simple tests compileSetup "." ghcPath - defaultMain (tests cabalVersion inplaceSpec ghcPath ghcPkgPath) + defaultMain $ testGroup "Package Tests" + (tests cabalVersion inplaceSpec ghcPath ghcPkgPath) -- Like Distribution.Simple.Configure.getPersistBuildConfig but -- doesn't check that the Cabal version matches, which it doesn't when diff --git a/Cabal/tests/PackageTests/BenchmarkExeV10/Check.hs b/Cabal/tests/PackageTests/BenchmarkExeV10/Check.hs index 6904048ee82fda19738f021c07c2225cd7ed509e..6316f972bd466f1fd09cd0ed501f4c9c38af98e1 100644 --- a/Cabal/tests/PackageTests/BenchmarkExeV10/Check.hs +++ b/Cabal/tests/PackageTests/BenchmarkExeV10/Check.hs @@ -4,13 +4,13 @@ module PackageTests.BenchmarkExeV10.Check import PackageTests.PackageTester import System.FilePath -import Test.HUnit +import Test.Tasty.HUnit dir :: FilePath dir = "PackageTests" </> "BenchmarkExeV10" -checkBenchmark :: FilePath -> Test -checkBenchmark ghcPath = TestCase $ do +checkBenchmark :: FilePath -> Assertion +checkBenchmark ghcPath = do let spec = PackageSpec dir Nothing ["--enable-benchmarks"] buildResult <- cabal_build spec ghcPath assertBuildSucceeded buildResult diff --git a/Cabal/tests/PackageTests/BenchmarkOptions/Check.hs b/Cabal/tests/PackageTests/BenchmarkOptions/Check.hs index d217b04d213f5017af231008a0412adef25ef925..41f363c8deb61140b3a929d04642a16caa192b32 100644 --- a/Cabal/tests/PackageTests/BenchmarkOptions/Check.hs +++ b/Cabal/tests/PackageTests/BenchmarkOptions/Check.hs @@ -2,10 +2,10 @@ module PackageTests.BenchmarkOptions.Check where import PackageTests.PackageTester import System.FilePath -import Test.HUnit +import Test.Tasty.HUnit -suite :: FilePath -> Test -suite ghcPath = TestCase $ do +suite :: FilePath -> Assertion +suite ghcPath = do let spec = PackageSpec { directory = "PackageTests" </> "BenchmarkOptions" , configOpts = ["--enable-benchmarks"] diff --git a/Cabal/tests/PackageTests/BenchmarkStanza/Check.hs b/Cabal/tests/PackageTests/BenchmarkStanza/Check.hs index fb4098524511e27e8b853bcd6ac1586fb1045e71..5ffdb4083ccf9dc6b563d15a2c14424b7c8e0bb9 100644 --- a/Cabal/tests/PackageTests/BenchmarkStanza/Check.hs +++ b/Cabal/tests/PackageTests/BenchmarkStanza/Check.hs @@ -1,6 +1,6 @@ module PackageTests.BenchmarkStanza.Check where -import Test.HUnit +import Test.Tasty.HUnit import System.FilePath import qualified Data.Map as Map import PackageTests.PackageTester @@ -22,8 +22,8 @@ import Distribution.Compiler ( CompilerId(..), CompilerFlavor(..), unknownCompilerInfo, AbiTag(..) ) import Distribution.Text -suite :: FilePath -> Test -suite ghcPath = TestCase $ do +suite :: FilePath -> Assertion +suite ghcPath = do let dir = "PackageTests" </> "BenchmarkStanza" pdFile = dir </> "my" <.> "cabal" spec = PackageSpec { directory = dir, configOpts = [], distPref = Nothing } diff --git a/Cabal/tests/PackageTests/BuildDeps/GlobalBuildDepsNotAdditive1/Check.hs b/Cabal/tests/PackageTests/BuildDeps/GlobalBuildDepsNotAdditive1/Check.hs index 998a1b9d1aee41e11ea3d33e9e0f2ba66a29b615..4dde5c403aa277e739131df471af34e0b55eebc2 100644 --- a/Cabal/tests/PackageTests/BuildDeps/GlobalBuildDepsNotAdditive1/Check.hs +++ b/Cabal/tests/PackageTests/BuildDeps/GlobalBuildDepsNotAdditive1/Check.hs @@ -1,6 +1,6 @@ module PackageTests.BuildDeps.GlobalBuildDepsNotAdditive1.Check where -import Test.HUnit +import Test.Tasty.HUnit import PackageTests.PackageTester import System.FilePath import Data.List @@ -8,8 +8,8 @@ import Control.Exception import Prelude hiding (catch) -suite :: FilePath -> Test -suite ghcPath = TestCase $ do +suite :: FilePath -> Assertion +suite ghcPath = do let spec = PackageSpec ("PackageTests" </> "BuildDeps" </> "GlobalBuildDepsNotAdditive1") [] result <- cabal_build spec ghcPath do diff --git a/Cabal/tests/PackageTests/BuildDeps/GlobalBuildDepsNotAdditive2/Check.hs b/Cabal/tests/PackageTests/BuildDeps/GlobalBuildDepsNotAdditive2/Check.hs index d245711fc9cf1212ef5e16d1a8179210592d9aa8..6286d4982f731245f33563ec12ba5ea445be21a2 100644 --- a/Cabal/tests/PackageTests/BuildDeps/GlobalBuildDepsNotAdditive2/Check.hs +++ b/Cabal/tests/PackageTests/BuildDeps/GlobalBuildDepsNotAdditive2/Check.hs @@ -1,6 +1,6 @@ module PackageTests.BuildDeps.GlobalBuildDepsNotAdditive2.Check where -import Test.HUnit +import Test.Tasty.HUnit import PackageTests.PackageTester import System.FilePath import Data.List @@ -8,8 +8,8 @@ import Control.Exception import Prelude hiding (catch) -suite :: FilePath -> Test -suite ghcPath = TestCase $ do +suite :: FilePath -> Assertion +suite ghcPath = do let spec = PackageSpec ("PackageTests" </> "BuildDeps" </> "GlobalBuildDepsNotAdditive2") [] result <- cabal_build spec ghcPath do diff --git a/Cabal/tests/PackageTests/BuildDeps/InternalLibrary0/Check.hs b/Cabal/tests/PackageTests/BuildDeps/InternalLibrary0/Check.hs index 14d979d07a75a84923792c5134dbda1f3f92bc1d..910ef703d5a66324b9efe9a81c666f476b32826a 100644 --- a/Cabal/tests/PackageTests/BuildDeps/InternalLibrary0/Check.hs +++ b/Cabal/tests/PackageTests/BuildDeps/InternalLibrary0/Check.hs @@ -4,11 +4,11 @@ import Control.Monad import Data.Version import PackageTests.PackageTester import System.FilePath -import Test.HUnit +import Test.Tasty.HUnit -suite :: Version -> FilePath -> Test -suite cabalVersion ghcPath = TestCase $ do +suite :: Version -> FilePath -> Assertion +suite cabalVersion ghcPath = do let spec = PackageSpec { directory = "PackageTests" </> "BuildDeps" </> "InternalLibrary0" , configOpts = [] diff --git a/Cabal/tests/PackageTests/BuildDeps/InternalLibrary1/Check.hs b/Cabal/tests/PackageTests/BuildDeps/InternalLibrary1/Check.hs index 27e813301f5648bb53ca1d1e191c33d16bd1d117..a7d0c47d0cc5292fbd9030125452adec46c80aa6 100644 --- a/Cabal/tests/PackageTests/BuildDeps/InternalLibrary1/Check.hs +++ b/Cabal/tests/PackageTests/BuildDeps/InternalLibrary1/Check.hs @@ -2,11 +2,11 @@ module PackageTests.BuildDeps.InternalLibrary1.Check where import PackageTests.PackageTester import System.FilePath -import Test.HUnit +import Test.Tasty.HUnit -suite :: FilePath -> Test -suite ghcPath = TestCase $ do +suite :: FilePath -> Assertion +suite ghcPath = do let spec = PackageSpec { directory = "PackageTests" </> "BuildDeps" </> "InternalLibrary1" , configOpts = [] diff --git a/Cabal/tests/PackageTests/BuildDeps/InternalLibrary2/Check.hs b/Cabal/tests/PackageTests/BuildDeps/InternalLibrary2/Check.hs index babf55e035fc1fbea6b23aa26f523ade0c5a18f7..dae1c884f7064d02660b529a8a8a112d62fef7f8 100644 --- a/Cabal/tests/PackageTests/BuildDeps/InternalLibrary2/Check.hs +++ b/Cabal/tests/PackageTests/BuildDeps/InternalLibrary2/Check.hs @@ -3,11 +3,11 @@ module PackageTests.BuildDeps.InternalLibrary2.Check where import qualified Data.ByteString.Char8 as C import PackageTests.PackageTester import System.FilePath -import Test.HUnit +import Test.Tasty.HUnit -suite :: FilePath -> FilePath -> Test -suite ghcPath ghcPkgPath = TestCase $ do +suite :: FilePath -> FilePath -> Assertion +suite ghcPath ghcPkgPath = do let spec = PackageSpec { directory = "PackageTests" </> "BuildDeps" </> "InternalLibrary2" , configOpts = [] @@ -29,4 +29,3 @@ suite ghcPath ghcPkgPath = TestCase $ do (_, _, output) <- run (Just $ directory spec) (directory spec </> "dist" </> "build" </> "lemon" </> "lemon") [] [] C.appendFile (directory spec </> "test-log.txt") (C.pack $ "\ndist/build/lemon/lemon\n"++output) assertEqual "executable should have linked with the internal library" "myLibFunc internal" (concat $ lines output) - diff --git a/Cabal/tests/PackageTests/BuildDeps/InternalLibrary3/Check.hs b/Cabal/tests/PackageTests/BuildDeps/InternalLibrary3/Check.hs index 255bbd38f9d7238d05ae85aed9aef705d7e4eca3..d39160bc9ce5c9ed6d3d5d66b9498cf1284da5c2 100644 --- a/Cabal/tests/PackageTests/BuildDeps/InternalLibrary3/Check.hs +++ b/Cabal/tests/PackageTests/BuildDeps/InternalLibrary3/Check.hs @@ -3,11 +3,11 @@ module PackageTests.BuildDeps.InternalLibrary3.Check where import qualified Data.ByteString.Char8 as C import PackageTests.PackageTester import System.FilePath -import Test.HUnit +import Test.Tasty.HUnit -suite :: FilePath -> FilePath -> Test -suite ghcPath ghcPkgPath = TestCase $ do +suite :: FilePath -> FilePath -> Assertion +suite ghcPath ghcPkgPath = do let spec = PackageSpec { directory = "PackageTests" </> "BuildDeps" </> "InternalLibrary3" , configOpts = [] @@ -29,4 +29,3 @@ suite ghcPath ghcPkgPath = TestCase $ do (_, _, output) <- run (Just $ directory spec) (directory spec </> "dist" </> "build" </> "lemon" </> "lemon") [] [] C.appendFile (directory spec </> "test-log.txt") (C.pack $ "\ndist/build/lemon/lemon\n"++output) assertEqual "executable should have linked with the internal library" "myLibFunc internal" (concat $ lines output) - diff --git a/Cabal/tests/PackageTests/BuildDeps/InternalLibrary4/Check.hs b/Cabal/tests/PackageTests/BuildDeps/InternalLibrary4/Check.hs index 23cbc179314583940a4213d70d47893411417523..7a890e6a01d37fec80c40d2c715543da523ee037 100644 --- a/Cabal/tests/PackageTests/BuildDeps/InternalLibrary4/Check.hs +++ b/Cabal/tests/PackageTests/BuildDeps/InternalLibrary4/Check.hs @@ -3,11 +3,11 @@ module PackageTests.BuildDeps.InternalLibrary4.Check where import qualified Data.ByteString.Char8 as C import PackageTests.PackageTester import System.FilePath -import Test.HUnit +import Test.Tasty.HUnit -suite :: FilePath -> FilePath -> Test -suite ghcPath ghcPkgPath = TestCase $ do +suite :: FilePath -> FilePath -> Assertion +suite ghcPath ghcPkgPath = do let spec = PackageSpec { directory = "PackageTests" </> "BuildDeps" </> "InternalLibrary4" , configOpts = [] @@ -29,4 +29,3 @@ suite ghcPath ghcPkgPath = TestCase $ do (_, _, output) <- run (Just $ directory spec) (directory spec </> "dist" </> "build" </> "lemon" </> "lemon") [] [] C.appendFile (directory spec </> "test-log.txt") (C.pack $ "\ndist/build/lemon/lemon\n"++output) assertEqual "executable should have linked with the installed library" "myLibFunc installed" (concat $ lines output) - diff --git a/Cabal/tests/PackageTests/BuildDeps/SameDepsAllRound/Check.hs b/Cabal/tests/PackageTests/BuildDeps/SameDepsAllRound/Check.hs index 8ee7e46bd56a94dfb32e2de4e8ce4ed698975ceb..adc3cdf647546026250651a315564820c0874690 100644 --- a/Cabal/tests/PackageTests/BuildDeps/SameDepsAllRound/Check.hs +++ b/Cabal/tests/PackageTests/BuildDeps/SameDepsAllRound/Check.hs @@ -1,13 +1,13 @@ module PackageTests.BuildDeps.SameDepsAllRound.Check where -import Test.HUnit +import Test.Tasty.HUnit import PackageTests.PackageTester import System.FilePath import qualified Control.Exception as E -suite :: FilePath -> Test -suite ghcPath = TestCase $ do +suite :: FilePath -> Assertion +suite ghcPath = do let spec = PackageSpec { directory = "PackageTests" </> "BuildDeps" </> "SameDepsAllRound" , configOpts = [] diff --git a/Cabal/tests/PackageTests/BuildDeps/TargetSpecificDeps1/Check.hs b/Cabal/tests/PackageTests/BuildDeps/TargetSpecificDeps1/Check.hs index 22ade2e7f01806833b9c34d6a9e7f2f610071c5a..454cdd37ac08365430223aae696e9ce4c3359497 100644 --- a/Cabal/tests/PackageTests/BuildDeps/TargetSpecificDeps1/Check.hs +++ b/Cabal/tests/PackageTests/BuildDeps/TargetSpecificDeps1/Check.hs @@ -1,6 +1,6 @@ module PackageTests.BuildDeps.TargetSpecificDeps1.Check where -import Test.HUnit +import Test.Tasty.HUnit import PackageTests.PackageTester import System.FilePath import Data.List @@ -8,8 +8,8 @@ import qualified Control.Exception as E import Text.Regex.Posix -suite :: FilePath -> Test -suite ghcPath = TestCase $ do +suite :: FilePath -> Assertion +suite ghcPath = do let spec = PackageSpec { directory = "PackageTests" </> "BuildDeps" </> "TargetSpecificDeps1" , configOpts = [] diff --git a/Cabal/tests/PackageTests/BuildDeps/TargetSpecificDeps2/Check.hs b/Cabal/tests/PackageTests/BuildDeps/TargetSpecificDeps2/Check.hs index f8dbe8ba2e1ab512b608c59756d27b7f6d0ce304..c6adc1f5b9c4140400895632a0380615e06fec7c 100644 --- a/Cabal/tests/PackageTests/BuildDeps/TargetSpecificDeps2/Check.hs +++ b/Cabal/tests/PackageTests/BuildDeps/TargetSpecificDeps2/Check.hs @@ -1,13 +1,13 @@ module PackageTests.BuildDeps.TargetSpecificDeps2.Check where -import Test.HUnit +import Test.Tasty.HUnit import PackageTests.PackageTester import System.FilePath import qualified Control.Exception as E -suite :: FilePath -> Test -suite ghcPath = TestCase $ do +suite :: FilePath -> Assertion +suite ghcPath = do let spec = PackageSpec { directory = "PackageTests" </> "BuildDeps" </> "TargetSpecificDeps2" , configOpts = [] diff --git a/Cabal/tests/PackageTests/BuildDeps/TargetSpecificDeps3/Check.hs b/Cabal/tests/PackageTests/BuildDeps/TargetSpecificDeps3/Check.hs index c8881433bfb3619ff56e3941b2d8c05e05dc594c..6b4b91dd4c029ac34f84eb658172eb3abfa372a4 100644 --- a/Cabal/tests/PackageTests/BuildDeps/TargetSpecificDeps3/Check.hs +++ b/Cabal/tests/PackageTests/BuildDeps/TargetSpecificDeps3/Check.hs @@ -1,6 +1,6 @@ module PackageTests.BuildDeps.TargetSpecificDeps3.Check where -import Test.HUnit +import Test.Tasty.HUnit import PackageTests.PackageTester import System.FilePath import Data.List @@ -8,8 +8,8 @@ import qualified Control.Exception as E import Text.Regex.Posix -suite :: FilePath -> Test -suite ghcPath = TestCase $ do +suite :: FilePath -> Assertion +suite ghcPath = do let spec = PackageSpec { directory = "PackageTests" </> "BuildDeps" </> "TargetSpecificDeps3" , configOpts = [] diff --git a/Cabal/tests/PackageTests/BuildTestSuiteDetailedV09/Check.hs b/Cabal/tests/PackageTests/BuildTestSuiteDetailedV09/Check.hs index 484a5ea60170eac45371217737c29b2b341224dd..d7a75b20c43515dd1ce60e0582b9b865f1d38fe6 100644 --- a/Cabal/tests/PackageTests/BuildTestSuiteDetailedV09/Check.hs +++ b/Cabal/tests/PackageTests/BuildTestSuiteDetailedV09/Check.hs @@ -1,12 +1,12 @@ module PackageTests.BuildTestSuiteDetailedV09.Check where -import Test.HUnit +import Test.Tasty.HUnit import System.FilePath ((</>)) import PackageTests.PackageTester -suite :: PackageSpec -> FilePath -> Test -suite inplaceSpec ghcPath = TestCase $ do +suite :: PackageSpec -> FilePath -> Assertion +suite inplaceSpec ghcPath = do let dir = "PackageTests" </> "BuildTestSuiteDetailedV09" spec = inplaceSpec { directory = dir diff --git a/Cabal/tests/PackageTests/CMain/Check.hs b/Cabal/tests/PackageTests/CMain/Check.hs index 44fe4ae2f1abe234b06eac4125eb41dd06d3f0df..4f3c0d95da2dbcf8100e57371f8074af99d182cb 100644 --- a/Cabal/tests/PackageTests/CMain/Check.hs +++ b/Cabal/tests/PackageTests/CMain/Check.hs @@ -2,15 +2,15 @@ module PackageTests.CMain.Check ( checkBuild ) where -import Test.HUnit +import Test.Tasty.HUnit import System.FilePath import PackageTests.PackageTester dir :: FilePath dir = "PackageTests" </> "CMain" -checkBuild :: FilePath -> Test -checkBuild ghcPath = TestCase $ do +checkBuild :: FilePath -> Assertion +checkBuild ghcPath = do let spec = PackageSpec { directory = dir , distPref = Nothing diff --git a/Cabal/tests/PackageTests/DeterministicAr/Check.hs b/Cabal/tests/PackageTests/DeterministicAr/Check.hs index 8f35a56a735725e71e214f3fbcfbec0ba0177e3f..df231836f327fe1ddd05cb0112b0de260e9b5282 100644 --- a/Cabal/tests/PackageTests/DeterministicAr/Check.hs +++ b/Cabal/tests/PackageTests/DeterministicAr/Check.hs @@ -15,7 +15,7 @@ import PackageTests.PackageTester import System.Exit import System.FilePath import System.IO -import Test.HUnit (Assertion, Test (TestCase), assertFailure) +import Test.Tasty.HUnit (Assertion, assertFailure) import Distribution.Compiler (CompilerFlavor(..), CompilerId(..)) import Distribution.Package (packageKeyHash) @@ -58,8 +58,8 @@ ghcPkg_field1 libraryName fieldName ghcPkgPath = do this :: String this = "DeterministicAr" -suite :: FilePath -> FilePath -> Test -suite ghcPath ghcPkgPath = TestCase $ do +suite :: FilePath -> FilePath -> Assertion +suite ghcPath ghcPkgPath = do let dir = "PackageTests" </> this let spec = PackageSpec { directory = dir diff --git a/Cabal/tests/PackageTests/EmptyLib/Check.hs b/Cabal/tests/PackageTests/EmptyLib/Check.hs index e4f182cc658708ded9b627acc930c0ec0050c019..68d35f17cbebc8f177c4e46f58cd9a351cf47e46 100644 --- a/Cabal/tests/PackageTests/EmptyLib/Check.hs +++ b/Cabal/tests/PackageTests/EmptyLib/Check.hs @@ -2,11 +2,11 @@ module PackageTests.EmptyLib.Check where import PackageTests.PackageTester import System.FilePath -import Test.HUnit +import Test.Tasty.HUnit -- See https://github.com/haskell/cabal/issues/1241 -emptyLib :: FilePath -> Test -emptyLib ghcPath = TestCase $ do +emptyLib :: FilePath -> Assertion +emptyLib ghcPath = do let spec = PackageSpec { directory = "PackageTests" </> "EmptyLib" </> "empty" , configOpts = [] diff --git a/Cabal/tests/PackageTests/Haddock/Check.hs b/Cabal/tests/PackageTests/Haddock/Check.hs index 7fc2f3afbc8cf6fd2134dffe3ed4a47d9ea79668..720ec35d3c559502e18089d52639fbd912e20bf6 100644 --- a/Cabal/tests/PackageTests/Haddock/Check.hs +++ b/Cabal/tests/PackageTests/Haddock/Check.hs @@ -5,7 +5,7 @@ import Data.List (isInfixOf) import System.FilePath ((</>)) import System.Directory (doesDirectoryExist, removeDirectoryRecursive) -import Test.HUnit (Assertion, Test (TestCase), assertFailure) +import Test.Tasty.HUnit (Assertion, assertFailure) import Distribution.Simple.Utils (withFileContents) import PackageTests.PackageTester @@ -14,8 +14,8 @@ import PackageTests.PackageTester this :: String this = "Haddock" -suite :: FilePath -> Test -suite ghcPath = TestCase $ do +suite :: FilePath -> Assertion +suite ghcPath = do let dir = "PackageTests" </> this haddocksDir = dir </> "dist" </> "doc" </> "html" </> "Haddock" spec = PackageSpec diff --git a/Cabal/tests/PackageTests/OrderFlags/Check.hs b/Cabal/tests/PackageTests/OrderFlags/Check.hs index ebda768242d33d5580d700e3efcd134f6279fcbd..fac126a116d4f876ff102b8a76a1369a2e1a6fc3 100644 --- a/Cabal/tests/PackageTests/OrderFlags/Check.hs +++ b/Cabal/tests/PackageTests/OrderFlags/Check.hs @@ -1,6 +1,6 @@ module PackageTests.OrderFlags.Check where -import Test.HUnit +import Test.Tasty.HUnit import PackageTests.PackageTester import System.FilePath import Control.Exception @@ -9,8 +9,8 @@ import Control.Exception import Prelude hiding (catch) #endif -suite :: FilePath -> Test -suite ghcPath = TestCase $ do +suite :: FilePath -> Assertion +suite ghcPath = do let spec = PackageSpec { directory = "PackageTests" </> "OrderFlags" , configOpts = [] diff --git a/Cabal/tests/PackageTests/PackageTester.hs b/Cabal/tests/PackageTests/PackageTester.hs index 10cf2380cc98d09cfaceb16a0d30957aa57ae80e..b2531893ab6290df94f742270af9765f5af90d39 100644 --- a/Cabal/tests/PackageTests/PackageTester.hs +++ b/Cabal/tests/PackageTests/PackageTester.hs @@ -41,7 +41,7 @@ import System.FilePath import System.IO (hIsEOF, hGetChar, hClose) import System.IO.Error (isDoesNotExistError) import System.Process (runProcess, waitForProcess) -import Test.HUnit (Assertion, assertFailure) +import Test.Tasty.HUnit (Assertion, assertFailure) import Distribution.Compat.CreatePipe (createPipe) import Distribution.Simple.BuildPaths (exeExtension) diff --git a/Cabal/tests/PackageTests/PathsModule/Executable/Check.hs b/Cabal/tests/PackageTests/PathsModule/Executable/Check.hs index f2a567a161a721ded4584b0f5e45bf901948b773..79f1362c0e6dc22dcf3d4177a5109ed45327fdb1 100644 --- a/Cabal/tests/PackageTests/PathsModule/Executable/Check.hs +++ b/Cabal/tests/PackageTests/PathsModule/Executable/Check.hs @@ -3,10 +3,10 @@ module PackageTests.PathsModule.Executable.Check (suite) where import PackageTests.PackageTester (PackageSpec(..), assertBuildSucceeded, cabal_build) import System.FilePath -import Test.HUnit +import Test.Tasty.HUnit -suite :: FilePath -> Test -suite ghcPath = TestCase $ do +suite :: FilePath -> Assertion +suite ghcPath = do let spec = PackageSpec { directory = "PackageTests" </> "PathsModule" </> "Executable" , distPref = Nothing diff --git a/Cabal/tests/PackageTests/PathsModule/Library/Check.hs b/Cabal/tests/PackageTests/PathsModule/Library/Check.hs index b3a4ebbf034ddfd2f88d27205e649e64501bcca2..1218b2478d4996e2c8f81176d0a8eeff1a4a5011 100644 --- a/Cabal/tests/PackageTests/PathsModule/Library/Check.hs +++ b/Cabal/tests/PackageTests/PathsModule/Library/Check.hs @@ -3,10 +3,10 @@ module PackageTests.PathsModule.Library.Check (suite) where import PackageTests.PackageTester (PackageSpec(..), assertBuildSucceeded, cabal_build) import System.FilePath -import Test.HUnit +import Test.Tasty.HUnit -suite :: FilePath -> Test -suite ghcPath = TestCase $ do +suite :: FilePath -> Assertion +suite ghcPath = do let spec = PackageSpec { directory = "PackageTests" </> "PathsModule" </> "Library" , distPref = Nothing diff --git a/Cabal/tests/PackageTests/PreProcess/Check.hs b/Cabal/tests/PackageTests/PreProcess/Check.hs index 7ee52d7d6b934735f6c284a9a0b8b014f9bb2081..97facb4b291cf1e6f0d35ac14c94737ad3a14a64 100644 --- a/Cabal/tests/PackageTests/PreProcess/Check.hs +++ b/Cabal/tests/PackageTests/PreProcess/Check.hs @@ -3,10 +3,10 @@ module PackageTests.PreProcess.Check (suite) where import PackageTests.PackageTester (PackageSpec(..), assertBuildSucceeded, cabal_build) import System.FilePath -import Test.HUnit +import Test.Tasty.HUnit -suite :: FilePath -> Test -suite ghcPath = TestCase $ do +suite :: FilePath -> Assertion +suite ghcPath = do let spec = PackageSpec { directory = "PackageTests" </> "PreProcess" , distPref = Nothing diff --git a/Cabal/tests/PackageTests/ReexportedModules/Check.hs b/Cabal/tests/PackageTests/ReexportedModules/Check.hs index 18487253c082be3b8298b7129ff335c4b25cbb68..c24cf4ff4df2419d310b09c4e5c8a8cafa76afd5 100644 --- a/Cabal/tests/PackageTests/ReexportedModules/Check.hs +++ b/Cabal/tests/PackageTests/ReexportedModules/Check.hs @@ -3,7 +3,7 @@ module PackageTests.ReexportedModules.Check where import Data.Version import PackageTests.PackageTester import System.FilePath -import Test.HUnit +import Test.Tasty.HUnit import Data.Maybe import Data.List import Control.Monad @@ -18,8 +18,8 @@ orFail err r = case find (all isSpace . snd) r of find' :: (a -> Bool) -> [a] -> Maybe a find' = find -suite :: FilePath -> Test -suite ghcPath = TestCase $ do +suite :: FilePath -> Assertion +suite ghcPath = do -- ToDo: Turn this into a utility function (_, _, xs) <- run Nothing ghcPath [] ["--info"] let compat = (>= Version [7,9] []) diff --git a/Cabal/tests/PackageTests/TemplateHaskell/Check.hs b/Cabal/tests/PackageTests/TemplateHaskell/Check.hs index 11d2c0e0aaa7a293c76b6ed25b8f9c06dbbe9c25..531d6157af52105f4aa22e10b9343e05e2d7eccd 100644 --- a/Cabal/tests/PackageTests/TemplateHaskell/Check.hs +++ b/Cabal/tests/PackageTests/TemplateHaskell/Check.hs @@ -2,10 +2,10 @@ module PackageTests.TemplateHaskell.Check where import PackageTests.PackageTester import System.FilePath -import Test.HUnit +import Test.Tasty.HUnit -vanilla :: FilePath -> Test -vanilla ghcPath = TestCase $ do +vanilla :: FilePath -> Assertion +vanilla ghcPath = do let spec = PackageSpec { directory = "PackageTests" </> "TemplateHaskell" </> "vanilla" , configOpts = [] @@ -14,8 +14,8 @@ vanilla ghcPath = TestCase $ do result <- cabal_build spec ghcPath assertBuildSucceeded result -profiling :: FilePath -> Test -profiling ghcPath = TestCase $ do +profiling :: FilePath -> Assertion +profiling ghcPath = do let flags = ["--enable-library-profiling" -- ,"--disable-library-vanilla" ,"--enable-profiling"] @@ -27,8 +27,8 @@ profiling ghcPath = TestCase $ do result <- cabal_build spec ghcPath assertBuildSucceeded result -dynamic :: FilePath -> Test -dynamic ghcPath = TestCase $ do +dynamic :: FilePath -> Assertion +dynamic ghcPath = do let flags = ["--enable-shared" -- ,"--disable-library-vanilla" ,"--enable-executable-dynamic"] diff --git a/Cabal/tests/PackageTests/TestOptions/Check.hs b/Cabal/tests/PackageTests/TestOptions/Check.hs index 4731d36de66b7d0b7f1475f867961ca9d1df182e..d3a27214706a327bdb113e535714645e2148d1aa 100644 --- a/Cabal/tests/PackageTests/TestOptions/Check.hs +++ b/Cabal/tests/PackageTests/TestOptions/Check.hs @@ -2,10 +2,10 @@ module PackageTests.TestOptions.Check where import PackageTests.PackageTester import System.FilePath -import Test.HUnit +import Test.Tasty.HUnit -suite :: FilePath -> Test -suite ghcPath = TestCase $ do +suite :: FilePath -> Assertion +suite ghcPath = do let spec = PackageSpec { directory = "PackageTests" </> "TestOptions" , configOpts = ["--enable-tests"] diff --git a/Cabal/tests/PackageTests/TestStanza/Check.hs b/Cabal/tests/PackageTests/TestStanza/Check.hs index 940cbcebad41d23fd78bd34ce6b4ca71f449e24a..e7877de1ffa0fa791e2b575d86bfc84c3b8236b0 100644 --- a/Cabal/tests/PackageTests/TestStanza/Check.hs +++ b/Cabal/tests/PackageTests/TestStanza/Check.hs @@ -1,6 +1,6 @@ module PackageTests.TestStanza.Check where -import Test.HUnit +import Test.Tasty.HUnit import System.FilePath import qualified Data.Map as Map import PackageTests.PackageTester @@ -19,8 +19,8 @@ import Distribution.Compiler ( CompilerId(..), CompilerFlavor(..), unknownCompilerInfo, AbiTag(..) ) import Distribution.Text -suite :: FilePath -> Test -suite ghcPath = TestCase $ do +suite :: FilePath -> Assertion +suite ghcPath = do let dir = "PackageTests" </> "TestStanza" pdFile = dir </> "my" <.> "cabal" spec = PackageSpec diff --git a/Cabal/tests/PackageTests/TestSuiteExeV10/Check.hs b/Cabal/tests/PackageTests/TestSuiteExeV10/Check.hs index ab5b4f709c559a987a2ef0057e77799712d5d8f1..40fcfe9a09b7766cd705191d1e7367466f09cf9f 100644 --- a/Cabal/tests/PackageTests/TestSuiteExeV10/Check.hs +++ b/Cabal/tests/PackageTests/TestSuiteExeV10/Check.hs @@ -5,10 +5,8 @@ import Control.Monad (when) import Data.Maybe (catMaybes) import System.Directory ( doesFileExist ) import System.FilePath -import qualified Test.Framework as TF -import Test.Framework (testGroup) -import Test.Framework.Providers.HUnit (hUnitTestToTests) -import Test.HUnit hiding ( path ) +import Test.Tasty +import Test.Tasty.HUnit import Distribution.Compiler (CompilerFlavor(..), CompilerId(..)) import Distribution.PackageDescription (package) @@ -25,15 +23,15 @@ import Distribution.Version (Version(..), orLaterVersion) import PackageTests.PackageTester -checks :: FilePath -> [TF.Test] +checks :: FilePath -> [TestTree] checks ghcPath = - [ hunit "Test" $ checkTest ghcPath ] + [ testCase "Test" $ checkTest ghcPath ] ++ hpcTestMatrix ghcPath ++ - [ hunit "TestNoHpc/NoTix" $ checkTestNoHpcNoTix ghcPath - , hunit "TestNoHpc/NoMarkup" $ checkTestNoHpcNoMarkup ghcPath + [ testCase "TestNoHpc/NoTix" $ checkTestNoHpcNoTix ghcPath + , testCase "TestNoHpc/NoMarkup" $ checkTestNoHpcNoMarkup ghcPath ] -hpcTestMatrix :: FilePath -> [TF.Test] +hpcTestMatrix :: FilePath -> [TestTree] hpcTestMatrix ghcPath = do libProf <- [True, False] exeProf <- [True, False] @@ -55,13 +53,13 @@ hpcTestMatrix ghcPath = do , enable exeDyn "executable-dynamic" , enable shared "shared" ] - return $ hunit name $ checkTestWithHpc ghcPath name opts + return $ testCase name $ checkTestWithHpc ghcPath name opts dir :: FilePath dir = "PackageTests" </> "TestSuiteExeV10" -checkTest :: FilePath -> Test -checkTest ghcPath = TestCase $ buildAndTest ghcPath "Default" [] [] +checkTest :: FilePath -> Assertion +checkTest ghcPath = buildAndTest ghcPath "Default" [] [] shouldExist :: FilePath -> Assertion shouldExist path = doesFileExist path >>= assertBool (path ++ " should exist") @@ -71,8 +69,8 @@ shouldNotExist path = doesFileExist path >>= assertBool (path ++ " should exist") . not -- | Ensure that both .tix file and markup are generated if coverage is enabled. -checkTestWithHpc :: FilePath -> String -> [String] -> Test -checkTestWithHpc ghcPath name extraOpts = TestCase $ do +checkTestWithHpc :: FilePath -> String -> [String] -> Assertion +checkTestWithHpc ghcPath name extraOpts = do isCorrectVersion <- correctHpcVersion when isCorrectVersion $ do let distPref' = dir </> "dist-" ++ name @@ -92,8 +90,8 @@ checkTestWithHpc ghcPath name extraOpts = TestCase $ do ] -- | Ensures that even if -fhpc is manually provided no .tix file is output. -checkTestNoHpcNoTix :: FilePath -> Test -checkTestNoHpcNoTix ghcPath = TestCase $ do +checkTestNoHpcNoTix :: FilePath -> Assertion +checkTestNoHpcNoTix ghcPath = do buildAndTest ghcPath "NoHpcNoTix" [] [ "--ghc-option=-fhpc" , "--ghc-option=-hpcdir" @@ -104,8 +102,8 @@ checkTestNoHpcNoTix ghcPath = TestCase $ do -- | Ensures that even if a .tix file happens to be left around -- markup isn't generated. -checkTestNoHpcNoMarkup :: FilePath -> Test -checkTestNoHpcNoMarkup ghcPath = TestCase $ do +checkTestNoHpcNoMarkup :: FilePath -> Assertion +checkTestNoHpcNoMarkup ghcPath = do let tixFile = tixFilePath "dist-NoHpcNoMarkup" Vanilla "test-Foo" buildAndTest ghcPath "NoHpcNoMarkup" [("HPCTIXFILE", Just tixFile)] @@ -129,9 +127,6 @@ buildAndTest ghcPath name envOverrides flags = do testResult <- cabal_test spec envOverrides [] ghcPath assertTestSucceeded testResult -hunit :: TF.TestName -> Test -> TF.Test -hunit name = testGroup name . hUnitTestToTests - -- | Checks for a suitable HPC version for testing. correctHpcVersion :: IO Bool correctHpcVersion = do diff --git a/Cabal/tests/UnitTests.hs b/Cabal/tests/UnitTests.hs index ef99dd239e281bc8ffc0771606de99376b4c9966..fe78268b79d99991394642dcb7c829db478916f2 100644 --- a/Cabal/tests/UnitTests.hs +++ b/Cabal/tests/UnitTests.hs @@ -2,15 +2,14 @@ module Main ( main ) where -import System.IO (BufferMode(NoBuffering), hSetBuffering, stdout) -import Test.Framework +import Test.Tasty import qualified UnitTests.Distribution.Compat.CreatePipe import qualified UnitTests.Distribution.Compat.ReadP import qualified UnitTests.Distribution.Utils.NubList -tests :: [Test] -tests = +tests :: TestTree +tests = testGroup "Unit Tests" $ [ testGroup "Distribution.Compat.ReadP" UnitTests.Distribution.Compat.ReadP.tests , testGroup "Distribution.Compat.CreatePipe" @@ -20,8 +19,4 @@ tests = ] main :: IO () -main = do - -- WORKAROUND: disable buffering on stdout to get streaming test logs - -- test providers _should_ do this themselves - hSetBuffering stdout NoBuffering - defaultMain tests +main = defaultMain tests diff --git a/Cabal/tests/UnitTests/Distribution/Compat/CreatePipe.hs b/Cabal/tests/UnitTests/Distribution/Compat/CreatePipe.hs index a9f8db5cf3032218839ecc7d0a382e2c955de376..621670a88ffccdb1a474cc30dee2d5f100c7604e 100644 --- a/Cabal/tests/UnitTests/Distribution/Compat/CreatePipe.hs +++ b/Cabal/tests/UnitTests/Distribution/Compat/CreatePipe.hs @@ -2,11 +2,10 @@ module UnitTests.Distribution.Compat.CreatePipe (tests) where import Distribution.Compat.CreatePipe import System.IO (hClose, hGetContents, hPutStr, hSetEncoding, localeEncoding) -import Test.Framework -import Test.Framework.Providers.HUnit -import Test.HUnit hiding (Test) +import Test.Tasty +import Test.Tasty.HUnit -tests :: [Test] +tests :: [TestTree] tests = [testCase "Locale Encoding" case_Locale_Encoding] case_Locale_Encoding :: Assertion diff --git a/Cabal/tests/UnitTests/Distribution/Compat/ReadP.hs b/Cabal/tests/UnitTests/Distribution/Compat/ReadP.hs index 0998edf919b2fa0dd9a0a4c7b71cc38add47de0a..6fefc3a4012c1b4c90e317aceac6e2f680e30b60 100644 --- a/Cabal/tests/UnitTests/Distribution/Compat/ReadP.hs +++ b/Cabal/tests/UnitTests/Distribution/Compat/ReadP.hs @@ -20,10 +20,10 @@ module UnitTests.Distribution.Compat.ReadP import Data.List import Distribution.Compat.ReadP -import Test.Framework -import Test.Framework.Providers.QuickCheck2 +import Test.Tasty +import Test.Tasty.QuickCheck -tests :: [Test] +tests :: [TestTree] tests = [ testProperty "Get Nil" prop_Get_Nil , testProperty "Get Cons" prop_Get_Cons diff --git a/Cabal/tests/UnitTests/Distribution/Utils/NubList.hs b/Cabal/tests/UnitTests/Distribution/Utils/NubList.hs index b0093cec75b224544d12c86ee882f06a729d54ad..fc3c3b5ec17887b5ef6b7a1c492b5aaa96588ba5 100644 --- a/Cabal/tests/UnitTests/Distribution/Utils/NubList.hs +++ b/Cabal/tests/UnitTests/Distribution/Utils/NubList.hs @@ -7,12 +7,11 @@ module UnitTests.Distribution.Utils.NubList import Data.Monoid #endif import Distribution.Utils.NubList -import Test.Framework -import Test.Framework.Providers.HUnit (testCase) -import Test.Framework.Providers.QuickCheck2 -import Test.HUnit (Assertion, assertBool) +import Test.Tasty +import Test.Tasty.HUnit +import Test.Tasty.QuickCheck -tests :: [Test] +tests :: [TestTree] tests = [ testCase "Numlist retains ordering" testOrdering , testCase "Numlist removes duplicates" testDeDupe diff --git a/cabal-install/cabal-install.cabal b/cabal-install/cabal-install.cabal index d54ae0e26a828f5078329aa963d7e4dec6781836..865ad15992770bc09c923c01ac5dae917f7315e3 100644 --- a/cabal-install/cabal-install.cabal +++ b/cabal-install/cabal-install.cabal @@ -197,10 +197,9 @@ Test-Suite unit-tests HTTP, zlib, - test-framework, - test-framework-hunit, - test-framework-quickcheck2 >= 0.3, - HUnit, + tasty, + tasty-hunit, + tasty-quickcheck, QuickCheck >= 2.5 if flag(old-directory) @@ -235,8 +234,7 @@ test-suite package-tests PackageTests.PackageTester build-depends: Cabal, - HUnit, - QuickCheck >= 2.1.0.1 && < 2.8, + QuickCheck >= 2.1.0.1 && < 2.9, base, bytestring, directory, @@ -244,9 +242,9 @@ test-suite package-tests filepath, process, regex-posix, - test-framework, - test-framework-hunit, - test-framework-quickcheck2 >= 0.2.12 + tasty, + tasty-hunit, + tasty-quickcheck if os(windows) build-depends: Win32 >= 2 && < 3 diff --git a/cabal-install/tests/PackageTests.hs b/cabal-install/tests/PackageTests.hs index d4a1c837e6b2c07cb234a11140de4c5973c58c65..f4d10ef0cf9f3d4f68f9bf1c48f5314623654583 100644 --- a/cabal-install/tests/PackageTests.hs +++ b/cabal-install/tests/PackageTests.hs @@ -23,7 +23,7 @@ import System.Directory ( canonicalizePath, getCurrentDirectory, setCurrentDirectory , removeFile, doesFileExist ) import System.FilePath ((</>)) -import Test.Framework (Test, defaultMain, testGroup) +import Test.Tasty (TestTree, defaultMain, testGroup) import Control.Monad ( when ) -- Module containing common test code. @@ -39,8 +39,8 @@ import qualified PackageTests.MultipleSource.Check -- List of tests to run. Each test will be called with the path to the -- cabal binary to use. -tests :: PackageTests.PackageTester.TestsPaths -> [Test] -tests paths = +tests :: PackageTests.PackageTester.TestsPaths -> TestTree +tests paths = testGroup "Package Tests" $ [ testGroup "Freeze" $ PackageTests.Freeze.Check.tests paths , testGroup "Exec" $ PackageTests.Exec.Check.tests paths , testGroup "MultipleSource" $ PackageTests.MultipleSource.Check.tests paths diff --git a/cabal-install/tests/PackageTests/Exec/Check.hs b/cabal-install/tests/PackageTests/Exec/Check.hs index 4e01272013fb7d4e4ce9b45d75f53fc290e05d1d..2e811540ba41df58d714c66d0f149a20f7f47041 100644 --- a/cabal-install/tests/PackageTests/Exec/Check.hs +++ b/cabal-install/tests/PackageTests/Exec/Check.hs @@ -6,9 +6,8 @@ module PackageTests.Exec.Check import PackageTests.PackageTester -import Test.Framework as TF (Test) -import Test.Framework.Providers.HUnit (testCase) -import Test.HUnit (assertBool) +import Test.Tasty +import Test.Tasty.HUnit #if !MIN_VERSION_base(4,8,0) import Control.Applicative ((<$>)) @@ -21,7 +20,7 @@ import System.Directory (getDirectoryContents) dir :: FilePath dir = packageTestsDirectory </> "Exec" -tests :: TestsPaths -> [TF.Test] +tests :: TestsPaths -> [TestTree] tests paths = [ testCase "exits with failure if given no argument" $ do result <- cabal_exec paths dir [] diff --git a/cabal-install/tests/PackageTests/Freeze/Check.hs b/cabal-install/tests/PackageTests/Freeze/Check.hs index bfcbea8f15df49e70973550e7f01f1877670cfa4..00c87f361926f1d63d16c9aa8a59f4aa9abb6443 100644 --- a/cabal-install/tests/PackageTests/Freeze/Check.hs +++ b/cabal-install/tests/PackageTests/Freeze/Check.hs @@ -6,9 +6,8 @@ module PackageTests.Freeze.Check import PackageTests.PackageTester -import Test.Framework as TF (Test) -import Test.Framework.Providers.HUnit (testCase) -import Test.HUnit (assertBool) +import Test.Tasty +import Test.Tasty.HUnit import qualified Control.Exception.Extensible as E import Data.List (intercalate, isInfixOf) @@ -19,7 +18,7 @@ import System.IO.Error (isDoesNotExistError) dir :: FilePath dir = packageTestsDirectory </> "Freeze" -tests :: TestsPaths -> [TF.Test] +tests :: TestsPaths -> [TestTree] tests paths = [ testCase "runs without error" $ do removeCabalConfig diff --git a/cabal-install/tests/PackageTests/MultipleSource/Check.hs b/cabal-install/tests/PackageTests/MultipleSource/Check.hs index b9ba2189ab40a72c496e5a94433e09b714087405..0fe6361299fb7780725b54b2aa2bc5082cca16d4 100644 --- a/cabal-install/tests/PackageTests/MultipleSource/Check.hs +++ b/cabal-install/tests/PackageTests/MultipleSource/Check.hs @@ -5,8 +5,8 @@ module PackageTests.MultipleSource.Check import PackageTests.PackageTester -import Test.Framework as TF (Test) -import Test.Framework.Providers.HUnit (testCase) +import Test.Tasty +import Test.Tasty.HUnit import Control.Monad (void, when) import System.Directory (doesDirectoryExist) @@ -15,7 +15,7 @@ import System.FilePath ((</>)) dir :: FilePath dir = packageTestsDirectory </> "MultipleSource" -tests :: TestsPaths -> [TF.Test] +tests :: TestsPaths -> [TestTree] tests paths = [ testCase "finds second source of multiple source" $ do sandboxExists <- doesDirectoryExist $ dir </> ".cabal-sandbox" diff --git a/cabal-install/tests/PackageTests/PackageTester.hs b/cabal-install/tests/PackageTests/PackageTester.hs index eb29499b3452563f11608936d6f53bd056debde5..2068099b6d58c415dd0d76dedf572719008424aa 100644 --- a/cabal-install/tests/PackageTests/PackageTester.hs +++ b/cabal-install/tests/PackageTests/PackageTester.hs @@ -50,7 +50,7 @@ import System.FilePath ( (<.>) ) import System.IO (hClose, hGetChar, hIsEOF) import System.IO.Error (isDoesNotExistError) import System.Process (runProcess, waitForProcess) -import Test.HUnit (Assertion, assertFailure) +import Test.Tasty.HUnit (Assertion, assertFailure) import Distribution.Simple.BuildPaths (exeExtension) import Distribution.Simple.Utils (printRawCommandAndArgs) diff --git a/cabal-install/tests/UnitTests.hs b/cabal-install/tests/UnitTests.hs index a0d47d518b797e912dcd026aed949b84bf7688dc..f457d266d4f4928b23b6d99082ada062be872b87 100644 --- a/cabal-install/tests/UnitTests.hs +++ b/cabal-install/tests/UnitTests.hs @@ -1,15 +1,15 @@ module Main where -import Test.Framework +import Test.Tasty import qualified UnitTests.Distribution.Client.Sandbox import qualified UnitTests.Distribution.Client.UserConfig import qualified UnitTests.Distribution.Client.Targets import qualified UnitTests.Distribution.Client.Dependency.Modular.PSQ -tests :: [Test] -tests = [ +tests :: TestTree +tests = testGroup "Unit Tests" [ testGroup "UnitTests.Distribution.Client.UserConfig" UnitTests.Distribution.Client.UserConfig.tests ,testGroup "Distribution.Client.Sandbox" diff --git a/cabal-install/tests/UnitTests/Distribution/Client/Dependency/Modular/PSQ.hs b/cabal-install/tests/UnitTests/Distribution/Client/Dependency/Modular/PSQ.hs index c3dc72eac114828fc1e8441d5e03d6c13f83ffee..b24e028a2d1e09f4bd8f1f266923443c1a7d2a66 100644 --- a/cabal-install/tests/UnitTests/Distribution/Client/Dependency/Modular/PSQ.hs +++ b/cabal-install/tests/UnitTests/Distribution/Client/Dependency/Modular/PSQ.hs @@ -4,10 +4,10 @@ module UnitTests.Distribution.Client.Dependency.Modular.PSQ ( import Distribution.Client.Dependency.Modular.PSQ -import Test.Framework as TF (Test) -import Test.Framework.Providers.QuickCheck2 +import Test.Tasty +import Test.Tasty.QuickCheck -tests :: [TF.Test] +tests :: [TestTree] tests = [ testProperty "splitsAltImplementation" splitsTest ] diff --git a/cabal-install/tests/UnitTests/Distribution/Client/Sandbox.hs b/cabal-install/tests/UnitTests/Distribution/Client/Sandbox.hs index 059e6e1e710ca63775d6eb2707095f7120b4f2d8..3bf2d28e114d6d21817da287a846533c6a5d64ca 100644 --- a/cabal-install/tests/UnitTests/Distribution/Client/Sandbox.hs +++ b/cabal-install/tests/UnitTests/Distribution/Client/Sandbox.hs @@ -2,15 +2,14 @@ module UnitTests.Distribution.Client.Sandbox ( tests ) where -import Distribution.Client.Sandbox (withSandboxBinDirOnSearchPath) +import Distribution.Client.Sandbox (withSandboxBinDirOnSearchPath) -import Test.Framework as TF (Test) -import Test.Framework.Providers.HUnit (testCase) -import Test.HUnit (Assertion, assertBool, assertEqual) +import Test.Tasty +import Test.Tasty.HUnit -import System.FilePath (getSearchPath, (</>)) +import System.FilePath (getSearchPath, (</>)) -tests :: [TF.Test] +tests :: [TestTree] tests = [ testCase "sandboxBinDirOnSearchPath" sandboxBinDirOnSearchPathTest , testCase "oldSearchPathRestored" oldSearchPathRestoreTest ] diff --git a/cabal-install/tests/UnitTests/Distribution/Client/Targets.hs b/cabal-install/tests/UnitTests/Distribution/Client/Targets.hs index e641c50a4200c6cd71b007a22cfde6ef70bad6c2..8e42e5add7e60f8a6489a72ae30b79fbf4e388b8 100644 --- a/cabal-install/tests/UnitTests/Distribution/Client/Targets.hs +++ b/cabal-install/tests/UnitTests/Distribution/Client/Targets.hs @@ -8,13 +8,12 @@ import Distribution.Package (PackageName (..)) import Distribution.ParseUtils (parseCommaList) import Distribution.Text (parse) -import Test.Framework as TF (Test) -import Test.Framework.Providers.HUnit (testCase) -import Test.HUnit (Assertion, assertEqual) +import Test.Tasty +import Test.Tasty.HUnit import Data.Char (isSpace) -tests :: [TF.Test] +tests :: [TestTree] tests = [ testCase "readUserConstraint" readUserConstraintTest , testCase "parseUserConstraint" parseUserConstraintTest , testCase "readUserConstraints" readUserConstraintsTest diff --git a/cabal-install/tests/UnitTests/Distribution/Client/UserConfig.hs b/cabal-install/tests/UnitTests/Distribution/Client/UserConfig.hs index 286172c40ef6bfa3471b20a985b28956bee1095c..8df77576c0eebdc91d51b90e7def7dc2e08816f8 100644 --- a/cabal-install/tests/UnitTests/Distribution/Client/UserConfig.hs +++ b/cabal-install/tests/UnitTests/Distribution/Client/UserConfig.hs @@ -11,9 +11,8 @@ import Data.Monoid import System.Directory (getCurrentDirectory, removeDirectoryRecursive, createDirectoryIfMissing) import System.FilePath (takeDirectory) -import Test.Framework as TF (Test) -import Test.Framework.Providers.HUnit (testCase) -import Test.HUnit (Assertion, assertBool) +import Test.Tasty +import Test.Tasty.HUnit import Distribution.Client.Compat.Environment (lookupEnv, setEnv) import Distribution.Client.Config @@ -22,7 +21,7 @@ import Distribution.Client.Setup (GlobalFlags (..), InstallFlags (..)) import Distribution.Simple.Setup (ConfigFlags (..), fromFlag) import Distribution.Verbosity (silent) -tests :: [TF.Test] +tests :: [TestTree] tests = [ testCase "nullDiffOnCreate" nullDiffOnCreateTest , testCase "canDetectDifference" canDetectDifference , testCase "canUpdateConfig" canUpdateConfig