cabal-version: 3.4
name: quickcheck-lockstep
version: 0.8.2
license: BSD-3-Clause
license-file: LICENSE
author: Edsko de Vries
maintainer: edsko@well-typed.com, joris@well-typed.com
extra-doc-files:
CHANGELOG.md
README.md
category: Testing
synopsis:
Library for lockstep-style testing with 'quickcheck-dynamic'
description:
Lockstep-style testing is a particular approach for blackbox
testing of stateful APIs: we generate a random sequence of
APIs calls, then execute them both against the system under
test and against a model, and compare responses up to some
notion of observability.
tested-with:
GHC ==8.10
|| ==9.0
|| ==9.2
|| ==9.4
|| ==9.6
|| ==9.8
|| ==9.10
|| ==9.12
source-repository head
type: git
location: https://github.com/well-typed/quickcheck-lockstep
source-repository this
type: git
location: https://github.com/well-typed/quickcheck-lockstep
tag: quickcheck-lockstep-0.8.2
common language
-- This is at the top-level so that `cabal check` does not complain.
default-language: Haskell2010
-- For newer GHC's, override Haskell2010 with GHC2021
if impl(ghc >=9.2.1)
default-language: GHC2021
-- For older GHC's, manually enable all language extensions that are in
-- GHC2021
--
-- NOTE: FieldSelectors is not supported on ghc-8.10.7, so it is the only
-- language extension that is missing compared to GHC2021
else
default-extensions:
BangPatterns
BinaryLiterals
ConstrainedClassMethods
ConstraintKinds
DeriveDataTypeable
DeriveFoldable
DeriveFunctor
DeriveGeneric
DeriveLift
DeriveTraversable
DoAndIfThenElse
EmptyCase
EmptyDataDecls
EmptyDataDeriving
ExistentialQuantification
ExplicitForAll
FlexibleContexts
FlexibleInstances
ForeignFunctionInterface
GADTSyntax
GeneralisedNewtypeDeriving
HexFloatLiterals
ImplicitPrelude
ImportQualifiedPost
InstanceSigs
KindSignatures
MonomorphismRestriction
MultiParamTypeClasses
NamedFieldPuns
NamedWildCards
NoExplicitNamespaces
NumericUnderscores
PatternGuards
PolyKinds
PostfixOperators
RankNTypes
RelaxedPolyRec
ScopedTypeVariables
StandaloneDeriving
StandaloneKindSignatures
StarIsType
TraditionalRecordSyntax
TupleSections
TypeApplications
TypeOperators
TypeSynonymInstances
-- Extensions that we enable by default
default-extensions:
DeriveAnyClass
DerivingStrategies
DerivingVia
ExplicitNamespaces
GADTs
LambdaCase
RecordWildCards
RoleAnnotations
ViewPatterns
common warnings
ghc-options:
-Wall -Wcompat -Wincomplete-uni-patterns
-Wincomplete-record-updates -Wpartial-fields -Widentities
-Wredundant-constraints -Wmissing-export-lists
-Wno-unticked-promoted-constructors -Wunused-packages
ghc-options: -Werror=missing-deriving-strategies
library
import: language, warnings
exposed-modules:
Test.QuickCheck.StateModel.Lockstep
Test.QuickCheck.StateModel.Lockstep.Defaults
Test.QuickCheck.StateModel.Lockstep.Op
Test.QuickCheck.StateModel.Lockstep.Op.Identity
Test.QuickCheck.StateModel.Lockstep.Op.SumProd
Test.QuickCheck.StateModel.Lockstep.Run
other-modules:
Test.QuickCheck.StateModel.Lockstep.API
Test.QuickCheck.StateModel.Lockstep.EnvF
Test.QuickCheck.StateModel.Lockstep.GVar
-- quickcheck-dynamic requires ghc 8.10 minimum
build-depends:
, base >=4.14 && <4.22
, constraints ^>=0.13 || ^>=0.14
, containers ^>=0.6 || ^>=0.7 || ^>=0.8
, mtl ^>=2.2 || ^>=2.3
, QuickCheck ^>=2.14 || ^>=2.15 || ^>=2.16 || ^>=2.17
, quickcheck-dynamic ^>=4.0
hs-source-dirs: src
test-suite test-quickcheck-lockstep
import: language, warnings
type: exitcode-stdio-1.0
hs-source-dirs: test
main-is: Main.hs
other-modules:
Test.Golden
Test.IORef.Full
Test.IORef.Simple
Test.MockFS
Test.MockFS.Mock
default-extensions:
DeriveGeneric
EmptyCase
-- Version bounds determined by main lib
build-depends:
, base <5
, constraints
, containers
, directory
, filepath
, mtl
, QuickCheck
, quickcheck-dynamic
, quickcheck-lockstep
, tasty
, tasty-golden
, tasty-hunit
, tasty-quickcheck
, temporary
test-suite test-internals
import: language, warnings
type: exitcode-stdio-1.0
hs-source-dirs: test-internals src
main-is: Main.hs
other-modules:
Test.QuickCheck.StateModel.Lockstep.EnvF
Test.QuickCheck.StateModel.Lockstep.GVar
Test.QuickCheck.StateModel.Lockstep.Op
Test.QuickCheck.StateModel.Lockstep.Op.SumProd
Test.Test.QuickCheck.StateModel.Lockstep.GVar
-- Version bounds determined by main lib
build-depends:
, base <5
, mtl
, quickcheck-dynamic
, tasty
, tasty-quickcheck