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 <[email protected]>
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] []



_______________________________________________
Cvs-libraries mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/cvs-libraries

Reply via email to