[commit: Cabal] master: Added unit test for test options. (899cf6f)
Ian Lynagh
igloo at earth.li
Tue Jul 19 15:25:41 CEST 2011
Repository : ssh://darcs.haskell.org//srv/darcs/packages/Cabal
On branch : master
http://hackage.haskell.org/trac/ghc/changeset/899cf6fb395bd96da99807ee7146655e0946eea5
>---------------------------------------------------------------
commit 899cf6fb395bd96da99807ee7146655e0946eea5
Author: Thomas Tuegel <ttuegel at gmail.com>
Date: Sat May 21 16:45:29 2011 +0000
Added unit test for test options.
>---------------------------------------------------------------
cabal/Cabal.cabal | 1 +
cabal/tests/PackageTests/PackageTester.hs | 6 ++--
cabal/tests/PackageTests/TestOptions/Check.hs | 23 ++++++++++++++++++++
.../Setup.hs | 0
.../PackageTests/TestOptions/TestOptions.cabal | 20 +++++++++++++++++
.../PackageTests/TestOptions/test-TestOptions.hs | 11 +++++++++
cabal/tests/PackageTests/TestSuiteExeV10/Check.hs | 4 +-
cabal/tests/suite.hs | 4 ++-
8 files changed, 63 insertions(+), 6 deletions(-)
diff --git a/cabal/Cabal.cabal b/cabal/Cabal.cabal
index f9624fa..07c1b4d 100644
--- a/cabal/Cabal.cabal
+++ b/cabal/Cabal.cabal
@@ -142,6 +142,7 @@ test-suite unit-tests
PackageTests.BuildDeps.TargetSpecificDeps2.Check,
PackageTests.BuildDeps.TargetSpecificDeps3.Check,
PackageTests.BuildDeps.SameDepsAllRound.Check,
+ PackageTests.TestOptions.Check,
PackageTests.TestStanza.Check,
PackageTests.TestSuiteExeV10.Check,
PackageTests.PackageTester
diff --git a/cabal/tests/PackageTests/PackageTester.hs b/cabal/tests/PackageTests/PackageTester.hs
index f9ec3c5..e7a233d 100644
--- a/cabal/tests/PackageTests/PackageTester.hs
+++ b/cabal/tests/PackageTests/PackageTester.hs
@@ -104,9 +104,9 @@ cabal_install spec = do
record spec res
return res
-cabal_test :: PackageSpec -> IO Result
-cabal_test spec = do
- res <- cabal spec ["test"]
+cabal_test :: PackageSpec -> [String] -> IO Result
+cabal_test spec extraArgs = do
+ res <- cabal spec $ "test" : extraArgs
let r = recordRun res TestSuccess nullResult
record spec r
return r
diff --git a/cabal/tests/PackageTests/TestOptions/Check.hs b/cabal/tests/PackageTests/TestOptions/Check.hs
new file mode 100644
index 0000000..0943530
--- /dev/null
+++ b/cabal/tests/PackageTests/TestOptions/Check.hs
@@ -0,0 +1,23 @@
+module PackageTests.TestOptions.Check where
+
+import Test.HUnit
+import System.FilePath
+import PackageTests.PackageTester
+
+suite :: Test
+suite = TestCase $ do
+ let directory = "PackageTests" </> "TestOptions"
+ pdFile = directory </> "TestOptions" <.> "cabal"
+ spec = PackageSpec directory ["--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 "
+ ++ "test executable with \"--test-options\""
+ assertEqual message True $ successful result
+ result' <- cabal_test spec [ "--test-option=1"
+ , "--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'
diff --git a/cabal/tests/PackageTests/BuildDeps/GlobalBuildDepsNotAdditive1/Setup.hs b/cabal/tests/PackageTests/TestOptions/Setup.hs
similarity index 100%
copy from cabal/tests/PackageTests/BuildDeps/GlobalBuildDepsNotAdditive1/Setup.hs
copy to cabal/tests/PackageTests/TestOptions/Setup.hs
diff --git a/cabal/tests/PackageTests/TestOptions/TestOptions.cabal b/cabal/tests/PackageTests/TestOptions/TestOptions.cabal
new file mode 100644
index 0000000..a319a12
--- /dev/null
+++ b/cabal/tests/PackageTests/TestOptions/TestOptions.cabal
@@ -0,0 +1,20 @@
+name: TestOptions
+version: 0.1
+license: BSD3
+author: Thomas Tuegel
+stability: stable
+category: PackageTests
+build-type: Simple
+cabal-version: >= 1.9.2
+
+description:
+ Check that Cabal passes the correct test options to test suites.
+
+executable dummy
+ main-is: test-TestOptions.hs
+ build-depends: base
+
+test-suite test-TestOptions
+ main-is: test-TestOptions.hs
+ type: exitcode-stdio-1.0
+ build-depends: base
diff --git a/cabal/tests/PackageTests/TestOptions/test-TestOptions.hs b/cabal/tests/PackageTests/TestOptions/test-TestOptions.hs
new file mode 100644
index 0000000..7c21bff
--- /dev/null
+++ b/cabal/tests/PackageTests/TestOptions/test-TestOptions.hs
@@ -0,0 +1,11 @@
+module Main where
+
+import System.Environment ( getArgs )
+import System.Exit ( exitFailure, exitSuccess )
+
+main :: IO ()
+main = do
+ args <- getArgs
+ if args == ["1", "2", "3"]
+ then exitSuccess
+ else putStrLn ("Got: " ++ show args) >> exitFailure
diff --git a/cabal/tests/PackageTests/TestSuiteExeV10/Check.hs b/cabal/tests/PackageTests/TestSuiteExeV10/Check.hs
index 5c4c238..203c36b 100644
--- a/cabal/tests/PackageTests/TestSuiteExeV10/Check.hs
+++ b/cabal/tests/PackageTests/TestSuiteExeV10/Check.hs
@@ -20,7 +20,7 @@ checkTest cabalVersion = TestCase $ do
buildResult <- cabal_build spec
let buildMessage = "\'setup build\' should succeed"
assertEqual buildMessage True $ successful buildResult
- testResult <- cabal_test spec
+ testResult <- cabal_test spec []
let testMessage = "\'setup test\' should succeed"
assertEqual testMessage True $ successful testResult
@@ -32,7 +32,7 @@ checkTestWithHpc cabalVersion = TestCase $ do
buildResult <- cabal_build spec
let buildMessage = "\'setup build\' should succeed"
assertEqual buildMessage True $ successful buildResult
- testResult <- cabal_test spec
+ testResult <- cabal_test spec []
let testMessage = "\'setup test\' should succeed"
assertEqual testMessage True $ successful testResult
let dummy = emptyTestSuite { testName = "test-Foo" }
diff --git a/cabal/tests/suite.hs b/cabal/tests/suite.hs
index c513ea3..cd6fbef 100644
--- a/cabal/tests/suite.hs
+++ b/cabal/tests/suite.hs
@@ -22,6 +22,7 @@ import PackageTests.BuildDeps.InternalLibrary1.Check
import PackageTests.BuildDeps.InternalLibrary2.Check
import PackageTests.BuildDeps.InternalLibrary3.Check
import PackageTests.BuildDeps.InternalLibrary4.Check
+import PackageTests.TestOptions.Check
import PackageTests.TestStanza.Check
import PackageTests.TestSuiteExeV10.Check
import Distribution.Text (display)
@@ -44,7 +45,8 @@ tests cabalVersion = [
hunit "PackageTests/TestSuiteExeV10/Test"
(PackageTests.TestSuiteExeV10.Check.checkTest cabalVersion),
hunit "PackageTests/TestSuiteExeV10/TestWithHpc"
- (PackageTests.TestSuiteExeV10.Check.checkTestWithHpc cabalVersion)
+ (PackageTests.TestSuiteExeV10.Check.checkTestWithHpc cabalVersion),
+ hunit "PackageTests/TestOptions" PackageTests.TestOptions.Check.suite
] ++
-- 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