[commit: packages/pretty] moretests: Improve test-suite, merging in GHC tests (d45b1be)
git at git.haskell.org
git at git.haskell.org
Fri Jan 23 22:49:52 UTC 2015
Repository : ssh://git@git.haskell.org/pretty
On branch : moretests
Link : http://git.haskell.org/packages/pretty.git/commitdiff/d45b1be45b3e6ec982f1e8b0fe556d3650ee2e60
>---------------------------------------------------------------
commit d45b1be45b3e6ec982f1e8b0fe556d3650ee2e60
Author: David Terei <code at davidterei.com>
Date: Thu Dec 25 23:58:45 2014 -0800
Improve test-suite, merging in GHC tests
>---------------------------------------------------------------
d45b1be45b3e6ec982f1e8b0fe556d3650ee2e60
pretty.cabal | 2 ++
tests/BugSep.hs | 3 +++
tests/T3911.hs | 23 -----------------
tests/T3911.stdout | 4 ---
tests/Test.hs | 6 ++++-
tests/TestUtils.hs | 19 ++++++++++++++
tests/UnitPP1.hs | 76 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
tests/UnitT3911.hs | 25 ++++++++++++++++++
tests/all.T | 2 --
tests/pp1.hs | 18 -------------
tests/pp1.stdout | 4 ---
11 files changed, 130 insertions(+), 52 deletions(-)
diff --git a/pretty.cabal b/pretty.cabal
index dc65a46..c763e25 100644
--- a/pretty.cabal
+++ b/pretty.cabal
@@ -49,6 +49,8 @@ Test-Suite test-pretty
other-modules:
TestGenerators
TestStructures
+ UnitPP1
+ UnitT3911
extensions: CPP, BangPatterns, DeriveGeneric
include-dirs: src/Text/PrettyPrint
diff --git a/tests/BugSep.hs b/tests/BugSep.hs
index 2047480..fe16b80 100644
--- a/tests/BugSep.hs
+++ b/tests/BugSep.hs
@@ -1,3 +1,6 @@
+-- | Demonstration of ambiguity in HughesPJ library at this time. GHC's
+-- internal copy has a different answer than we currently do, preventing them
+-- using our library.
module Main (main) where
import Text.PrettyPrint.HughesPJ
diff --git a/tests/T3911.hs b/tests/T3911.hs
deleted file mode 100644
index 01ccb22..0000000
--- a/tests/T3911.hs
+++ /dev/null
@@ -1,23 +0,0 @@
-
-module Main where
-
-import Text.PrettyPrint.HughesPJ
-
-xs :: [Doc]
-xs = [text "hello",
- nest 10 (text "world")]
-
-d1 :: Doc
-d1 = vcat xs
-
-d2 :: Doc
-d2 = foldr ($$) empty xs
-
-d3 :: Doc
-d3 = foldr ($+$) empty xs
-
-main :: IO ()
-main = do print d1
- print d2
- print d3
-
diff --git a/tests/T3911.stdout b/tests/T3911.stdout
deleted file mode 100644
index 7677e8d..0000000
--- a/tests/T3911.stdout
+++ /dev/null
@@ -1,4 +0,0 @@
-hello world
-hello world
-hello
- world
diff --git a/tests/Test.hs b/tests/Test.hs
index 51f659d..107e32a 100644
--- a/tests/Test.hs
+++ b/tests/Test.hs
@@ -1,4 +1,3 @@
-{-# OPTIONS -XStandaloneDeriving -XDeriveDataTypeable -XPackageImports #-}
-----------------------------------------------------------------------------
-- Module : HughesPJQuickCheck
-- Copyright : (c) 2008 Benedikt Huber
@@ -16,6 +15,9 @@ import PrettyTestVersion
import TestGenerators
import TestStructures
+import UnitPP1
+import UnitT3911
+
import Control.Monad
import Data.Char (isSpace)
import Data.List (intersperse)
@@ -31,6 +33,8 @@ main = do
check_non_prims -- hpc full coverage
check_rendering
check_list_def
+ testPP1
+ testT3911
-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-- Utility functions
diff --git a/tests/TestUtils.hs b/tests/TestUtils.hs
new file mode 100644
index 0000000..24ef7c7
--- /dev/null
+++ b/tests/TestUtils.hs
@@ -0,0 +1,19 @@
+-- | Test-suite framework and utility functions.
+module TestUtils (
+ simpleMatch
+ ) where
+
+import Control.Monad
+import System.Exit
+
+simpleMatch :: String -> String -> String -> IO ()
+simpleMatch test expected actual =
+ when (actual /= expected) $ do
+ putStrLn $ "Test `" ++ test ++ "' failed!"
+ putStrLn "-----------------------------"
+ putStrLn $ "Expected: " ++ expected
+ putStrLn "-----------------------------"
+ putStrLn $ "Actual: " ++ actual
+ putStrLn "-----------------------------"
+ exitFailure
+
diff --git a/tests/UnitPP1.hs b/tests/UnitPP1.hs
new file mode 100644
index 0000000..31217c4
--- /dev/null
+++ b/tests/UnitPP1.hs
@@ -0,0 +1,76 @@
+-- This code used to print an infinite string, by calling 'spaces'
+-- with a negative argument. There's a patch in the library now,
+-- which makes 'spaces' do something sensible when called with a negative
+-- argument, but it really should not happen at all.
+
+module UnitPP1 where
+
+import TestUtils
+
+import Text.PrettyPrint.HughesPJ
+
+ncat :: Doc -> Doc -> Doc
+ncat x y = nest 4 $ cat [ x, y ]
+
+d1, d2 :: Doc
+d1 = foldl1 ncat $ take 50 $ repeat $ char 'a'
+d2 = parens $ sep [ d1, text "+" , d1 ]
+
+testPP1 :: IO ()
+testPP1 = simpleMatch "PP1" expected out
+ where out = show d2
+
+expected :: String
+expected =
+ "(aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\n\
++ a\n\
+ a\n\
+a\n\
+a\n\
+a\n\
+a\n\
+a\n\
+a\n\
+a\n\
+a\n\
+a\n\
+a\n\
+a\n\
+a\n\
+a\n\
+a\n\
+a\n\
+a\n\
+a\n\
+a\n\
+a\n\
+a\n\
+a\n\
+a\n\
+a\n\
+a\n\
+a\n\
+a\n\
+a\n\
+a\n\
+a\n\
+a\n\
+a\n\
+a\n\
+a\n\
+a\n\
+a\n\
+a\n\
+a\n\
+a\n\
+a\n\
+a\n\
+a\n\
+a\n\
+a\n\
+a\n\
+a\n\
+a\n\
+a\n\
+a)"
+
diff --git a/tests/UnitT3911.hs b/tests/UnitT3911.hs
new file mode 100644
index 0000000..39aa1e2
--- /dev/null
+++ b/tests/UnitT3911.hs
@@ -0,0 +1,25 @@
+module UnitT3911 where
+
+import Text.PrettyPrint.HughesPJ
+
+import TestUtils
+
+xs :: [Doc]
+xs = [text "hello",
+ nest 10 (text "world")]
+
+d1, d2, d3 :: Doc
+d1 = vcat xs
+d2 = foldr ($$) empty xs
+d3 = foldr ($+$) empty xs
+
+testT3911 :: IO ()
+testT3911 = simpleMatch "T3911" expected out
+ where out = show d1 ++ "\n" ++ show d2 ++ "\n" ++ show d3
+
+expected :: String
+expected =
+ "hello world\n\
+hello world\n\
+hello\n\
+ world"
diff --git a/tests/all.T b/tests/all.T
deleted file mode 100644
index 81e2c73..0000000
--- a/tests/all.T
+++ /dev/null
@@ -1,2 +0,0 @@
-test('pp1', [expect_broken(1062), only_ways(['normal'])], compile_and_run, [''])
-test('T3911', normal, compile_and_run, [''])
diff --git a/tests/pp1.hs b/tests/pp1.hs
deleted file mode 100644
index 384d565..0000000
--- a/tests/pp1.hs
+++ /dev/null
@@ -1,18 +0,0 @@
--- This code used to print an infinite string, by calling 'spaces'
--- with a negative argument. There's a patch in the library now,
--- which makes 'spaces' do something sensible when called with a negative
--- argument, but it really should not happen at all.
-
-
-module Main where
-
-import Text.PrettyPrint.HughesPJ
-
-
-ncat x y = nest 4 $ cat [ x, y ]
-
-d1 = foldl1 ncat $ take 50 $ repeat $ char 'a'
-d2 = parens $ sep [ d1, text "+" , d1 ]
-
-main = print d2
-
diff --git a/tests/pp1.stdout b/tests/pp1.stdout
deleted file mode 100644
index 6915311..0000000
--- a/tests/pp1.stdout
+++ /dev/null
@@ -1,4 +0,0 @@
-This output is not what is expected, becuase the
-test "works" now, by virtue of a hack in HughesPJ.spaces.
-I'm leaving this strange output here to remind us to look
-at the root cause of the problem. Sometime.
\ No newline at end of file
More information about the ghc-commits
mailing list