aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn MacFarlane <jgm@berkeley.edu>2021-03-19 18:54:49 -0700
committerJohn MacFarlane <jgm@berkeley.edu>2021-03-19 18:57:13 -0700
commit2ca1b20a85303dc8656f782f5804afdec215948b (patch)
tree820586530382fce5d331542de0f4c47231f5c954
parentc3a9322b930c4b7e9bbf880d5df5e972efcaf0ff (diff)
downloadpandoc-2ca1b20a85303dc8656f782f5804afdec215948b.tar.gz
Fix finding of data files from test programs.
Apparently Cabal sets a `pandoc_datadir` environment variable so that the data files will be sought in the source directory rather than in the final destination (where they aren't yet installed). So we no longer need to set `--data-dir` in the tests. We just need to make sure `pandoc_datadir` is set in the environment when we call the program in the test suite. This will fix the issue with loading of pandoc.lua when pandoc is built with `-embed_data_files`, reported in #7163. Closes #7163.
-rw-r--r--test/Tests/Command.hs3
-rw-r--r--test/Tests/Old.hs4
2 files changed, 5 insertions, 2 deletions
diff --git a/test/Tests/Command.hs b/test/Tests/Command.hs
index 59b04eac1..dc0e25dbe 100644
--- a/test/Tests/Command.hs
+++ b/test/Tests/Command.hs
@@ -40,11 +40,12 @@ execTest :: String -- ^ Path to test executable
execTest testExePath cmd inp = do
mldpath <- Env.lookupEnv "LD_LIBRARY_PATH"
mdyldpath <- Env.lookupEnv "DYLD_LIBRARY_PATH"
+ mpdd <- Env.lookupEnv "pandoc_datadir"
let env' = ("PATH",takeDirectory testExePath) :
("TMP",".") :
("LANG","en_US.UTF-8") :
("HOME", "./") :
- ("pandoc_datadir", "..") :
+ maybe [] ((:[]) . ("pandoc_datadir",)) mpdd ++
maybe [] ((:[]) . ("LD_LIBRARY_PATH",)) mldpath ++
maybe [] ((:[]) . ("DYLD_LIBRARY_PATH",)) mdyldpath
let pr = (shell (pandocToEmulate True cmd)){ env = Just env' }
diff --git a/test/Tests/Old.hs b/test/Tests/Old.hs
index 160086be2..e890bad0b 100644
--- a/test/Tests/Old.hs
+++ b/test/Tests/Old.hs
@@ -321,9 +321,11 @@ testWithNormalize normalizer pandocPath testname opts inp norm =
getActual = do
mldpath <- Env.lookupEnv "LD_LIBRARY_PATH"
mdyldpath <- Env.lookupEnv "DYLD_LIBRARY_PATH"
+ mpdd <- Env.lookupEnv "pandoc_datadir"
let env = ("TMP",".") :
("LANG","en_US.UTF-8") :
("HOME", "./") :
+ maybe [] ((:[]) . ("pandoc_datadir",)) mpdd ++
maybe [] ((:[]) . ("LD_LIBRARY_PATH",)) mldpath ++
maybe [] ((:[]) . ("DYLD_LIBRARY_PATH",)) mdyldpath
@@ -335,7 +337,7 @@ testWithNormalize normalizer pandocPath testname opts inp norm =
-- filter \r so the tests will work on Windows machines
else fail $ "Pandoc failed with error code " ++ show ec
updateGolden = UTF8.writeFile norm . T.pack
- options = ["--data-dir=../data","--quiet"] ++ [inp] ++ opts
+ options = ["--quiet"] ++ [inp] ++ opts
compareValues :: FilePath -> [String] -> String -> String -> IO (Maybe String)
compareValues norm options expected actual = do