From bac660f5e681d0c0bcefc5754a598cc85cd360d1 Mon Sep 17 00:00:00 2001
From: Johan Tibell <johan.tibell@gmail.com>
Date: Thu, 25 Oct 2012 21:52:11 -0700
Subject: [PATCH] Add tests for PathsModule

---
 Cabal/Cabal.cabal                             |  2 ++
 Cabal/tests/PackageTests.hs                   |  8 ++++-
 .../PathsModule/Executable/Check.hs           | 14 ++++++++
 .../PathsModule/Executable/Main.hs            |  8 +++++
 .../PathsModule/Executable/Setup.hs           |  3 ++
 .../PathsModule/Executable/my.cabal           | 16 +++++++++
 .../PackageTests/PathsModule/Library/Check.hs | 13 +++++++
 .../PackageTests/PathsModule/Library/Setup.hs |  3 ++
 .../dist/build/autogen/Paths_PathsModule.hs   | 34 +++++++++++++++++++
 .../PackageTests/PathsModule/Library/my.cabal | 15 ++++++++
 10 files changed, 115 insertions(+), 1 deletion(-)
 create mode 100644 Cabal/tests/PackageTests/PathsModule/Executable/Check.hs
 create mode 100644 Cabal/tests/PackageTests/PathsModule/Executable/Main.hs
 create mode 100644 Cabal/tests/PackageTests/PathsModule/Executable/Setup.hs
 create mode 100644 Cabal/tests/PackageTests/PathsModule/Executable/my.cabal
 create mode 100644 Cabal/tests/PackageTests/PathsModule/Library/Check.hs
 create mode 100644 Cabal/tests/PackageTests/PathsModule/Library/Setup.hs
 create mode 100644 Cabal/tests/PackageTests/PathsModule/Library/dist/build/autogen/Paths_PathsModule.hs
 create mode 100644 Cabal/tests/PackageTests/PathsModule/Library/my.cabal

diff --git a/Cabal/Cabal.cabal b/Cabal/Cabal.cabal
index 074be6be4e..308ba3fe9b 100644
--- a/Cabal/Cabal.cabal
+++ b/Cabal/Cabal.cabal
@@ -161,6 +161,8 @@ test-suite package-tests
                  PackageTests.BenchmarkStanza.Check,
                  PackageTests.TemplateHaskell.Check,
                  PackageTests.PackageTester
+                 PackageTests.PathsModule.Executable.Check
+                 PackageTests.PathsModule.Library.Check
   hs-source-dirs: tests
   build-depends:
         base,
diff --git a/Cabal/tests/PackageTests.hs b/Cabal/tests/PackageTests.hs
index bd8ef6b5d4..4b1b1f5ea3 100644
--- a/Cabal/tests/PackageTests.hs
+++ b/Cabal/tests/PackageTests.hs
@@ -25,6 +25,8 @@ import PackageTests.BuildDeps.InternalLibrary1.Check
 import PackageTests.BuildDeps.InternalLibrary2.Check
 import PackageTests.BuildDeps.InternalLibrary3.Check
 import PackageTests.BuildDeps.InternalLibrary4.Check
+import PackageTests.PathsModule.Executable.Check
+import PackageTests.PathsModule.Library.Check
 import PackageTests.TestOptions.Check
 import PackageTests.TestStanza.Check
 import PackageTests.TestSuiteExeV10.Check
@@ -60,7 +62,11 @@ tests cabalVersion = [
         (PackageTests.BenchmarkExeV10.Check.checkBenchmark cabalVersion),
         hunit "PackageTests/BenchmarkOptions" PackageTests.BenchmarkOptions.Check.suite,
         hunit "PackageTests/TemplateHaskell/profiling" PackageTests.TemplateHaskell.Check.profiling,
-        hunit "PackageTests/TemplateHaskell/dynamic" PackageTests.TemplateHaskell.Check.dynamic
+        hunit "PackageTests/TemplateHaskell/dynamic" PackageTests.TemplateHaskell.Check.dynamic,
+        hunit "PackageTests/PathsModule/Executable"
+        PackageTests.PathsModule.Executable.Check.suite,
+        hunit "PackageTests/PathsModule/Library"
+        PackageTests.PathsModule.Library.Check.suite
     ] ++
     -- These tests are only required to pass on cabal version >= 1.7
     (if cabalVersion >= Version [1, 7] []
diff --git a/Cabal/tests/PackageTests/PathsModule/Executable/Check.hs b/Cabal/tests/PackageTests/PathsModule/Executable/Check.hs
new file mode 100644
index 0000000000..a33ceb1cd7
--- /dev/null
+++ b/Cabal/tests/PackageTests/PathsModule/Executable/Check.hs
@@ -0,0 +1,14 @@
+module PackageTests.PathsModule.Executable.Check (suite) where
+
+import Distribution.Version
+import PackageTests.PackageTester (PackageSpec(..), assertBuildSucceeded,
+                                   cabal_build)
+import System.FilePath
+import Test.HUnit
+
+suite :: Test
+suite = TestCase $ do
+    let spec = PackageSpec ("PackageTests" </> "PathsModule" </> "Executable")
+               []
+    result <- cabal_build spec
+    assertBuildSucceeded result
diff --git a/Cabal/tests/PackageTests/PathsModule/Executable/Main.hs b/Cabal/tests/PackageTests/PathsModule/Executable/Main.hs
new file mode 100644
index 0000000000..5bd5d645c3
--- /dev/null
+++ b/Cabal/tests/PackageTests/PathsModule/Executable/Main.hs
@@ -0,0 +1,8 @@
+module Main where
+
+import Paths_PathsModule (getBinDir)
+
+main :: IO ()
+main = do
+    _ <- getBinDir
+    return ()
diff --git a/Cabal/tests/PackageTests/PathsModule/Executable/Setup.hs b/Cabal/tests/PackageTests/PathsModule/Executable/Setup.hs
new file mode 100644
index 0000000000..200a2e51d0
--- /dev/null
+++ b/Cabal/tests/PackageTests/PathsModule/Executable/Setup.hs
@@ -0,0 +1,3 @@
+import Distribution.Simple
+main = defaultMain
+
diff --git a/Cabal/tests/PackageTests/PathsModule/Executable/my.cabal b/Cabal/tests/PackageTests/PathsModule/Executable/my.cabal
new file mode 100644
index 0000000000..29a319ad43
--- /dev/null
+++ b/Cabal/tests/PackageTests/PathsModule/Executable/my.cabal
@@ -0,0 +1,16 @@
+name: PathsModule
+version: 0.1
+license: BSD3
+author: Johan Tibell
+stability: stable
+category: PackageTests
+build-type: Simple
+Cabal-version: >= 1.2
+
+description:
+    Check that the generated paths module compiles.
+
+Executable TestPathsModule
+    main-is: Main.hs
+    other-modules: Paths_PathsModule
+    build-depends: base
diff --git a/Cabal/tests/PackageTests/PathsModule/Library/Check.hs b/Cabal/tests/PackageTests/PathsModule/Library/Check.hs
new file mode 100644
index 0000000000..3302ba2a6e
--- /dev/null
+++ b/Cabal/tests/PackageTests/PathsModule/Library/Check.hs
@@ -0,0 +1,13 @@
+module PackageTests.PathsModule.Library.Check (suite) where
+
+import Distribution.Version
+import PackageTests.PackageTester (PackageSpec(..), assertBuildSucceeded,
+                                   cabal_build)
+import System.FilePath
+import Test.HUnit
+
+suite :: Test
+suite = TestCase $ do
+    let spec = PackageSpec ("PackageTests" </> "PathsModule" </> "Library") []
+    result <- cabal_build spec
+    assertBuildSucceeded result
diff --git a/Cabal/tests/PackageTests/PathsModule/Library/Setup.hs b/Cabal/tests/PackageTests/PathsModule/Library/Setup.hs
new file mode 100644
index 0000000000..200a2e51d0
--- /dev/null
+++ b/Cabal/tests/PackageTests/PathsModule/Library/Setup.hs
@@ -0,0 +1,3 @@
+import Distribution.Simple
+main = defaultMain
+
diff --git a/Cabal/tests/PackageTests/PathsModule/Library/dist/build/autogen/Paths_PathsModule.hs b/Cabal/tests/PackageTests/PathsModule/Library/dist/build/autogen/Paths_PathsModule.hs
new file mode 100644
index 0000000000..eeef2bdfff
--- /dev/null
+++ b/Cabal/tests/PackageTests/PathsModule/Library/dist/build/autogen/Paths_PathsModule.hs
@@ -0,0 +1,34 @@
+module Paths_PathsModule (
+    version,
+    getBinDir, getLibDir, getDataDir, getLibexecDir,
+    getDataFileName
+  ) where
+
+import qualified Control.Exception as Exception
+import Data.Version (Version(Version, versionBranch, versionTags))
+import System.Environment (getEnv)
+import Prelude ((++), FilePath, IO, return)
+
+catchIO :: IO a -> (Exception.IOException -> IO a) -> IO a
+catchIO = Exception.catch
+
+
+version :: Version
+version = Version {versionBranch = [0,1], versionTags = []}
+bindir, libdir, datadir, libexecdir :: FilePath
+
+bindir     = "/Users/tibbe/.cabal/bin"
+libdir     = "/Users/tibbe/.cabal/lib/PathsModule-0.1/ghc-7.4.1"
+datadir    = "/Users/tibbe/.cabal/share/PathsModule-0.1"
+libexecdir = "/Users/tibbe/.cabal/libexec"
+
+getBinDir, getLibDir, getDataDir, getLibexecDir :: IO FilePath
+getBinDir = catchIO (getEnv "PathsModule_bindir") (\_ -> return bindir)
+getLibDir = catchIO (getEnv "PathsModule_libdir") (\_ -> return libdir)
+getDataDir = catchIO (getEnv "PathsModule_datadir") (\_ -> return datadir)
+getLibexecDir = catchIO (getEnv "PathsModule_libexecdir") (\_ -> return libexecdir)
+
+getDataFileName :: FilePath -> IO FilePath
+getDataFileName name = do
+  dir <- getDataDir
+  return (dir ++ "/" ++ name)
diff --git a/Cabal/tests/PackageTests/PathsModule/Library/my.cabal b/Cabal/tests/PackageTests/PathsModule/Library/my.cabal
new file mode 100644
index 0000000000..99fc57c4e9
--- /dev/null
+++ b/Cabal/tests/PackageTests/PathsModule/Library/my.cabal
@@ -0,0 +1,15 @@
+name: PathsModule
+version: 0.1
+license: BSD3
+author: Johan Tibell
+stability: stable
+category: PackageTests
+build-type: Simple
+Cabal-version: >= 1.2
+
+description:
+    Check that the generated paths module compiles.
+
+Library
+    exposed-modules: Paths_PathsModule
+    build-depends: base
-- 
GitLab