diff options
author | Miran <narimiran@disroot.org> | 2020-11-12 22:25:23 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-11-12 22:25:23 +0100 |
commit | d0c4c738b955f2641baa55ece6b5b90d4e632d8c (patch) | |
tree | 68d5210cfc94e29b84d6755a691da8a60220f737 /nimdoc/rsttester.nim | |
parent | 1413818aa14fd694d362326f428b470fa22e1a0a (diff) | |
download | Nim-d0c4c738b955f2641baa55ece6b5b90d4e632d8c.tar.gz |
add a tester for rst2html (#15936)
Diffstat (limited to 'nimdoc/rsttester.nim')
-rw-r--r-- | nimdoc/rsttester.nim | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/nimdoc/rsttester.nim b/nimdoc/rsttester.nim new file mode 100644 index 000000000..6d41ffb86 --- /dev/null +++ b/nimdoc/rsttester.nim @@ -0,0 +1,34 @@ +import os, strutils + +const + baseDir = "nimdoc/rst2html" + +var failures = 0 + +proc exec(cmd: string) = + if execShellCmd(cmd) != 0: + quit("FAILURE: " & cmd) + +proc testRst2Html(fixup = false) = + putEnv("SOURCE_DATE_EPOCH", "100000") + const nimExe = getCurrentCompilerExe() # so that `bin/nim_temp r nimdoc/tester.nim` works + + for expectedHtml in walkDir(baseDir / "expected"): + let expectedHtml = expectedHtml.path + let sourceFile = expectedHtml.replace('\\', '/').replace("/expected/", "/source/").replace(".html", ".rst") + exec("$1 rst2html $2" % [nimExe, sourceFile]) + let producedHtml = expectedHtml.replace('\\', '/').replace("/expected/", "/source/htmldocs/") + if readFile(expectedHtml) != readFile(producedHtml): + discard execShellCmd("diff -uNdr " & expectedHtml & " " & producedHtml) + inc failures + if fixup: + copyFile(producedHtml, expectedHtml) + else: + echo "SUCCESS: files identical: ", producedHtml + if failures == 0: + removeDir(baseDir / "source/htmldocs") + +testRst2Html(defined(fixup)) + +# Check for failures +if failures > 0: quit($failures & " failures occurred.") |