diff options
| -rw-r--r-- | tests/html-tests/README | 6 | ||||
| -rw-r--r-- | tests/html-tests/accept.hs | 30 | 
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=\"\">"  | 
