BNFC-2.9.0: test/doctests.hs
-- | @doctest@ main, from https://hackage.haskell.org/package/cabal-doctest
import Build_doctests ( flags, pkgs, module_sources )
import System.Environment ( unsetEnv )
import Test.DocTest ( doctest )
main :: IO ()
main = do
-- optionally print arguments
mapM_ putStrLn . concat $
[ ["Arguments to doctest"]
, args
, [""]
]
fixEnv
doctest args
where
args = flags ++ pkgs ++ module_sources
-- | From version 2, Stack sets the GHC_ENVRIONMENT variable, and GHC
-- (as invoked by doctest) will pick that up. This is undesirable:
-- cabal-doctest passes all the necessary information on the command
-- line already, and can lead to ambiguous module errors as GHC will
-- load the environment in addition to what cabal-doctest instructs it
-- to.
--
-- Hence, cabal-doctest tells GHC to ignore package environments
-- altogether on the command line. However, this is only possible
-- since GHC 8.2. If you are using cabal-doctest with Stack 2 and
-- GHC 8.0 or earlier and seeing ambiguous module errors or other
-- mysterious failures, try manually unsetting GHC_ENVIRONMENT before
-- invoking doctest.
--
fixEnv :: IO ()
fixEnv = unsetEnv "GHC_ENVIRONMENT"