Removed special testHook from Setup.
This was just too fragile and dependent on a changing Cabal API (see #1526). Instead of passing the bulid directory to the test program, we now let the test program find itself (using executable-path) and then find the pandoc executable relative to itself.
This commit is contained in:
parent
22ab3367c6
commit
1d6e1cf9f3
3 changed files with 13 additions and 11 deletions
4
Setup.hs
4
Setup.hs
|
@ -38,10 +38,6 @@ main :: IO ()
|
|||
main = do
|
||||
defaultMainWithHooks $ simpleUserHooks {
|
||||
postBuild = makeManPages
|
||||
, testHook = \pkg lbi _ flags ->
|
||||
-- pass build directory as first argument to test program
|
||||
test pkg lbi flags{ testOptions =
|
||||
toPathTemplate (buildDir lbi) : testOptions flags }
|
||||
, postCopy = \ _ flags pkg lbi ->
|
||||
installManpages pkg lbi (fromFlag $ copyVerbosity flags)
|
||||
(fromFlag $ copyDest flags)
|
||||
|
|
|
@ -406,6 +406,7 @@ Test-Suite test-pandoc
|
|||
HUnit >= 1.2 && < 1.3,
|
||||
containers >= 0.1 && < 0.6,
|
||||
ansi-terminal >= 0.5 && < 0.7,
|
||||
executable-path >= 0.0 && < 0.1,
|
||||
zip-archive >= 0.2.3.4 && < 0.3
|
||||
Other-Modules: Tests.Old
|
||||
Tests.Helpers
|
||||
|
|
|
@ -3,10 +3,10 @@ module Tests.Old (tests) where
|
|||
import Test.Framework (testGroup, Test )
|
||||
import Test.Framework.Providers.HUnit
|
||||
import Test.HUnit ( assertBool )
|
||||
import System.Environment ( getArgs )
|
||||
import System.Environment.Executable (getExecutablePath)
|
||||
import System.IO ( openTempFile, stderr )
|
||||
import System.Process ( runProcess, waitForProcess )
|
||||
import System.FilePath ( (</>), (<.>) )
|
||||
import System.FilePath ( (</>), (<.>), takeDirectory )
|
||||
import System.Directory
|
||||
import System.Exit
|
||||
import Data.Algorithm.Diff
|
||||
|
@ -225,11 +225,16 @@ testWithNormalize :: (String -> String) -- ^ Normalize function for output
|
|||
-> FilePath -- ^ Norm (for test results) filepath
|
||||
-> Test
|
||||
testWithNormalize normalizer testname opts inp norm = testCase testname $ do
|
||||
args <- getArgs
|
||||
let buildDir = case args of
|
||||
(x:_) -> ".." </> x
|
||||
_ -> error "test-pandoc: missing buildDir argument"
|
||||
let pandocPath = buildDir </> "pandoc" </> "pandoc"
|
||||
-- find pandoc executable relative to test-pandoc
|
||||
-- First, try in same directory (e.g. if both in ~/.cabal/bin)
|
||||
-- Second, try ../pandoc (e.g. if in dist/XXX/build/test-pandoc)
|
||||
pandocPath <- do
|
||||
testExePath <- getExecutablePath
|
||||
let testExeDir = takeDirectory testExePath
|
||||
found <- doesFileExist (testExeDir </> "pandoc")
|
||||
return $ if found
|
||||
then testExeDir </> "pandoc"
|
||||
else testExeDir </> ".." </> "pandoc" </> "pandoc"
|
||||
(outputPath, hOut) <- openTempFile "" "pandoc-test"
|
||||
let inpPath = inp
|
||||
let normPath = norm
|
||||
|
|
Loading…
Add table
Reference in a new issue