{-# LANGUAGE TemplateHaskell, DeriveDataTypeable #-} module Main where import Test.Framework import Test.Framework.Providers.Feat import Test.Feat import Data.Typeable import Data.Monoid import Control.Applicative import Test.Framework.Options data Expr = Add Expr Expr | I Int deriving(Show, Read, Eq, Typeable) deriveEnumerable ''Expr showReadRoundTrip :: Expr -> Bool showReadRoundTrip a = a == (read . show) a defOptions = mempty -- This should fail showReadRoundTrip' :: Expr -> Bool showReadRoundTrip' a = Add a a == (read . show) a main = defaultMainWithOpts [ testFeat "should work" showReadRoundTrip --, testFeat "this shouldn't" showReadRoundTrip' ] (defOptions { ropt_test_options = (\x -> x { topt_maximum_generated_tests = Just 10000 }) <$> Just mempty })