aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--tests/html-tests/README6
-rw-r--r--tests/html-tests/accept.hs30
2 files changed, 33 insertions, 3 deletions
diff --git a/tests/html-tests/README b/tests/html-tests/README
index 644d0a71..9afb10e7 100644
--- a/tests/html-tests/README
+++ b/tests/html-tests/README
@@ -9,12 +9,12 @@ To add a new test:
passes since there is no reference file to compare with.
3) To make a reference file from the output file, do
- runhaskell copy.hs <modulename>
+ runhaskell accept.hs <modulename>
Tips and tricks:
-To copy all output files into reference files, run
- runhaskell copy.hs
+To "accept" all output files (copy them to reference files), run
+ runhaskell accept.hs
You can run all tests despite failing tests, like so
cabal test --test-option=all
diff --git a/tests/html-tests/accept.hs b/tests/html-tests/accept.hs
new file mode 100644
index 00000000..fa18fe9c
--- /dev/null
+++ b/tests/html-tests/accept.hs
@@ -0,0 +1,30 @@
+import System.Cmd
+import System.Environment
+import System.FilePath
+import System.Exit
+import System.Directory
+import Data.List
+import Control.Monad
+import Text.Regex
+
+
+main = do
+ args <- getArgs
+ dir <- getCurrentDirectory
+ contents <- getDirectoryContents (dir </> "output")
+ if not $ null args
+ then
+ mapM copy [ "output" </> file | file <- contents, ".html" `isSuffixOf` file, takeBaseName file `elem` args ]
+ else
+ mapM copy [ "output" </> file | file <- contents, ".html" `isSuffixOf` file ]
+
+
+copy file = do
+ let new = "tests" </> takeFileName file <.> ".ref"
+ print file
+ print new
+ contents <- readFile file
+ writeFile new (stripLinks contents)
+
+
+stripLinks f = subRegex (mkRegexWithOpts "<A HREF=[^>]*>" False False) f "<A HREF=\"\">"