packages feed

quickcheck-lockstep-0.5.1: quickcheck-lockstep.cabal

cabal-version:   2.4
name:            quickcheck-lockstep
version:         0.5.1
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

source-repository head
  type:     git
  location: https://github.com/well-typed/quickcheck-lockstep

common lang
  default-language:   Haskell2010
  default-extensions:
    FlexibleContexts
    FlexibleInstances
    GADTs
    ImportQualifiedPost
    LambdaCase
    MultiParamTypeClasses
    QuantifiedConstraints
    RankNTypes
    ScopedTypeVariables
    StandaloneDeriving
    TupleSections
    TypeApplications
    TypeFamilies

  other-extensions:   UndecidableInstances
  ghc-options:
    -Wall -Wprepositive-qualified-module -Wredundant-constraints

library
  import:          lang
  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.21
    , constraints         ^>=0.13  || ^>=0.14
    , containers          ^>=0.6   || ^>=0.7
    , mtl                 ^>=2.2   || ^>=2.3
    , QuickCheck          ^>=2.14  || ^>=2.15
    , quickcheck-dynamic  ^>=3.4.1

  hs-source-dirs:  src

test-suite test-quickcheck-lockstep
  import:             lang
  type:               exitcode-stdio-1.0
  hs-source-dirs:     test
  main-is:            Main.hs
  other-modules:
    Test.IORef.Full
    Test.IORef.Simple
    Test.MockFS
    Test.MockFS.Mock

  default-extensions:
    DeriveGeneric
    EmptyCase

  -- Version bounds determined by main lib
  build-depends:
    , base
    , constraints
    , containers
    , directory
    , filepath
    , mtl
    , QuickCheck
    , quickcheck-dynamic
    , quickcheck-lockstep
    , tasty
    , tasty-hunit
    , tasty-quickcheck
    , temporary