packages feed

tasty-prelude-0.1.0.0: tasty-prelude.cabal

cabal-version:      3.0
name:               tasty-prelude
version:            0.1.0.0
synopsis:
  Unopinionated top-level entry point to tasty ecosystem.
description:
  The package exposes 'Tast.Tasty.Prelude' module build out of several modules
  accross various tasty packages and re-exports modules from many packages
  available in the tasty ecosystem.
category:           Testing
author:             Marcin Szamotulski <coot@coot.me>
maintainer:         Marcin Szamotulski <coot@coot.me>
license:            MPL-2.0
license-file:       LICENSE
copyright:          (c) 2021, Marcin Szamotulski
homepage:           https://github.com/coot/tasty-prelude
bug-reports:        https://github.com/coot/tasty-prelude/issues
extra-source-files: README.md, CHANGELOG.md
tested-with:        GHC == { 8.6.5, 8.8.4, 8.10.5, 9.0.1 }

flag all
    description: include all supported packages
    default: False
    manual:  True

flag ant-xml
    description: tasty-ant-xml support
    default: False
    manual:  True

flag bdd
    description: tasty-bdd support
    default: False
    manual:  True

flag bench
    description: tasty-bench support
    default: False
    manual:  True

flag checklist
    description: tasty-checklist support
    default: False
    manual:  True

flag dejafu
    description: tasty-dejafu support
    default: False
    manual:  True

flag discover
    description: tasty-discover support (included in Test.Tasty.Prelude)
    default: False
    manual:  True

flag fail-fast
    description: tasty-fail-fast support
    default: False
    manual:  True

flag golden
    description: tasty-golden support
    default: False
    manual:  True

flag grading-system
    description: tasty-grading-system support (included in Test.Tasty.Prelude)
    default: False
    manual:  True

flag hedgehog
    description: tasty-hedgehog support
    default: False
    manual:  True

flag html
    description: tasty-html support
    default: False
    manual:  True

flag hspec
    description: tasty-hspec support
    default: False
    manual:  True

flag hunit
    description: tasty-hunit support
    default: False
    manual:  True

flag inspection-testing
    description: tasty-inspection-testing support
    default: False
    manual:  True

flag leancheck
    description: tasty-leancheck support
    default: False
    manual:  True

flag lua
    description: tasty-lua support  
    default: False
    manual:  True

-- tasty-lens: not compatible with a recent version of ghc

flag quickcheck
    description: tasty-quickcheck support
    default: False
    manual:  True

flag quickcheck-laws
    description: tasty-quickcheck-laws support
    default: False
    manual:  True

flag rerun
    description: tasty-rerun support
    default: False
    manual:  True

flag silver
    description: tasty-silver support
    default: False
    manual:  True

flag smallcheck
    description: tasty-smallcheck support
    default: False
    manual:  True

flag sugar
    description: tasty-sugar support
    default: False
    manual:  True

flag test-reporter
    description: tasty-test-reporter support
    default: False
    manual:  True

flag th
    description: tasty-th support
    default: False
    manual:  True

flag tmux
    description: tasty-tmux support
    default: False
    manual:  True

flag wai
    description: tasty-wai support
    default: False
    manual:  True


library
    exposed-modules:      Test.Tasty.Prelude
    build-depends:        base < 5,
                          tasty,
                          tasty-expected-failure,
                          tasty-focus,
    hs-source-dirs:       src

    reexported-modules:   tasty:Test.Tasty
                        , tasty:Test.Tasty.Ingredients
                        , tasty:Test.Tasty.Ingredients.Basic
                        , tasty:Test.Tasty.Ingredients.ConsoleReporter
                        , tasty:Test.Tasty.Options
                        , tasty:Test.Tasty.Patterns.Eval
                        , tasty:Test.Tasty.Patterns.Parser
                        , tasty:Test.Tasty.Patterns.Types
                        , tasty:Test.Tasty.Providers
                        , tasty:Test.Tasty.Providers.ConsoleFormat
                        , tasty:Test.Tasty.Runners
                        , tasty-expected-failure:Test.Tasty.ExpectedFailure
                        , tasty-focus:Test.Tasty.Focus

    if flag(ant-xml) || flag(all)
      build-depends:      tasty-ant-xml
      reexported-modules: tasty-ant-xml:Test.Tasty.Runners.AntXML

    if flag(bdd) || flag(all)
      build-depends:      tasty-bdd
      reexported-modules: tasty-bdd:Test.Tasty.Bdd
                        , tasty-bdd:Test.BDD.Language
                        , tasty-bdd:Test.BDD.LanguageFree
                        , tasty-bdd:System.CaptureStdout

    if flag(bench) || flag(all)
      build-depends:      tasty-bench
      reexported-modules: tasty-bench:Test.Tasty.Bench

    if flag(checklist) || flag(all)
      build-depends:      tasty-checklist
      reexported-modules: tasty-checklist:Test.Tasty.Checklist
      cpp-options:      -DTASTY_CHECKLIST

    if flag(dejafu) || flag(all)
      build-depends:      tasty-dejafu
      reexported-modules: tasty-dejafu:Test.Tasty.DejaFu

    if flag(discover) || flag(all)
      build-depends:      tasty-discover
      reexported-modules: tasty-discover:Test.Tasty.Discover
                        , tasty-discover:Test.Tasty.Config
                        , tasty-discover:Test.Tasty.Generator
      cpp-options:      -DTASTY_DISCOVER

    if flag(fail-fast) || flag(all)
      build-depends:      tasty-fail-fast
      reexported-modules: tasty-fail-fast:Test.Tasty.Ingredients.FailFast

    if flag(golden) || flag(all)
      build-depends:      tasty-golden
      reexported-modules: tasty-golden:Test.Tasty.Golden
                        , tasty-golden:Test.Tasty.Golden.Advanced
                        , tasty-golden:Test.Tasty.Golden.Manage

    if (flag(grading-system) || flag(all)) && impl(ghc >= 8.8)
      build-depends:      tasty-grading-system
      reexported-modules: tasty-grading-system:Test.Tasty.Grade
      cpp-options:      -DTASTY_GRADING_SYSTEM

    if flag(hedgehog) || flag(all)
      build-depends:      tasty-hedgehog
      reexported-modules: tasty-hedgehog:Test.Tasty.Hedgehog

    if flag(hunit) || flag(all)
      build-depends:      tasty-hunit
      reexported-modules: tasty-hunit:Test.Tasty.HUnit

    if flag(html) || flag(all)
      build-depends:      tasty-html
      reexported-modules: tasty-html:Test.Tasty.Runners.Html

    if flag(hspec) || flag(all)
      build-depends:      tasty-hspec
      reexported-modules: tasty-hspec:Test.Tasty.Hspec

    if flag(inspection-testing) || flag(all)
      build-depends:      tasty-inspection-testing
      reexported-modules: tasty-inspection-testing:Test.Tasty.Inspection

    if flag(leancheck) || flag(all)
      build-depends:      tasty-leancheck
      reexported-modules: tasty-leancheck:Test.Tasty.LeanCheck

    if flag(lua) || flag(all)
      build-depends:      tasty-lua
      reexported-modules: tasty-lua:Test.Tasty.Lua
                        , tasty-lua:Test.Tasty.Lua.Core
                        , tasty-lua:Test.Tasty.Lua.Module
                        , tasty-lua:Test.Tasty.Lua.Translate

    if flag(quickcheck) || flag(all)
      build-depends:      tasty-quickcheck
      reexported-modules: tasty-quickcheck:Test.Tasty.QuickCheck

    if flag(quickcheck-laws) || flag(all)
      build-depends:      tasty-quickcheck-laws
      reexported-modules: tasty-quickcheck-laws:Test.Tasty.QuickCheck.Laws
                        , tasty-quickcheck-laws:Test.Tasty.QuickCheck.Laws.Applicative
                        , tasty-quickcheck-laws:Test.Tasty.QuickCheck.Laws.Class
                        , tasty-quickcheck-laws:Test.Tasty.QuickCheck.Laws.Eq
                        , tasty-quickcheck-laws:Test.Tasty.QuickCheck.Laws.ErrorMonad
                        , tasty-quickcheck-laws:Test.Tasty.QuickCheck.Laws.Functor
                        , tasty-quickcheck-laws:Test.Tasty.QuickCheck.Laws.IdentityMonad
                        , tasty-quickcheck-laws:Test.Tasty.QuickCheck.Laws.MaybeMonad
                        , tasty-quickcheck-laws:Test.Tasty.QuickCheck.Laws.Monad
                        , tasty-quickcheck-laws:Test.Tasty.QuickCheck.Laws.Monoid
                        , tasty-quickcheck-laws:Test.Tasty.QuickCheck.Laws.ReaderMonad
                        , tasty-quickcheck-laws:Test.Tasty.QuickCheck.Laws.Semigroup
                        , tasty-quickcheck-laws:Test.Tasty.QuickCheck.Laws.StateMonad
                        , tasty-quickcheck-laws:Test.Tasty.QuickCheck.Laws.WriterMonad

    if flag(rerun) || flag(all)
      build-depends:      tasty-rerun
      reexported-modules: tasty-rerun:Test.Tasty.Ingredients.Rerun

    if flag(silver) || flag(all)
      build-depends:      tasty-silver
      reexported-modules: tasty-silver:Test.Tasty.Silver
                        , tasty-silver:Test.Tasty.Silver.Advanced
                        , tasty-silver:Test.Tasty.Silver.Filter
                        , tasty-silver:Test.Tasty.Silver.Interactive
                        , tasty-silver:Test.Tasty.Silver.Interactive.Run
                        , tasty-silver:Test.Tasty.Silver.Internal

    if flag(smallcheck) || flag(all)
      build-depends:      tasty-smallcheck
      reexported-modules: tasty-smallcheck:Test.Tasty.SmallCheck

    if flag(sugar) || flag(all)
      build-depends:      tasty-sugar
      reexported-modules: tasty-sugar:Test.Tasty.Sugar

    if flag(test-reporter) || flag(all)
      build-depends:      tasty-test-reporter
      reexported-modules: tasty-test-reporter:Test.Tasty.Runners.Reporter

    if flag(th) || flag(all)
      build-depends:      tasty-th
      reexported-modules: tasty-th:Test.Tasty.TH

    if flag(tmux) || flag(all)
      build-depends:      tasty-tmux
      reexported-modules: tasty-tmux:Test.Tasty.Tmux

    if flag(wai) || flag(all)
      build-depends:      tasty-wai
      reexported-modules: tasty-wai:Test.Tasty.Wai


    default-language:     Haskell2010
    ghc-options: -Wall
                 -Wcompat
                 -Wincomplete-uni-patterns
                 -Wincomplete-record-updates
                 -Wpartial-fields
                 -Widentities
                 -Wredundant-constraints