packages feed

test-framework-quickcheck2 0.3.0.1 → 0.3.0.7

raw patch · 4 files changed

Files

+ ChangeLog.md view
@@ -0,0 +1,25 @@+## 0.3.0.7++_2026-01-05, Andreas Abel_++- Remove obsolete `deriving Typeable`+- Tested building with GHC 8.0 - 9.14.1++## 0.3.0.6++_2025-02-26, Andreas Abel_++- Support `random-1.3` and other latest dependencies+- Drop support for GHC 7+- Drop support for dependency versions that predate Stackage LTS 9.21+- Tested building with GHC 8.0 - 9.12.1++## 0.3.0.5++- Add support for `QuickCheck-2.12`++## 0.3.0.4++- Add support for `Quickcheck >= 2.8 && < 2.11`'s `InsufficientCoverage` status result+- Drop support for GHC < 7.0 (require `Haskell2010` support)+- Prevent `maxDiscardRatio` from becoming zero
− Setup.lhs
@@ -1,4 +0,0 @@-#! /usr/bin/env runhaskell--> import Distribution.Simple-> main = defaultMain
Test/Framework/Providers/QuickCheck2.hs view
@@ -1,7 +1,12 @@-{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE CPP #-}+{-# LANGUAGE ExistentialQuantification #-}+{-# LANGUAGE MultiParamTypeClasses #-}+{-# LANGUAGE TypeOperators #-}+{-# LANGUAGE TypeSynonymInstances #-}+ -- | Allows QuickCheck2 properties to be used with the test-framework package. ----- For an example of how to use test-framework, please see <http://github.com/batterseapower/test-framework/raw/master/example/Test/Framework/Example.lhs>+-- For an example of how to use @test-framework@, please see <https://github.com/haskell/test-framework/raw/master/example/Test/Framework/Example.lhs>. module Test.Framework.Providers.QuickCheck2 (         testProperty     ) where@@ -11,8 +16,8 @@ import Test.QuickCheck.Property (Testable, Callback(PostTest), CallbackKind(NotCounterexample), callback) import Test.QuickCheck.State (numSuccessTests) import Test.QuickCheck.Test--import Data.Typeable+import Test.QuickCheck.Random (QCGen, mkQCGen)+import System.Random (randomIO)   -- | Create a 'Test' for a QuickCheck2 'Testable' property@@ -39,6 +44,9 @@                     | PropertyFalsifiable String String -- ^ The property was not true. The strings are the reason and the output.                     | PropertyNoExpectedFailure         -- ^ We expected that a property would fail but it didn't                     | PropertyTimedOut                  -- ^ The property timed out during execution+#if !MIN_VERSION_QuickCheck(2,12,0)+                    | PropertyInsufficientCoverage      -- ^ The tests passed but a use of 'cover' had insufficient coverage.+#endif  instance Show PropertyResult where     show (PropertyResult { pr_status = status, pr_used_seed = used_seed, pr_tests_run = mb_tests_run })@@ -48,6 +56,9 @@             PropertyFalsifiable _rsn otpt -> otpt ++ "(used seed " ++ show used_seed ++ ")"             PropertyNoExpectedFailure     -> "No expected failure with seed " ++ show used_seed ++ ", after " ++ tests_run_str ++ " tests"             PropertyTimedOut              -> "Timed out after " ++ tests_run_str ++ " tests"+#if !MIN_VERSION_QuickCheck(2,12,0)+            PropertyInsufficientCoverage  -> "Insufficient coverage after " ++ tests_run_str ++ " tests"+#endif       where         tests_run_str = fmap show mb_tests_run `orElse` "an unknown number of" @@ -59,24 +70,25 @@   data Property = forall a. Testable a => Property a-    deriving Typeable  instance Testlike PropertyTestCount PropertyResult Property where     runTest topts (Property testable) = runProperty topts testable     testTypeName _ = "Properties" +newSeededQCGen :: Seed -> IO (QCGen, Int)+newSeededQCGen (FixedSeed seed) = return $ (mkQCGen seed, seed)+newSeededQCGen RandomSeed = do+  seed <- randomIO+  return (mkQCGen seed, seed)+ runProperty :: Testable a => CompleteTestOptions -> a -> IO (PropertyTestCount :~> PropertyResult, IO ()) runProperty topts testable = do-    (gen, seed) <- newSeededStdGen (unK $ topt_seed topts)+    (gen, seed) <- newSeededQCGen (unK $ topt_seed topts)     let max_success = unK $ topt_maximum_generated_tests topts         max_discard = unK $ topt_maximum_unsuitable_generated_tests topts         args = stdArgs { replay = Just (gen, 0) -- NB: the 0 is the saved size. Defaults to 0 if you supply "Nothing" for "replay".                        , maxSuccess = max_success-#if MIN_VERSION_QuickCheck(2,5,0)-                       , maxDiscardRatio = max_discard `div` max_success-#else-                       , maxDiscard = max_discard-#endif+                       , maxDiscardRatio = (max_discard `div` max_success) + 1                        , maxSize = unK $ topt_maximum_test_size topts                        , chatty = False }     -- FIXME: yield gradual improvement after each test@@ -96,3 +108,6 @@     toPropertyStatus (GaveUp {})                               = PropertyArgumentsExhausted     toPropertyStatus (Failure { reason = rsn, output = otpt }) = PropertyFalsifiable rsn otpt     toPropertyStatus (NoExpectedFailure {})                    = PropertyNoExpectedFailure+#if !MIN_VERSION_QuickCheck(2,12,0)+    toPropertyStatus (InsufficientCoverage _ _ _)              = PropertyInsufficientCoverage+#endif
test-framework-quickcheck2.cabal view
@@ -1,38 +1,56 @@+Cabal-Version:       1.18 Name:                test-framework-quickcheck2-Version:             0.3.0.1-Cabal-Version:       >= 1.2.3+Version:             0.3.0.7+ Category:            Testing-Synopsis:            QuickCheck2 support for the test-framework package.+Synopsis:            QuickCheck-2 support for the test-framework package. License:             BSD3 License-File:        LICENSE Author:              Max Bolingbroke <batterseapower@hotmail.com>-Maintainer:          Max Bolingbroke <batterseapower@hotmail.com>-Homepage:            http://batterseapower.github.com/test-framework/+Maintainer:          Andreas Abel+Homepage:            https://github.com/haskell/test-framework#readme+Bug-Reports:         https://github.com/haskell/test-framework/issues Build-Type:          Simple--Flag Base4-        Description:    Choose base version 4-        Default:        True+Description:         Allows @QuickCheck-2@ properties to be used with the </package/test-framework test-framework package>. -Flag Base3-        Description:    Choose base version 3-        Default:        False+Tested-With:+  GHC == 9.14.1+  GHC == 9.12.2+  GHC == 9.10.3+  GHC == 9.8.4+  GHC == 9.6.7+  GHC == 9.4.8+  GHC == 9.2.8+  GHC == 9.0.2+  GHC == 8.10.7+  GHC == 8.8.4+  GHC == 8.6.5+  GHC == 8.4.4+  GHC == 8.2.2+  GHC == 8.0.2 +extra-doc-files:  ChangeLog.md  Library+        Default-Language:       Haskell2010+        Other-Extensions:       CPP+                                DeriveDataTypeable+                                ExistentialQuantification+                                MultiParamTypeClasses+                                TypeOperators+                                TypeSynonymInstances+         Exposed-Modules:        Test.Framework.Providers.QuickCheck2 -        Build-Depends:          test-framework >= 0.7.1, QuickCheck >= 2.4 && < 2.6, extensible-exceptions >= 0.1.1 && < 0.2.0-        if flag(base3)-                Build-Depends:          base >= 3 && < 4, random >= 1-        else-                if flag(base4)-                        Build-Depends:          base >= 4 && < 5, random >= 1+        Build-Depends:          test-framework        == 0.8.*+                              , QuickCheck            >= 2.9.2  && < 3+                              , base                  >= 4.9    && < 5+                              , random                >= 1      && < 1.4 -        Extensions:             TypeSynonymInstances-                                TypeOperators-                                MultiParamTypeClasses-                                ExistentialQuantification-                                CPP+        Ghc-Options:            -Wno-deprecations+                                   -- This package is legacy and won't address deprecation warnings. -        Ghc-Options:            -Wall+Source-Repository head+  Type:     git+  Location: https://github.com/haskell/test-framework.git+  subdir:   quickcheck2