git.iko.soy/typeable/pandoc
on master help sign in
Propagate (DY)LD_LIBRARY_PATH in tests (#6376)
c048003Lila
test/Tests/Command.hs+7−5
@@ -17,8 +17,10 @@ import Prelude
17import Data.Algorithm.Diff
17import Data.Algorithm.Diff
18import qualified Data.ByteString as BS
18import qualified Data.ByteString as BS
19import qualified Data.Text as T
19import qualified Data.Text as T
20−import Data.List (isSuffixOf)
20+import Data.List (isSuffixOf, intercalate)
21+import Data.Maybe (catMaybes)
21import System.Directory
22import System.Directory
23+import qualified System.Environment as Env
22import System.Exit
24import System.Exit
23import System.FilePath (joinPath, splitDirectories, takeDirectory, (</>))
25import System.FilePath (joinPath, splitDirectories, takeDirectory, (</>))
24import System.IO (hPutStr, stderr)
26import System.IO (hPutStr, stderr)
@@ -38,15 +40,15 @@ runTest :: String -- ^ Title of test
38 -> String -- ^ Expected output
40 -> String -- ^ Expected output
39 -> TestTree
41 -> TestTree
40runTest testname pandocpath cmd inp norm = testCase testname $ do
42runTest testname pandocpath cmd inp norm = testCase testname $ do
43+ mldpath <- Env.lookupEnv "LD_LIBRARY_PATH"
44+ mdyldpath <- Env.lookupEnv "DYLD_LIBRARY_PATH"
41 let findDynlibDir [] = Nothing
45 let findDynlibDir [] = Nothing
42 findDynlibDir ("build":xs) = Just $ joinPath (reverse xs) </> "build"
46 findDynlibDir ("build":xs) = Just $ joinPath (reverse xs) </> "build"
43 findDynlibDir (_:xs) = findDynlibDir xs
47 findDynlibDir (_:xs) = findDynlibDir xs
44 let mbDynlibDir = findDynlibDir (reverse $ splitDirectories $
48 let mbDynlibDir = findDynlibDir (reverse $ splitDirectories $
45 takeDirectory $ takeWhile (/=' ') cmd)
49 takeDirectory $ takeWhile (/=' ') cmd)
46− let dynlibEnv = case mbDynlibDir of
50+ let dynlibEnv = [("DYLD_LIBRARY_PATH", intercalate ":" $ catMaybes [mbDynlibDir, mdyldpath])
47− Nothing -> []
48− Just d -> [("DYLD_LIBRARY_PATH", d),
49− ("LD_LIBRARY_PATH", d)]
51+ ,("LD_LIBRARY_PATH", intercalate ":" $ catMaybes [mbDynlibDir, mldpath])]
50 let env' = dynlibEnv ++ [("PATH",takeDirectory pandocpath),("TMP","."),("LANG","en_US.UTF-8"),("HOME", "./"),("pandoc_datadir", "..")]
52 let env' = dynlibEnv ++ [("PATH",takeDirectory pandocpath),("TMP","."),("LANG","en_US.UTF-8"),("HOME", "./"),("pandoc_datadir", "..")]
51 let pr = (shell cmd){ env = Just env' }
53 let pr = (shell cmd){ env = Just env' }
52 (ec, out', err') <- readCreateProcessWithExitCode pr inp
54 (ec, out', err') <- readCreateProcessWithExitCode pr inp
test/Tests/Old.hs+7−4
@@ -15,8 +15,11 @@ module Tests.Old (tests) where
15import Prelude
15import Prelude
16import Data.Algorithm.Diff
16import Data.Algorithm.Diff
17import Prelude hiding (readFile)
17import Prelude hiding (readFile)
18+import Data.List (intercalate)
19+import Data.Maybe (catMaybes)
18import System.Exit
20import System.Exit
19import System.FilePath (joinPath, splitDirectories, (<.>), (</>))
21import System.FilePath (joinPath, splitDirectories, (<.>), (</>))
22+import qualified System.Environment as Env
20import Text.Pandoc.Process (pipeProcess)
23import Text.Pandoc.Process (pipeProcess)
21import Test.Tasty (TestTree, testGroup)
24import Test.Tasty (TestTree, testGroup)
22import Test.Tasty.Golden.Advanced (goldenTest)
25import Test.Tasty.Golden.Advanced (goldenTest)
@@ -298,12 +301,12 @@ testWithNormalize normalizer pandocPath testname opts inp norm =
298 (compareValues norm options) updateGolden
301 (compareValues norm options) updateGolden
299 where getExpected = normalizer <$> readFile' norm
302 where getExpected = normalizer <$> readFile' norm
300 getActual = do
303 getActual = do
304+ mldpath <- Env.lookupEnv "LD_LIBRARY_PATH"
305+ mdyldpath <- Env.lookupEnv "DYLD_LIBRARY_PATH"
301 let mbDynlibDir = findDynlibDir (reverse $
306 let mbDynlibDir = findDynlibDir (reverse $
302 splitDirectories pandocPath)
307 splitDirectories pandocPath)
303− let dynlibEnv = case mbDynlibDir of
308+ let dynlibEnv = [("DYLD_LIBRARY_PATH", intercalate ":" $ catMaybes [mbDynlibDir, mdyldpath])
304− Nothing -> []
305− Just d -> [("DYLD_LIBRARY_PATH", d),
306− ("LD_LIBRARY_PATH", d)]
309+ ,("LD_LIBRARY_PATH", intercalate ":" $ catMaybes [mbDynlibDir, mldpath])]
307 let env = dynlibEnv ++
310 let env = dynlibEnv ++
308 [("TMP","."),("LANG","en_US.UTF-8"),("HOME", "./")]
311 [("TMP","."),("LANG","en_US.UTF-8"),("HOME", "./")]
309 (ec, out) <- pipeProcess (Just env) pandocPath options mempty
312 (ec, out) <- pipeProcess (Just env) pandocPath options mempty