From 7ae22a92263bf2bf9e483ecd9d75231b6de53d45 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Gr=C3=B6ber?= Date: Tue, 8 Sep 2015 06:20:12 +0200 Subject: [PATCH] Fix tests --- ghc-mod.cabal | 1 + test/CabalHelperSpec.hs | 22 ---------------------- test/CustomPackageDbSpec.hs | 35 +++++++++++++++++++++++++++++++++++ test/GhcPkgSpec.hs | 1 + test/PathsAndFilesSpec.hs | 13 +++++++++---- 5 files changed, 46 insertions(+), 26 deletions(-) create mode 100644 test/CustomPackageDbSpec.hs diff --git a/ghc-mod.cabal b/ghc-mod.cabal index 20347be..e6b10ee 100644 --- a/ghc-mod.cabal +++ b/ghc-mod.cabal @@ -243,6 +243,7 @@ Test-Suite spec Spec TestUtils BrowseSpec + CustomPackageDbSpec CheckSpec FlagSpec InfoSpec diff --git a/test/CabalHelperSpec.hs b/test/CabalHelperSpec.hs index c69bbab..162675e 100644 --- a/test/CabalHelperSpec.hs +++ b/test/CabalHelperSpec.hs @@ -79,25 +79,3 @@ spec = do let ghcOpts = head opts pkgs = pkgOptions ghcOpts pkgs `shouldBe` ["Cabal","base"] - - describe "getCustomPkgDbStack" $ do - it "works" $ do - let tdir = "test/data/custom-cradle" - Just stack <- runD' tdir $ getCustomPkgDbStack - stack `shouldBe` [ GlobalDb - , UserDb - , PackageDb "package-db-a" - , PackageDb "package-db-b" - , PackageDb "package-db-c" - ] - - describe "getPackageDbStack'" $ do - it "fixes out of sync custom pkg-db stack" $ do - withDirectory_ "test/data/custom-cradle" $ do - _ <- system "cabal configure" - (s, s') <- runD $ do - Just stack <- getCustomPkgDbStack - withCabal $ do - stack' <- getCabalPackageDbStack - return (stack, stack') - s' `shouldBe` s diff --git a/test/CustomPackageDbSpec.hs b/test/CustomPackageDbSpec.hs new file mode 100644 index 0000000..c19c193 --- /dev/null +++ b/test/CustomPackageDbSpec.hs @@ -0,0 +1,35 @@ +module CustomPackageDbSpec where + +import Language.Haskell.GhcMod.CabalHelper +import Language.Haskell.GhcMod.CustomPackageDb +import Language.Haskell.GhcMod.Error +import System.Process +import Test.Hspec +import Prelude + +import Dir +import TestUtils + +spec :: Spec +spec = do + describe "getCustomPkgDbStack" $ do + it "works" $ do + let tdir = "test/data/custom-cradle" + Just stack <- runD' tdir $ getCustomPkgDbStack + stack `shouldBe` [ GlobalDb + , UserDb + , PackageDb "package-db-a" + , PackageDb "package-db-b" + , PackageDb "package-db-c" + ] + + describe "getPackageDbStack'" $ do + it "fixes out of sync custom pkg-db stack" $ do + withDirectory_ "test/data/custom-cradle" $ do + _ <- system "cabal configure" + (s, s') <- runD $ do + Just stack <- getCustomPkgDbStack + withCabal $ do + stack' <- getCabalPackageDbStack + return (stack, stack') + s' `shouldBe` s diff --git a/test/GhcPkgSpec.hs b/test/GhcPkgSpec.hs index 768f2e4..69d9661 100644 --- a/test/GhcPkgSpec.hs +++ b/test/GhcPkgSpec.hs @@ -2,6 +2,7 @@ module GhcPkgSpec where import Language.Haskell.GhcMod.GhcPkg import Language.Haskell.GhcMod.CabalHelper +import Language.Haskell.GhcMod.CustomPackageDb import Test.Hspec import System.Process (system) diff --git a/test/PathsAndFilesSpec.hs b/test/PathsAndFilesSpec.hs index cb34aa4..ec3057b 100644 --- a/test/PathsAndFilesSpec.hs +++ b/test/PathsAndFilesSpec.hs @@ -3,6 +3,7 @@ module PathsAndFilesSpec where import Language.Haskell.GhcMod.PathsAndFiles import Language.Haskell.GhcMod.Cradle +import qualified Language.Haskell.GhcMod.Utils as U import Control.Monad.Trans.Maybe import System.Directory @@ -25,10 +26,12 @@ spec = do describe "findCabalFile" $ do it "works" $ do - findCabalFile "test/data/cabal-project" `shouldReturn` Just "test/data/cabal-project/cabalapi.cabal" + p <- U.makeAbsolute' "test/data/cabal-project/cabalapi.cabal" + findCabalFile "test/data/cabal-project" `shouldReturn` Just p it "finds cabal files in parent directories" $ do - findCabalFile "test/data/cabal-project/subdir1/subdir2" `shouldReturn` Just "test/data/cabal-project/cabalapi.cabal" + p <- U.makeAbsolute' "test/data/cabal-project/cabalapi.cabal" + findCabalFile "test/data/cabal-project/subdir1/subdir2" `shouldReturn` Just p describe "findStackConfigFile" $ do it "works" $ do @@ -36,7 +39,9 @@ spec = do describe "findCabalSandboxDir" $ do it "works" $ do - findCabalSandboxDir "test/data/cabal-project" `shouldReturn` Just "test/data/cabal-project" + p <- U.makeAbsolute' "test/data/cabal-project/cabalapi.cabal" + findCabalSandboxDir "test/data/cabal-project" `shouldReturn` Just p it "finds sandboxes in parent directories" $ do - findCabalSandboxDir "test/data/cabal-project/subdir1/subdir2" `shouldReturn` Just "test/data/cabal-project" + p <- U.makeAbsolute' "test/data/cabal-project/" + findCabalSandboxDir "test/data/cabal-project/subdir1/subdir2" `shouldReturn` Just p