[commit: Cabal] master: Add unit test for benchmark section (cc248fc)
Ian Lynagh
igloo at earth.li
Fri Oct 14 23:20:36 CEST 2011
Repository : ssh://darcs.haskell.org//srv/darcs/packages/Cabal
On branch : master
http://hackage.haskell.org/trac/ghc/changeset/cc248fc0c266992a733cc29b90e774db53da7a7d
>---------------------------------------------------------------
commit cc248fc0c266992a733cc29b90e774db53da7a7d
Author: Johan Tibell <johan.tibell at gmail.com>
Date: Tue Oct 11 19:58:47 2011 +0000
Add unit test for benchmark section
>---------------------------------------------------------------
cabal/Cabal.cabal | 1 +
.../{TestStanza => BenchmarkStanza}/Check.hs | 28 ++++++++++----------
.../Setup.hs | 0
.../{TestStanza => BenchmarkStanza}/my.cabal | 8 +++---
cabal/tests/suite.hs | 6 +++-
5 files changed, 24 insertions(+), 19 deletions(-)
diff --git a/cabal/Cabal.cabal b/cabal/Cabal.cabal
index c711ff9..e18b4b0 100644
--- a/cabal/Cabal.cabal
+++ b/cabal/Cabal.cabal
@@ -147,6 +147,7 @@ test-suite unit-tests
PackageTests.TestOptions.Check,
PackageTests.TestStanza.Check,
PackageTests.TestSuiteExeV10.Check,
+ PackageTests.BenchmarkStanza.Check,
PackageTests.PackageTester
hs-source-dirs: tests
build-depends:
diff --git a/cabal/tests/PackageTests/TestStanza/Check.hs b/cabal/tests/PackageTests/BenchmarkStanza/Check.hs
similarity index 69%
copy from cabal/tests/PackageTests/TestStanza/Check.hs
copy to cabal/tests/PackageTests/BenchmarkStanza/Check.hs
index 2db93cd..3f83002 100644
--- a/cabal/tests/PackageTests/TestStanza/Check.hs
+++ b/cabal/tests/PackageTests/BenchmarkStanza/Check.hs
@@ -1,4 +1,4 @@
-module PackageTests.TestStanza.Check where
+module PackageTests.BenchmarkStanza.Check where
import Test.HUnit
import System.FilePath
@@ -12,10 +12,10 @@ import Distribution.PackageDescription.Configuration
import Distribution.Package
( PackageIdentifier(..), PackageName(..), Dependency(..) )
import Distribution.PackageDescription
- ( PackageDescription(..), BuildInfo(..), TestSuite(..), Library(..)
- , TestSuiteInterface(..)
+ ( PackageDescription(..), BuildInfo(..), Benchmark(..), Library(..)
+ , BenchmarkInterface(..)
, TestType(..), emptyPackageDescription, emptyBuildInfo, emptyLibrary
- , emptyTestSuite, BuildType(..) )
+ , emptyBenchmark, BuildType(..) )
import Distribution.Verbosity (silent)
import Distribution.License (License(..))
import Distribution.ModuleName (fromString)
@@ -26,11 +26,11 @@ import Distribution.Text
suite :: Version -> Test
suite cabalVersion = TestCase $ do
- let directory = "PackageTests" </> "TestStanza"
+ let directory = "PackageTests" </> "BenchmarkStanza"
pdFile = directory </> "my" <.> "cabal"
spec = PackageSpec directory []
result <- cabal_configure spec
- let message = "cabal configure should recognize test section"
+ let message = "cabal configure should recognize benchmark section"
test = "unknown section type"
`isInfixOf`
(intercalate " " $ lines $ outputText result)
@@ -38,20 +38,20 @@ suite cabalVersion = TestCase $ do
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"
- , testBuildInfo = emptyBuildInfo
+ anticipatedBenchmark = emptyBenchmark
+ { benchmarkName = "dummy"
+ , benchmarkInterface = BenchmarkExeV10 (Version [1,0] []) "dummy.hs"
+ , benchmarkBuildInfo = emptyBuildInfo
{ targetBuildDepends =
[ Dependency (PackageName "base") anyVersion ]
, hsSourceDirs = ["."]
}
- , testEnabled = False
+ , benchmarkEnabled = False
}
case finalizePackageDescription [] (const True) buildPlatform compiler [] genPD of
Left xs -> let depMessage = "should not have missing dependencies:\n" ++
(unlines $ map (show . disp) xs)
in assertEqual depMessage True False
- Right (f, _) -> let gotTest = head $ testSuites f
- in assertEqual "parsed test-suite stanza does not match anticipated"
- gotTest anticipatedTestSuite
+ Right (f, _) -> let gotBenchmark = head $ benchmarks f
+ in assertEqual "parsed benchmark stanza does not match anticipated"
+ gotBenchmark anticipatedBenchmark
diff --git a/cabal/tests/PackageTests/BuildDeps/GlobalBuildDepsNotAdditive1/Setup.hs b/cabal/tests/PackageTests/BenchmarkStanza/Setup.hs
similarity index 100%
copy from cabal/tests/PackageTests/BuildDeps/GlobalBuildDepsNotAdditive1/Setup.hs
copy to cabal/tests/PackageTests/BenchmarkStanza/Setup.hs
diff --git a/cabal/tests/PackageTests/TestStanza/my.cabal b/cabal/tests/PackageTests/BenchmarkStanza/my.cabal
similarity index 59%
copy from cabal/tests/PackageTests/TestStanza/my.cabal
copy to cabal/tests/PackageTests/BenchmarkStanza/my.cabal
index 3381abf..e41f3ab 100644
--- a/cabal/tests/PackageTests/TestStanza/my.cabal
+++ b/cabal/tests/PackageTests/BenchmarkStanza/my.cabal
@@ -1,19 +1,19 @@
-name: TestStanza
+name: BenchmarkStanza
version: 0.1
license: BSD3
-author: Thomas Tuegel
+author: Johan Tibell
stability: stable
category: PackageTests
build-type: Simple
description:
- Check that Cabal recognizes the Test stanza defined below.
+ Check that Cabal recognizes the benchmark stanza defined below.
Library
exposed-modules: MyLibrary
build-depends: base
-test-suite dummy
+benchmark dummy
main-is: dummy.hs
type: exitcode-stdio-1.0
build-depends: base
\ No newline at end of file
diff --git a/cabal/tests/suite.hs b/cabal/tests/suite.hs
index cd6fbef..f266386 100644
--- a/cabal/tests/suite.hs
+++ b/cabal/tests/suite.hs
@@ -10,6 +10,7 @@ import Test.Framework
import Test.Framework.Providers.HUnit
import Test.Framework.Providers.QuickCheck2
import qualified Test.HUnit as HUnit
+import PackageTests.BenchmarkStanza.Check
import PackageTests.BuildDeps.SameDepsAllRound.Check
import PackageTests.BuildDeps.TargetSpecificDeps1.Check
import PackageTests.BuildDeps.TargetSpecificDeps1.Check
@@ -46,7 +47,10 @@ tests cabalVersion = [
(PackageTests.TestSuiteExeV10.Check.checkTest cabalVersion),
hunit "PackageTests/TestSuiteExeV10/TestWithHpc"
(PackageTests.TestSuiteExeV10.Check.checkTestWithHpc cabalVersion),
- hunit "PackageTests/TestOptions" PackageTests.TestOptions.Check.suite
+ hunit "PackageTests/TestOptions" PackageTests.TestOptions.Check.suite,
+ hunit "PackageTests/BenchmarkStanza/" (PackageTests.BenchmarkStanza.Check.suite cabalVersion)
+ -- ^ The benchmark stanza test will eventually be required
+ -- only for higher versions.
] ++
-- These tests are only required to pass on cabal version >= 1.7
(if cabalVersion >= Version [1, 7] []
More information about the Cvs-libraries
mailing list