testsuite: Add minimal test for :doc command
authorTakenobu Tani <takenobu.hs@gmail.com>
Sat, 28 Sep 2019 05:02:01 +0000 (14:02 +0900)
committerMarge Bot <ben+marge-bot@smart-cactus.org>
Tue, 1 Oct 2019 02:42:53 +0000 (22:42 -0400)
Currently, there are no testcases for GHCi `:doc` command.
Perhaps because it was experimental. And it could be changed in the future.

But `:doc` command is already useful, so I add a minimal regression test
to keep current behavior.

See also 85309a3cda for implementation of `:doc` command.

testsuite/tests/ghci/scripts/all.T
testsuite/tests/ghci/scripts/ghci065.hs [new file with mode: 0644]
testsuite/tests/ghci/scripts/ghci065.script [new file with mode: 0644]
testsuite/tests/ghci/scripts/ghci065.stdout [new file with mode: 0644]

index 9ba9751..dedca95 100755 (executable)
@@ -107,6 +107,7 @@ test('ghci062', [extra_files(['ghci062/', 'ghci062/Test.hs']),
                ghci_script, ['ghci062.script'])
 test('ghci063', normal, ghci_script, ['ghci063.script'])
 test('ghci064', normal, ghci_script, ['ghci064.script'])
+test('ghci065', [extra_hc_opts("-haddock")], ghci_script, ['ghci065.script'])
 test('T2452', [extra_hc_opts("-fno-implicit-import-qualified")],
     ghci_script, ['T2452.script'])
 test('T2766', normal, ghci_script, ['T2766.script'])
diff --git a/testsuite/tests/ghci/scripts/ghci065.hs b/testsuite/tests/ghci/scripts/ghci065.hs
new file mode 100644 (file)
index 0000000..7035b48
--- /dev/null
@@ -0,0 +1,28 @@
+--
+-- This is a minimal test for :doc command.
+--
+-- To avoid depending haddock's pretty-printing,
+-- this test is constructed with simple text (without markup) only.
+--
+
+module Test where
+
+-- | This is the haddock comment of a data declaration for Data1.
+data Data1 = Val1a | Val1b
+
+data Data2 = Val2a  -- ^ This is the haddock comment of a data value for Val2a
+           | Val2b  -- ^ This is the haddock comment of a data value for Val2b
+
+
+-- | This is the haddock comment of a function declaration for func1.
+func1 :: Int -> Int -> Int
+func1 x y = x + y
+
+-- This is NOT a haddock comment.
+func2 :: Int -> Int -> Int
+func2 x y = x + y
+
+-- | This is the haddock comment of a function declaration for func3.
+-- Here's multiple line comment for func3.
+func3 :: Int -> Int -> Int
+func3 x y = x + y
diff --git a/testsuite/tests/ghci/scripts/ghci065.script b/testsuite/tests/ghci/scripts/ghci065.script
new file mode 100644 (file)
index 0000000..ec51b24
--- /dev/null
@@ -0,0 +1,11 @@
+-- Testing :doc command simply
+
+:load ghci065
+
+:doc Data1
+:doc Val2a
+:doc Val2b
+
+:doc func1
+:doc func2
+:doc func3
diff --git a/testsuite/tests/ghci/scripts/ghci065.stdout b/testsuite/tests/ghci/scripts/ghci065.stdout
new file mode 100644 (file)
index 0000000..c3d69ca
--- /dev/null
@@ -0,0 +1,7 @@
+ This is the haddock comment of a data declaration for Data1.
+ This is the haddock comment of a data value for Val2a
+ This is the haddock comment of a data value for Val2b
+ This is the haddock comment of a function declaration for func1.
+<has no documentation>
+ This is the haddock comment of a function declaration for func3.
+ Here's multiple line comment for func3.