streamly/test/streamly-tests.cabal

427 lines
12 KiB
Plaintext
Raw Normal View History

cabal-version: 2.2
name: streamly-tests
version: 0.0.0
synopsis: Tests for streamly
description: See streamly-benchmarks for the reason why we use a separate
package for tests.
flag fusion-plugin
description: Use fusion plugin for benchmarks and executables
manual: True
default: False
flag limit-build-mem
description: Limits memory when building the executables
manual: True
default: False
flag use-large-mem
description: Include tests that require large amount of memory
manual: True
default: False
2021-09-14 20:49:54 +03:00
flag include-flaky-tests
description: Include tests that are unpredictable
manual: True
default: False
flag dev
description: Development build
manual: True
default: False
flag has-llvm
description: Use llvm backend for better performance
manual: True
default: False
flag opt
description: off=-O0 (faster builds), on=-O2
manual: True
default: True
-------------------------------------------------------------------------------
-- Common stanzas
-------------------------------------------------------------------------------
common compile-options
default-language: Haskell2010
if os(darwin)
cpp-options: -DCABAL_OS_DARWIN
if os(linux)
cpp-options: -DCABAL_OS_LINUX
if os(windows)
cpp-options: -DCABAL_OS_WINDOWS
if flag(dev)
cpp-options: -DDEVBUILD
ghc-options: -Wall
-Wcompat
-Wunrecognised-warning-flags
-Widentities
-Wincomplete-record-updates
-Wincomplete-uni-patterns
-Wredundant-constraints
-Wnoncanonical-monad-instances
-Rghc-timing
if flag(has-llvm)
ghc-options: -fllvm
if flag(dev)
ghc-options: -Wmissed-specialisations
-Wall-missed-specialisations
if flag(limit-build-mem)
ghc-options: +RTS -M512M -RTS
if flag(use-large-mem)
cpp-options: -DUSE_LARGE_MEMORY
2021-09-14 20:49:54 +03:00
if flag(include-flaky-tests)
cpp-options: -DINCLUDE_FLAKY_TESTS
common default-extensions
default-extensions:
BangPatterns
CApiFFI
CPP
ConstraintKinds
DeriveDataTypeable
DeriveGeneric
DeriveTraversable
ExistentialQuantification
FlexibleContexts
FlexibleInstances
GeneralizedNewtypeDeriving
InstanceSigs
KindSignatures
LambdaCase
MagicHash
MultiParamTypeClasses
PatternSynonyms
RankNTypes
RecordWildCards
ScopedTypeVariables
TupleSections
TypeFamilies
ViewPatterns
-- MonoLocalBinds, enabled by TypeFamilies, causes performance
-- regressions. Disable it. This must come after TypeFamilies,
-- otherwise TypeFamilies will enable it again.
NoMonoLocalBinds
-- UndecidableInstances -- Does not show any perf impact
-- UnboxedTuples -- interferes with (#.)
common threading-options
ghc-options: -threaded
-with-rtsopts=-N
common optimization-options
if flag(opt) || flag(fusion-plugin)
ghc-options: -O2
-fdicts-strict
-fmax-worker-args=16
-fspec-constr-recursive=16
-- This must come after -O2
-fno-ignore-asserts
if flag(fusion-plugin) && !impl(ghcjs) && !impl(ghc < 8.6)
ghc-options: -fplugin Fusion.Plugin
else
ghc-options: -O0
common test-dependencies
build-depends:
streamly
, base >= 4.9 && < 5
, containers >= 0.5 && < 0.7
, exceptions >= 0.8 && < 0.11
, ghc
, hspec >= 2.0 && < 3
, mtl >= 2.2 && < 3
, random >= 1.0.0 && < 2
, transformers >= 0.4 && < 0.6
, QuickCheck >= 2.13 && < 2.15
, directory >= 1.2.2 && < 1.4
, filepath >= 1.4.1 && < 1.5
, temporary >= 1.3 && < 1.4
, network >= 3.1 && < 3.2
if flag(fusion-plugin) && !impl(ghcjs) && !impl(ghc < 8.6)
build-depends:
fusion-plugin >= 0.2 && < 0.3
-------------------------------------------------------------------------------
-- Library
-------------------------------------------------------------------------------
common lib-options
import: compile-options
, optimization-options
, default-extensions
, test-dependencies
library
import: lib-options, test-dependencies
hs-source-dirs: lib
exposed-modules: Streamly.Test.Common
, Streamly.Test.Prelude.Common
if flag(limit-build-mem)
ghc-options: +RTS -M1500M -RTS
-------------------------------------------------------------------------------
2021-01-04 00:09:38 +03:00
-- Test suite options
-------------------------------------------------------------------------------
common test-options
import: lib-options
, threading-options
ghc-options: -rtsopts -fno-ignore-asserts
include-dirs: .
build-depends: streamly-tests
common always-optimized
import: compile-options
, threading-options
, default-extensions
, test-dependencies
ghc-options: -O2
-fdicts-strict
-fmax-worker-args=16
-fspec-constr-recursive=16
2021-04-05 16:34:23 +03:00
-rtsopts
-fno-ignore-asserts
if flag(fusion-plugin) && !impl(ghcjs) && !impl(ghc < 8.6)
ghc-options: -fplugin Fusion.Plugin
2021-01-04 00:09:38 +03:00
-------------------------------------------------------------------------------
-- Test suites in sorted order
-------------------------------------------------------------------------------
test-suite Data.List
import: test-options
type: exitcode-stdio-1.0
main-is: Streamly/Test/Data/List.hs
cpp-options: -DUSE_STREAMLY_LIST
2021-01-04 00:09:38 +03:00
test-suite Data.List.Base
import: test-options
type: exitcode-stdio-1.0
2021-01-04 00:09:38 +03:00
main-is: Streamly/Test/Data/List.hs
2021-01-04 00:09:38 +03:00
test-suite Data.Array
import: test-options
type: exitcode-stdio-1.0
2021-01-04 00:09:38 +03:00
main-is: Streamly/Test/Data/Array.hs
ghc-options: -main-is Streamly.Test.Data.Array.main
2021-01-04 00:09:38 +03:00
test-suite Data.Array.Prim
import: test-options
type: exitcode-stdio-1.0
2021-01-04 00:09:38 +03:00
main-is: Streamly/Test/Data/Array/Prim.hs
ghc-options: -main-is Streamly.Test.Data.Array.Prim.main
2021-01-04 00:09:38 +03:00
test-suite Data.Array.Prim.Pinned
import: test-options
type: exitcode-stdio-1.0
2021-01-04 00:09:38 +03:00
main-is: Streamly/Test/Data/Array/Prim/Pinned.hs
ghc-options: -main-is Streamly.Test.Data.Array.Prim.Pinned.main
test-suite Data.Array.Foreign
import: test-options
type: exitcode-stdio-1.0
main-is: Streamly/Test/Data/Array/Foreign.hs
ghc-options: -main-is Streamly.Test.Data.Array.Foreign.main
test-suite Data.Array.Stream.Foreign
import: test-options
type: exitcode-stdio-1.0
main-is: Streamly/Test/Data/Array/Stream/Foreign.hs
2021-01-04 00:09:38 +03:00
test-suite Data.Fold
import: test-options
type: exitcode-stdio-1.0
2021-01-04 00:09:38 +03:00
main-is: Streamly/Test/Data/Fold.hs
2021-01-04 00:09:38 +03:00
test-suite Data.Parser
import: test-options
type: exitcode-stdio-1.0
2021-01-04 00:09:38 +03:00
main-is: Streamly/Test/Data/Parser.hs
if flag(limit-build-mem)
ghc-options: +RTS -M1000M -RTS
2021-01-04 00:09:38 +03:00
test-suite Data.Parser.ParserD
import: test-options
type: exitcode-stdio-1.0
2021-01-04 00:09:38 +03:00
main-is: Streamly/Test/Data/Parser/ParserD.hs
if flag(limit-build-mem)
ghc-options: +RTS -M1000M -RTS
2021-01-04 00:09:38 +03:00
test-suite Data.SmallArray
import: test-options
type: exitcode-stdio-1.0
2021-01-04 00:09:38 +03:00
main-is: Streamly/Test/Data/SmallArray.hs
ghc-options: -main-is Streamly.Test.Data.SmallArray.main
2021-01-04 00:09:38 +03:00
test-suite Data.Unfold
import: test-options
type: exitcode-stdio-1.0
2021-01-04 00:09:38 +03:00
main-is: Streamly/Test/Data/Unfold.hs
2021-01-04 00:09:38 +03:00
test-suite FileSystem.Event
import: test-options
type: exitcode-stdio-1.0
2021-01-04 00:09:38 +03:00
main-is: Streamly/Test/FileSystem/Event.hs
2021-11-09 20:02:55 +03:00
if os(linux)
other-modules: Streamly.Test.FileSystem.Event.Linux
if os(windows)
other-modules: Streamly.Test.FileSystem.Event.Windows
2021-01-04 00:09:38 +03:00
if os(darwin)
buildable: False
2021-09-30 17:28:28 +03:00
test-suite FileSystem.Event.Linux
import: test-options
type: exitcode-stdio-1.0
main-is: Streamly/Test/FileSystem/Event/LinuxTest.hs
2021-11-09 20:02:55 +03:00
if os(linux)
other-modules: Streamly.Test.FileSystem.Event.Linux
2021-09-30 17:28:28 +03:00
if os(windows)
buildable: False
if os(darwin)
buildable: False
test-suite FileSystem.Event.Windows
import: test-options
type: exitcode-stdio-1.0
main-is: Streamly/Test/FileSystem/Event/WindowsTest.hs
2021-11-09 20:02:55 +03:00
if os(windows)
other-modules: Streamly.Test.FileSystem.Event.Windows
2021-09-30 17:28:28 +03:00
if os(linux)
buildable: False
if os(darwin)
buildable: False
2021-01-04 00:09:38 +03:00
test-suite FileSystem.Handle
import: test-options
type: exitcode-stdio-1.0
2021-01-04 00:09:38 +03:00
main-is: Streamly/Test/FileSystem/Handle.hs
ghc-options: -main-is Streamly.Test.FileSystem.Handle.main
2021-01-04 00:09:38 +03:00
test-suite Network.Inet.TCP
import: test-options
type: exitcode-stdio-1.0
2021-01-04 00:09:38 +03:00
main-is: Streamly/Test/Network/Inet/TCP.hs
2021-01-04 00:09:38 +03:00
test-suite Network.Socket
import: test-options
type: exitcode-stdio-1.0
2021-01-04 00:09:38 +03:00
main-is: Streamly/Test/Network/Socket.hs
2021-01-04 00:09:38 +03:00
test-suite Prelude
import: test-options
type: exitcode-stdio-1.0
2021-01-04 00:09:38 +03:00
main-is: Streamly/Test/Prelude.hs
ghc-options: -main-is Streamly.Test.Prelude.main
2021-01-04 00:09:38 +03:00
test-suite Prelude.Ahead
import: test-options
type: exitcode-stdio-1.0
2021-01-04 00:09:38 +03:00
main-is: Streamly/Test/Prelude/Ahead.hs
ghc-options: -main-is Streamly.Test.Prelude.Ahead.main
2021-01-04 00:09:38 +03:00
test-suite Prelude.Async
import: test-options
type: exitcode-stdio-1.0
2021-01-04 00:09:38 +03:00
main-is: Streamly/Test/Prelude/Async.hs
ghc-options: -main-is Streamly.Test.Prelude.Async.main
2021-01-04 00:09:38 +03:00
test-suite Prelude.Concurrent
import: test-options
type: exitcode-stdio-1.0
2021-01-04 00:09:38 +03:00
main-is: Streamly/Test/Prelude/Concurrent.hs
ghc-options: -main-is Streamly.Test.Prelude.Concurrent.main
if flag(limit-build-mem)
ghc-options: +RTS -M2000M -RTS
2021-01-04 00:09:38 +03:00
test-suite Prelude.Fold
import: test-options
type: exitcode-stdio-1.0
2021-01-04 00:09:38 +03:00
main-is: Streamly/Test/Prelude/Fold.hs
ghc-options: -main-is Streamly.Test.Prelude.Fold.main
2021-01-04 00:09:38 +03:00
test-suite Prelude.Parallel
import: test-options
type: exitcode-stdio-1.0
2021-01-04 00:09:38 +03:00
main-is: Streamly/Test/Prelude/Parallel.hs
ghc-options: -main-is Streamly.Test.Prelude.Parallel.main
2021-01-04 00:09:38 +03:00
test-suite Prelude.Rate
import:always-optimized
type: exitcode-stdio-1.0
main-is: Streamly/Test/Prelude/Rate.hs
ghc-options: -main-is Streamly.Test.Prelude.Rate.main
if flag(dev)
buildable: True
else
buildable: False
test-suite Prelude.Serial
import: test-options
type: exitcode-stdio-1.0
2021-01-04 00:09:38 +03:00
main-is: Streamly/Test/Prelude/Serial.hs
ghc-options: -main-is Streamly.Test.Prelude.Serial.main
if flag(limit-build-mem)
ghc-options: +RTS -M1500M -RTS
2021-01-04 00:09:38 +03:00
test-suite Prelude.WAsync
import: test-options
type: exitcode-stdio-1.0
2021-01-04 00:09:38 +03:00
main-is: Streamly/Test/Prelude/WAsync.hs
ghc-options: -main-is Streamly.Test.Prelude.WAsync.main
2021-01-04 00:09:38 +03:00
test-suite Prelude.WSerial
import: test-options
type: exitcode-stdio-1.0
2021-01-04 00:09:38 +03:00
main-is: Streamly/Test/Prelude/WSerial.hs
ghc-options: -main-is Streamly.Test.Prelude.WSerial.main
2021-01-04 00:09:38 +03:00
test-suite Prelude.ZipAsync
import: test-options
type: exitcode-stdio-1.0
2021-01-04 00:09:38 +03:00
main-is: Streamly/Test/Prelude/ZipAsync.hs
ghc-options: -main-is Streamly.Test.Prelude.ZipAsync.main
2021-01-04 00:09:38 +03:00
test-suite Prelude.ZipSerial
import: test-options
type: exitcode-stdio-1.0
2021-01-04 00:09:38 +03:00
main-is: Streamly/Test/Prelude/ZipSerial.hs
ghc-options: -main-is Streamly.Test.Prelude.ZipSerial.main
2021-01-04 00:09:38 +03:00
test-suite Unicode.Stream
import: test-options
type: exitcode-stdio-1.0
2021-01-04 00:09:38 +03:00
main-is: Streamly/Test/Unicode/Stream.hs
ghc-options: -main-is Streamly.Test.Unicode.Stream.main
2020-09-21 16:45:02 +03:00
test-suite Unicode.Char
import: test-options
type: exitcode-stdio-1.0
main-is: Streamly/Test/Unicode/Char.hs
ghc-options: -main-is Streamly.Test.Unicode.Char.main
2021-09-12 20:33:18 +03:00
if flag(dev)
buildable: True
else
buildable: False
2020-09-21 16:45:02 +03:00
2021-01-04 00:09:38 +03:00
test-suite version-bounds
import: test-options
type: exitcode-stdio-1.0
2021-01-04 00:09:38 +03:00
main-is: version-bounds.hs