packages feed

cabal-detailed-quickcheck 0.2.0.1 → 0.3.0.0

raw patch · 4 files changed

+77/−10 lines, 4 filesdep +cabal-detailed-quickcheckdep ~Cabaldep ~QuickCheckPVP ok

version bump matches the API change (PVP)

Dependencies added: cabal-detailed-quickcheck

Dependency ranges changed: Cabal, QuickCheck

API changes (from Hackage documentation)

- Distribution.TestSuite.QuickCheck: instance GHC.Enum.Bounded Distribution.TestSuite.QuickCheck.Verbosity
- Distribution.TestSuite.QuickCheck: instance GHC.Enum.Enum Distribution.TestSuite.QuickCheck.Verbosity
- Distribution.TestSuite.QuickCheck: instance GHC.Read.Read Distribution.TestSuite.QuickCheck.Verbosity
- Distribution.TestSuite.QuickCheck: instance GHC.Show.Show Distribution.TestSuite.QuickCheck.Verbosity
+ Distribution.TestSuite.QuickCheck: instance GHC.Internal.Enum.Bounded Distribution.TestSuite.QuickCheck.Verbosity
+ Distribution.TestSuite.QuickCheck: instance GHC.Internal.Enum.Enum Distribution.TestSuite.QuickCheck.Verbosity
+ Distribution.TestSuite.QuickCheck: instance GHC.Internal.Read.Read Distribution.TestSuite.QuickCheck.Verbosity
+ Distribution.TestSuite.QuickCheck: instance GHC.Internal.Show.Show Distribution.TestSuite.QuickCheck.Verbosity

Files

CHANGELOG.md view
@@ -1,5 +1,11 @@ # Revision history for cabal-detailed-quickcheck +## 0.3.0.0 — 2026-03-30++* Updated dependencies+* Updated language to GHC2021+* Added tests+ ## 0.2.0.1 — 2022-10-29  * Broaden version bounds
cabal-detailed-quickcheck.cabal view
@@ -1,6 +1,6 @@-cabal-version:      2.4+cabal-version:      3.4 name:               cabal-detailed-quickcheck-version:            0.2.0.1+version:            0.3.0.0 synopsis:           QuickCheck for Cabal tests description:        Turn QuickCheck properties into detailed Cabal tests homepage:           https://github.com/schuelermine/cabal-detailed-quickcheck@@ -14,15 +14,30 @@ extra-source-files: CHANGELOG.md                     README.md +tested-with:        GHC == 9.10.3++common basic-config+    build-depends:      +        base >=4 && <5,+        QuickCheck >=2.14.2 && <2.19,+        Cabal >=3.6 && <3.17+    default-language:   GHC2021+ library+    import:             basic-config     exposed-modules:    Distribution.TestSuite.QuickCheck-    build-depends:      -        base >=4&&<5,-        QuickCheck ^>=2.14.2,-        Cabal >=3.6&&<3.9     hs-source-dirs:     lib-    default-language:   Haskell2010 +test-suite test+    import:             basic-config+    hs-source-dirs:     tests+    build-depends:      cabal-detailed-quickcheck+    type:               detailed-0.9+    test-module:        Tests+    -- | Tests require /dev/null to exist+    if !os(linux)+        buildable:      False+ source-repository head     type:               git     location:           https://github.com/schuelermine/cabal-detailed-quickcheck.git@@ -31,4 +46,4 @@ source-repository this     type:               git     location:           https://github.com/schuelermine/cabal-detailed-quickcheck.git-    tag:                0.2.0.1+    tag:                0.3.0.0
lib/Distribution/TestSuite/QuickCheck.hs view
@@ -1,7 +1,5 @@ {-# LANGUAGE BlockArguments #-}-{-# LANGUAGE NamedFieldPuns #-} {-# LANGUAGE RecordWildCards #-}-{-# LANGUAGE TypeApplications #-}  -- | -- Module:       Distribution.TestSuite.QuickCheck
+ tests/Tests.hs view
@@ -0,0 +1,48 @@+{-# LANGUAGE BlockArguments #-}+{-# LANGUAGE ViewPatterns #-}+module Tests where++import Data.Maybe (maybeToList)+import Distribution.TestSuite (Test)+import Distribution.TestSuite.QuickCheck+import System.CPUTime (getCPUTime)+import System.IO (hFlush, withFile, IOMode(WriteMode))+import Test.QuickCheck+  ( Positive,+    Testable,+    getPositive,+    ioProperty,+    (===), verbose,+  )++tests :: IO [Test]+tests =+  return [+    mkPT+      PropertyTest+        { name = "law-of-identity",+          tags = [],+          property = \(i :: Integer) -> i === i+        },+    mkPT+      PropertyTest+        { name = "monotonicity-of-addition",+          tags = [],+          property = \(getPositive -> a :: Integer) (getPositive -> b :: Integer) ->+            0 <= a + b+        }, mkPT+      PropertyTest+        { name = "monotinicity-time",+          tags = [],+          property = ioProperty do+            timeBefore <- getCPUTime+            withFile "/dev/null" WriteMode \handle -> do+              mapM_ print [1..10000]+              hFlush handle+            timeAfter <- getCPUTime+            return (timeBefore < timeAfter)+        }+  ]+  where+    mkPT :: Testable prop => PropertyTest prop -> Test+    mkPT = getPropertyTestWith (stdTestArgs {verbosity = Verbose})