forked from pool/ghc-QuickCheck
OBS-URL: https://build.opensuse.org/package/show/devel:languages:haskell/ghc-QuickCheck?expand=0&rev=80
282 lines
8.8 KiB
Plaintext
282 lines
8.8 KiB
Plaintext
Name: QuickCheck
|
|
Version: 2.15.0.1
|
|
x-revision: 1
|
|
Cabal-Version: >= 1.10
|
|
Build-type: Simple
|
|
License: BSD3
|
|
License-file: LICENSE
|
|
Copyright: 2000-2019 Koen Claessen, 2006-2008 Björn Bringert, 2009-2019 Nick Smallbone
|
|
Author: Koen Claessen <koen@chalmers.se>
|
|
Maintainer: Nick Smallbone <nick@smallbone.se>
|
|
Bug-reports: https://github.com/nick8325/quickcheck/issues
|
|
Tested-with: GHC == 7.0.4 ||
|
|
== 7.2.2 ||
|
|
== 7.4.1 ||
|
|
== 7.4.2 ||
|
|
== 7.6.3 ||
|
|
== 7.8.4 ||
|
|
== 7.10.3 ||
|
|
== 8.0.2 ||
|
|
>= 8.2.2 && < 9.10
|
|
Homepage: https://github.com/nick8325/quickcheck
|
|
Category: Testing
|
|
Synopsis: Automatic testing of Haskell programs
|
|
Description:
|
|
QuickCheck is a library for random testing of program properties.
|
|
The programmer provides a specification of the program, in the form of
|
|
properties which functions should satisfy, and QuickCheck then tests that the
|
|
properties hold in a large number of randomly generated cases.
|
|
Specifications are expressed in Haskell, using combinators provided by
|
|
QuickCheck. QuickCheck provides combinators to define properties, observe the
|
|
distribution of test data, and define test data generators.
|
|
.
|
|
Most of QuickCheck's functionality is exported by the main "Test.QuickCheck"
|
|
module. The main exception is the monadic property testing library in
|
|
"Test.QuickCheck.Monadic".
|
|
.
|
|
If you are new to QuickCheck, you can try looking at the following resources:
|
|
.
|
|
* The <http://www.cse.chalmers.se/~rjmh/QuickCheck/manual.html official QuickCheck manual>.
|
|
It's a bit out-of-date in some details and doesn't cover newer QuickCheck features,
|
|
but is still full of good advice.
|
|
* <https://begriffs.com/posts/2017-01-14-design-use-quickcheck.html>,
|
|
a detailed tutorial written by a user of QuickCheck.
|
|
.
|
|
The <https://hackage.haskell.org/package/quickcheck-instances quickcheck-instances>
|
|
companion package provides instances for types in Haskell Platform packages
|
|
at the cost of additional dependencies.
|
|
|
|
extra-source-files:
|
|
README
|
|
changelog
|
|
examples/Heap.hs
|
|
examples/Heap_Program.hs
|
|
examples/Heap_ProgramAlgebraic.hs
|
|
examples/Lambda.hs
|
|
examples/Merge.hs
|
|
examples/Set.hs
|
|
examples/Simple.hs
|
|
make-hugs
|
|
test-hugs
|
|
|
|
source-repository head
|
|
type: git
|
|
location: https://github.com/nick8325/quickcheck
|
|
|
|
source-repository this
|
|
type: git
|
|
location: https://github.com/nick8325/quickcheck
|
|
tag: 2.15.0.1
|
|
|
|
flag templateHaskell
|
|
Description: Build Test.QuickCheck.All, which uses Template Haskell.
|
|
Default: True
|
|
Manual: True
|
|
|
|
flag old-random
|
|
Description: Build against a pre-1.2.0 version of the random package.
|
|
Default: False
|
|
Manual: False
|
|
|
|
library
|
|
Hs-source-dirs: src
|
|
Build-depends: base >=4.3 && <5, containers
|
|
Default-language: Haskell2010
|
|
|
|
-- New vs old random.
|
|
if flag(old-random)
|
|
Build-depends: random >= 1.0.0.3 && < 1.2.0
|
|
cpp-options: -DOLD_RANDOM
|
|
else
|
|
Build-depends: random >= 1.2.0 && < 1.4
|
|
|
|
-- We always use splitmix directly rather than going through StdGen
|
|
-- (it's somewhat more efficient).
|
|
-- However, Hugs traps overflow on Word64, so we have to stick
|
|
-- with StdGen there.
|
|
if impl(hugs)
|
|
cpp-options: -DNO_SPLITMIX
|
|
else
|
|
Build-depends: splitmix >= 0.1.0.2 && <0.2
|
|
|
|
-- Modules that are always built.
|
|
Exposed-Modules:
|
|
Test.QuickCheck,
|
|
Test.QuickCheck.Arbitrary,
|
|
Test.QuickCheck.Gen,
|
|
Test.QuickCheck.Gen.Unsafe,
|
|
Test.QuickCheck.Monadic,
|
|
Test.QuickCheck.Modifiers,
|
|
Test.QuickCheck.Property,
|
|
Test.QuickCheck.Test,
|
|
Test.QuickCheck.Text,
|
|
Test.QuickCheck.Poly,
|
|
Test.QuickCheck.State,
|
|
Test.QuickCheck.Random,
|
|
Test.QuickCheck.Exception,
|
|
Test.QuickCheck.Features
|
|
|
|
-- GHC-specific modules.
|
|
if impl(ghc)
|
|
Exposed-Modules: Test.QuickCheck.Function
|
|
Build-depends: transformers >= 0.3, deepseq >= 1.1.0.0
|
|
else
|
|
cpp-options: -DNO_TRANSFORMERS -DNO_DEEPSEQ
|
|
|
|
if impl(ghc) && flag(templateHaskell)
|
|
Build-depends: template-haskell >= 2.4
|
|
if impl(ghc >=8.0)
|
|
Other-Extensions: TemplateHaskellQuotes
|
|
else
|
|
Other-Extensions: TemplateHaskell
|
|
Exposed-Modules: Test.QuickCheck.All
|
|
else
|
|
cpp-options: -DNO_TEMPLATE_HASKELL
|
|
|
|
if !impl(ghc >= 8.0)
|
|
cpp-options: -DNO_CALLSTACK
|
|
|
|
if !impl(ghc >= 7.4)
|
|
cpp-options: -DNO_CTYPES_CONSTRUCTORS -DNO_FOREIGN_C_USECONDS
|
|
|
|
-- The new generics appeared in GHC 7.2...
|
|
if impl(ghc < 7.2)
|
|
cpp-options: -DNO_GENERICS
|
|
-- ...but in 7.2-7.4 it lives in the ghc-prim package.
|
|
if impl(ghc >= 7.2) && impl(ghc < 7.6)
|
|
Build-depends: ghc-prim
|
|
|
|
-- Safe Haskell appeared in GHC 7.2, but GHC.Generics isn't safe until 7.4.
|
|
if impl (ghc < 7.4)
|
|
cpp-options: -DNO_SAFE_HASKELL
|
|
|
|
-- random is explicitly Trustworthy since 1.0.1.0
|
|
-- similar constraint for containers
|
|
if impl(ghc >= 7.2)
|
|
Build-depends: random >=1.0.1.0
|
|
if impl(ghc >= 7.4)
|
|
Build-depends: containers >=0.4.2.1
|
|
|
|
if !impl(ghc >= 7.6)
|
|
cpp-options: -DNO_POLYKINDS
|
|
|
|
if !impl(ghc >= 8.0)
|
|
cpp-options: -DNO_MONADFAIL
|
|
|
|
if impl(ghc >= 9.8)
|
|
ghc-options: -Wno-x-partial
|
|
|
|
-- Switch off most optional features on non-GHC systems.
|
|
if !impl(ghc)
|
|
-- If your Haskell compiler can cope without some of these, please
|
|
-- send a message to the QuickCheck mailing list!
|
|
cpp-options: -DNO_TIMEOUT -DNO_NEWTYPE_DERIVING -DNO_GENERICS
|
|
-DNO_TEMPLATE_HASKELL -DNO_SAFE_HASKELL -DNO_TYPEABLE -DNO_GADTS
|
|
-DNO_EXTRA_METHODS_IN_APPLICATIVE -DOLD_RANDOM -DNO_CALLSTACK
|
|
if !impl(hugs) && !impl(uhc)
|
|
cpp-options: -DNO_ST_MONAD -DNO_MULTI_PARAM_TYPE_CLASSES
|
|
|
|
-- LANGUAGE pragmas don't have any effect in Hugs.
|
|
if impl(hugs)
|
|
Default-Extensions: CPP
|
|
|
|
if impl(uhc)
|
|
-- Cabal under UHC needs pointing out all the dependencies of the
|
|
-- random package.
|
|
Build-depends: old-time, old-locale
|
|
-- Plus some bits of the standard library are missing.
|
|
cpp-options: -DNO_FIXED -DNO_EXCEPTIONS
|
|
|
|
Test-Suite test-quickcheck
|
|
type: exitcode-stdio-1.0
|
|
Default-language: Haskell2010
|
|
hs-source-dirs:
|
|
examples
|
|
main-is: Heap.hs
|
|
build-depends: base, QuickCheck
|
|
if !flag(templateHaskell)
|
|
Buildable: False
|
|
|
|
Test-Suite test-quickcheck-gcoarbitrary
|
|
type: exitcode-stdio-1.0
|
|
Default-language: Haskell2010
|
|
hs-source-dirs: tests
|
|
main-is: GCoArbitraryExample.hs
|
|
build-depends: base, QuickCheck
|
|
if !flag(templateHaskell) || !impl(ghc >= 7.2)
|
|
buildable: False
|
|
if impl(ghc >= 7.2) && impl(ghc < 7.6)
|
|
build-depends: ghc-prim
|
|
|
|
Test-Suite test-quickcheck-generators
|
|
type: exitcode-stdio-1.0
|
|
Default-language: Haskell2010
|
|
hs-source-dirs: tests
|
|
main-is: Generators.hs
|
|
build-depends: base, QuickCheck
|
|
if !flag(templateHaskell)
|
|
Buildable: False
|
|
|
|
Test-Suite test-quickcheck-gshrink
|
|
type: exitcode-stdio-1.0
|
|
Default-language: Haskell2010
|
|
hs-source-dirs: tests
|
|
main-is: GShrinkExample.hs
|
|
build-depends: base, QuickCheck
|
|
if !flag(templateHaskell) || !impl(ghc >= 7.2)
|
|
buildable: False
|
|
if impl(ghc >= 7.2) && impl(ghc < 7.6)
|
|
build-depends: ghc-prim
|
|
|
|
Test-Suite test-quickcheck-terminal
|
|
type: exitcode-stdio-1.0
|
|
Default-language: Haskell2010
|
|
hs-source-dirs: tests
|
|
main-is: Terminal.hs
|
|
build-depends: base, process, deepseq >= 1.1.0.0, QuickCheck
|
|
if !flag(templateHaskell) || !impl(ghc >= 7.10)
|
|
buildable: False
|
|
|
|
Test-Suite test-quickcheck-monadfix
|
|
type: exitcode-stdio-1.0
|
|
Default-language: Haskell2010
|
|
hs-source-dirs: tests
|
|
main-is: MonadFix.hs
|
|
build-depends: base, QuickCheck
|
|
if !flag(templateHaskell) || !impl(ghc >= 7.10)
|
|
buildable: False
|
|
|
|
Test-Suite test-quickcheck-split
|
|
type: exitcode-stdio-1.0
|
|
Default-language: Haskell2010
|
|
hs-source-dirs: tests
|
|
main-is: Split.hs
|
|
build-depends: base, QuickCheck
|
|
if impl(ghc >= 9.8)
|
|
ghc-options: -Wno-x-partial
|
|
|
|
Test-Suite test-quickcheck-strictness
|
|
type: exitcode-stdio-1.0
|
|
Default-language: Haskell2010
|
|
hs-source-dirs: tests
|
|
main-is: Strictness.hs
|
|
build-depends: base, QuickCheck, containers
|
|
if !flag(templateHaskell) || !impl(ghc >= 7.10)
|
|
buildable: False
|
|
|
|
Test-Suite test-quickcheck-misc
|
|
type: exitcode-stdio-1.0
|
|
Default-language: Haskell2010
|
|
hs-source-dirs: tests
|
|
main-is: Misc.hs
|
|
build-depends: base, QuickCheck, containers
|
|
if !flag(templateHaskell) || !impl(ghc >= 7.10)
|
|
buildable: False
|
|
|
|
Test-Suite test-quickcheck-discard
|
|
type: exitcode-stdio-1.0
|
|
Default-language: Haskell2010
|
|
hs-source-dirs: tests
|
|
main-is: DiscardRatio.hs
|
|
build-depends: base, QuickCheck
|