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
