hoogle-4.2.37: src/Test.hs
module Main(main) where
import Control.Monad
import System.Process
import System.Directory
import System.Exit
import System.FilePath
import System.Environment
import System.IO.Temp
main :: IO ()
main = do
let files = ["./dist/build/hoogle/hoogle.exe","./dist/build/hoogle/hoogle"
,"./hoogle.exe","./hoogle"
,"../hoogle/hoogle.exe","../hoogle/hoogle"]
found <- filterM doesFileExist files
let hoogle args want_success = do
let cmd = normalise (head (found ++ ["hoogle"])) ++ " " ++ args
res <- system cmd
when (res /= ExitSuccess && want_success) $
error $ "Command: " ++ cmd ++ "\nFailed with: " ++ show res
when (res == ExitSuccess && not want_success) $
error $ "Command: " ++ cmd ++ "\nExpected failure but didn't fail."
args <- getArgs
if "--no-net" `elem` args then
hoogle "test" True
else do
hoogle "data" True
hoogle "test --example" True
-- Check --no-download functionality in an empty data directory.
withSystemTempDirectory "hoogle-no-download.test." $ \tempdir -> do
hoogle ("data --no-download -d" ++ tempdir) False