aboutsummaryrefslogtreecommitdiff
path: root/test/test-pandoc.hs
blob: fcb157fb7e46033590580ce57828f962ea357ba7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
{-# OPTIONS_GHC -Wall #-}

module Main where

import System.Environment (getArgs, getExecutablePath)
import qualified Control.Exception as E
import Text.Pandoc.App (convertWithOpts, defaultOpts, options,
                        parseOptionsFromArgs)
import Text.Pandoc.Error (handleError)
import GHC.IO.Encoding
import Test.Tasty
import qualified Tests.Command
import qualified Tests.Lua
import qualified Tests.Lua.Module
import qualified Tests.Old
import qualified Tests.Readers.Creole
import qualified Tests.Readers.Docx
import qualified Tests.Readers.DokuWiki
import qualified Tests.Readers.EPUB
import qualified Tests.Readers.FB2
import qualified Tests.Readers.HTML
import qualified Tests.Readers.JATS
import qualified Tests.Readers.Jira
import qualified Tests.Readers.LaTeX
import qualified Tests.Readers.Markdown
import qualified Tests.Readers.Muse
import qualified Tests.Readers.Odt
import qualified Tests.Readers.Org
import qualified Tests.Readers.RST
import qualified Tests.Readers.RTF
import qualified Tests.Readers.Txt2Tags
import qualified Tests.Readers.Man
import qualified Tests.Shared
import qualified Tests.Writers.AsciiDoc
import qualified Tests.Writers.ConTeXt
import qualified Tests.Writers.Docbook
import qualified Tests.Writers.Docx
import qualified Tests.Writers.FB2
import qualified Tests.Writers.HTML
import qualified Tests.Writers.JATS
import qualified Tests.Writers.Jira
import qualified Tests.Writers.LaTeX
import qualified Tests.Writers.Markdown
import qualified Tests.Writers.Ms
import qualified Tests.Writers.Muse
import qualified Tests.Writers.Native
import qualified Tests.Writers.Org
import qualified Tests.Writers.Plain
import qualified Tests.Writers.Powerpoint
import qualified Tests.Writers.RST
import qualified Tests.Writers.AnnotatedTable
import qualified Tests.Writers.TEI
import qualified Tests.Writers.Markua
import Text.Pandoc.Shared (inDirectory)

tests :: FilePath -> TestTree
tests pandocPath = testGroup "pandoc tests"
        [ Tests.Command.tests
        , testGroup "Old" (Tests.Old.tests pandocPath)
        , testGroup "Shared" Tests.Shared.tests
        , testGroup "Writers"
          [ testGroup "Native" Tests.Writers.Native.tests
          , testGroup "ConTeXt" Tests.Writers.ConTeXt.tests
          , testGroup "LaTeX" Tests.Writers.LaTeX.tests
          , testGroup "HTML" Tests.Writers.HTML.tests
          , testGroup "JATS" Tests.Writers.JATS.tests
          , testGroup "Jira" Tests.Writers.Jira.tests
          , testGroup "Docbook" Tests.Writers.Docbook.tests
          , testGroup "Markdown" Tests.Writers.Markdown.tests
          , testGroup "Org" Tests.Writers.Org.tests
          , testGroup "Plain" Tests.Writers.Plain.tests
          , testGroup "AsciiDoc" Tests.Writers.AsciiDoc.tests
          , testGroup "Docx" Tests.Writers.Docx.tests
          , testGroup "RST" Tests.Writers.RST.tests
          , testGroup "TEI" Tests.Writers.TEI.tests
          , testGroup "markua" Tests.Writers.Markua.tests
          , testGroup "Muse" Tests.Writers.Muse.tests
          , testGroup "FB2" Tests.Writers.FB2.tests
          , testGroup "PowerPoint" Tests.Writers.Powerpoint.tests
          , testGroup "Ms" Tests.Writers.Ms.tests
          , testGroup "AnnotatedTable" Tests.Writers.AnnotatedTable.tests
          ]
        , testGroup "Readers"
          [ testGroup "LaTeX" Tests.Readers.LaTeX.tests
          , testGroup "Markdown" Tests.Readers.Markdown.tests
          , testGroup "HTML" Tests.Readers.HTML.tests
          , testGroup "JATS" Tests.Readers.JATS.tests
          , testGroup "Jira" Tests.Readers.Jira.tests
          , testGroup "Org" Tests.Readers.Org.tests
          , testGroup "RST" Tests.Readers.RST.tests
          , testGroup "RTF" Tests.Readers.RTF.tests
          , testGroup "Docx" Tests.Readers.Docx.tests
          , testGroup "Odt" Tests.Readers.Odt.tests
          , testGroup "Txt2Tags" Tests.Readers.Txt2Tags.tests
          , testGroup "EPUB" Tests.Readers.EPUB.tests
          , testGroup "Muse" Tests.Readers.Muse.tests
          , testGroup "Creole" Tests.Readers.Creole.tests
          , testGroup "Man" Tests.Readers.Man.tests
          , testGroup "FB2" Tests.Readers.FB2.tests
          , testGroup "DokuWiki" Tests.Readers.DokuWiki.tests
          ]
        ,  testGroup "Lua"
          [ testGroup "Lua filters" Tests.Lua.tests
          , testGroup "Lua modules" Tests.Lua.Module.tests
          ]
        ]

main :: IO ()
main = do
  setLocaleEncoding utf8
  args <- getArgs
  case args of
    "--emulate":args' -> -- emulate pandoc executable
          E.catch
            (parseOptionsFromArgs options defaultOpts "pandoc" args' >>=
              convertWithOpts)
            (handleError . Left)
    _ -> inDirectory "test" $ do
           fp <- getExecutablePath
           -- putStrLn $ "Using pandoc executable at " ++ fp
           defaultMain $ tests fp