Propagate (DY)LD_LIBRARY_PATH in tests (#6376)
This commit is contained in:
parent
f4185fcef0
commit
c04800305e
2 changed files with 14 additions and 9 deletions
|
@ -17,8 +17,10 @@ import Prelude
|
|||
import Data.Algorithm.Diff
|
||||
import qualified Data.ByteString as BS
|
||||
import qualified Data.Text as T
|
||||
import Data.List (isSuffixOf)
|
||||
import Data.List (isSuffixOf, intercalate)
|
||||
import Data.Maybe (catMaybes)
|
||||
import System.Directory
|
||||
import qualified System.Environment as Env
|
||||
import System.Exit
|
||||
import System.FilePath (joinPath, splitDirectories, takeDirectory, (</>))
|
||||
import System.IO (hPutStr, stderr)
|
||||
|
@ -38,15 +40,15 @@ runTest :: String -- ^ Title of test
|
|||
-> String -- ^ Expected output
|
||||
-> TestTree
|
||||
runTest testname pandocpath cmd inp norm = testCase testname $ do
|
||||
mldpath <- Env.lookupEnv "LD_LIBRARY_PATH"
|
||||
mdyldpath <- Env.lookupEnv "DYLD_LIBRARY_PATH"
|
||||
let findDynlibDir [] = Nothing
|
||||
findDynlibDir ("build":xs) = Just $ joinPath (reverse xs) </> "build"
|
||||
findDynlibDir (_:xs) = findDynlibDir xs
|
||||
let mbDynlibDir = findDynlibDir (reverse $ splitDirectories $
|
||||
takeDirectory $ takeWhile (/=' ') cmd)
|
||||
let dynlibEnv = case mbDynlibDir of
|
||||
Nothing -> []
|
||||
Just d -> [("DYLD_LIBRARY_PATH", d),
|
||||
("LD_LIBRARY_PATH", d)]
|
||||
let dynlibEnv = [("DYLD_LIBRARY_PATH", intercalate ":" $ catMaybes [mbDynlibDir, mdyldpath])
|
||||
,("LD_LIBRARY_PATH", intercalate ":" $ catMaybes [mbDynlibDir, mldpath])]
|
||||
let env' = dynlibEnv ++ [("PATH",takeDirectory pandocpath),("TMP","."),("LANG","en_US.UTF-8"),("HOME", "./"),("pandoc_datadir", "..")]
|
||||
let pr = (shell cmd){ env = Just env' }
|
||||
(ec, out', err') <- readCreateProcessWithExitCode pr inp
|
||||
|
|
|
@ -15,8 +15,11 @@ module Tests.Old (tests) where
|
|||
import Prelude
|
||||
import Data.Algorithm.Diff
|
||||
import Prelude hiding (readFile)
|
||||
import Data.List (intercalate)
|
||||
import Data.Maybe (catMaybes)
|
||||
import System.Exit
|
||||
import System.FilePath (joinPath, splitDirectories, (<.>), (</>))
|
||||
import qualified System.Environment as Env
|
||||
import Text.Pandoc.Process (pipeProcess)
|
||||
import Test.Tasty (TestTree, testGroup)
|
||||
import Test.Tasty.Golden.Advanced (goldenTest)
|
||||
|
@ -298,12 +301,12 @@ testWithNormalize normalizer pandocPath testname opts inp norm =
|
|||
(compareValues norm options) updateGolden
|
||||
where getExpected = normalizer <$> readFile' norm
|
||||
getActual = do
|
||||
mldpath <- Env.lookupEnv "LD_LIBRARY_PATH"
|
||||
mdyldpath <- Env.lookupEnv "DYLD_LIBRARY_PATH"
|
||||
let mbDynlibDir = findDynlibDir (reverse $
|
||||
splitDirectories pandocPath)
|
||||
let dynlibEnv = case mbDynlibDir of
|
||||
Nothing -> []
|
||||
Just d -> [("DYLD_LIBRARY_PATH", d),
|
||||
("LD_LIBRARY_PATH", d)]
|
||||
let dynlibEnv = [("DYLD_LIBRARY_PATH", intercalate ":" $ catMaybes [mbDynlibDir, mdyldpath])
|
||||
,("LD_LIBRARY_PATH", intercalate ":" $ catMaybes [mbDynlibDir, mldpath])]
|
||||
let env = dynlibEnv ++
|
||||
[("TMP","."),("LANG","en_US.UTF-8"),("HOME", "./")]
|
||||
(ec, out) <- pipeProcess (Just env) pandocPath options mempty
|
||||
|
|
Loading…
Add table
Reference in a new issue