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 +6/−0
- cabal-detailed-quickcheck.cabal +23/−8
- lib/Distribution/TestSuite/QuickCheck.hs +0/−2
- tests/Tests.hs +48/−0
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})