PartialDownsweep: Add test for import errors
authorDaniel Gröber <dxld@darkboxed.org>
Sun, 26 May 2019 09:24:47 +0000 (11:24 +0200)
committerMarge Bot <ben+marge-bot@smart-cactus.org>
Thu, 30 May 2019 20:44:08 +0000 (16:44 -0400)
testsuite/tests/ghc-api/downsweep/PartialDownsweep.hs
testsuite/tests/ghc-api/downsweep/PartialDownsweep.stderr

index fb91fb6..335963b 100644 (file)
@@ -8,6 +8,7 @@ import GhcMake
 import DynFlags
 import Outputable
 import Exception (ExceptionMonad, ghandle)
+import Bag
 
 import Control.Monad
 import Control.Monad.IO.Class (liftIO)
@@ -134,6 +135,17 @@ main = do
          sort (map (moduleNameString . moduleName . ms_mod) mss) == ["A", "C"]
        )
 
+    go "Import error"
+        [ [ "module A where"
+          , "import B"
+          , "import DoesNotExist_FooBarBaz"
+          ]
+        , [ "module B where"
+          ]
+        ]
+       (\mss -> return $
+           sort (map (moduleNameString . moduleName . ms_mod) mss) == ["A", "B"]
+       )
 
   errored <- readIORef any_failed
   when errored $ exitFailure
@@ -154,6 +166,7 @@ go label mods cnd =
     hsc_env <- getSession
     emss <- liftIO $ downsweep hsc_env [] [] False
     -- liftIO $ hPutStrLn stderr $ showSDocUnsafe $ ppr $ rights emss
+    -- liftIO $ hPrint stderr $ bagToList $ unionManyBags $ lefts emss
 
     it label $ cnd (rights emss)
 
index 9e5f6d8..14c1b6c 100644 (file)
@@ -13,3 +13,4 @@ B.hs:2:0: error:
      error: #elif without #if
      #elif <- cpp error here
      
+== Import error