4synopsis: Tests for streamly
5description: See streamly-benchmarks for the reason why we use a separate
9 description: Use fusion plugin for benchmarks and executables
14 description: Limits memory when building the executables
19 description: Include tests that require large amount of memory
23flag include-flaky-tests
24 description: Include tests that are unpredictable
29 description: Development build
34 description: Use llvm backend for better performance
39 description: off=-O0 (faster builds), on=-O2
44 description: Test only core package
48-------------------------------------------------------------------------------
50-------------------------------------------------------------------------------
53 default-language: Haskell2010
56 cpp-options: -DCABAL_OS_DARWIN
59 cpp-options: -DCABAL_OS_LINUX
62 cpp-options: -DCABAL_OS_WINDOWS
65 cpp-options: -DDEVBUILD
69 -Wunrecognised-warning-flags
71 -Wincomplete-record-updates
72 -Wincomplete-uni-patterns
73 -Wredundant-constraints
74 -Wnoncanonical-monad-instances
75 -Wmissing-export-lists
82 ghc-options: -Wmissed-specialisations
83 -Wall-missed-specialisations
85 if flag(limit-build-mem)
86 ghc-options: +RTS -M512M -RTS
88 if flag(use-large-mem)
89 cpp-options: -DUSE_LARGE_MEMORY
91 if flag(include-flaky-tests)
92 cpp-options: -DINCLUDE_FLAKY_TESTS
94common default-extensions
103 ExistentialQuantification
106 GeneralizedNewtypeDeriving
111 MultiParamTypeClasses
120 -- MonoLocalBinds, enabled by TypeFamilies, causes performance
121 -- regressions. Disable it. This must come after TypeFamilies,
122 -- otherwise TypeFamilies will enable it again.
125 -- UndecidableInstances -- Does not show any perf impact
126 -- UnboxedTuples -- interferes with (#.)
128common threading-options
129 ghc-options: -threaded
132common optimization-options
133 if flag(opt) || flag(fusion-plugin)
137 -fspec-constr-recursive=16
138 -- This must come after -O2
140 if flag(fusion-plugin) && !impl(ghcjs) && !impl(ghc < 8.6)
141 ghc-options: -fplugin Fusion.Plugin
145common test-dependencies
148 , base >= 4.9 && < 4.20
149 , containers >= 0.5 && < 0.8
150 , exceptions >= 0.8 && < 0.11
152 , hspec >= 2.0 && < 2.12
153 , mtl >= 2.2 && < 2.3.2
154 , random >= 1.0.0 && < 1.3
155 , transformers >= 0.4 && < 0.7
156 , QuickCheck >= 2.13 && < 2.15
157 , directory >= 1.2.2 && < 1.4
158 , filepath >= 1.4.1 && < 1.5
159 , temporary >= 1.3 && < 1.4
160 , network >= 3.1 && < 3.2
161 , scientific >= 0.0 && < 0.4
162 , template-haskell >= 2.12 && < 2.22
164 if !flag(use-streamly-core)
165 build-depends: streamly
167 if flag(fusion-plugin) && !impl(ghcjs) && !impl(ghc < 8.6)
169 fusion-plugin >= 0.2 && < 0.3
171-------------------------------------------------------------------------------
173-------------------------------------------------------------------------------
176 import: compile-options
177 , optimization-options
182 import: lib-options, test-dependencies
184 exposed-modules: Streamly.Test.Common
185 if !flag(use-streamly-core)
186 exposed-modules: Streamly.Test.Prelude.Common
187 if flag(limit-build-mem)
188 ghc-options: +RTS -M1500M -RTS
190-------------------------------------------------------------------------------
192-------------------------------------------------------------------------------
197 ghc-options: -rtsopts -fno-ignore-asserts
199 build-depends: streamly-tests
201common always-optimized
202 import: compile-options
209 -fspec-constr-recursive=16
212 if flag(fusion-plugin) && !impl(ghcjs) && !impl(ghc < 8.6)
213 ghc-options: -fplugin Fusion.Plugin
215-------------------------------------------------------------------------------
216-- Test suites in sorted order
217-------------------------------------------------------------------------------
219-- The Streamly.Data.List needs to be fixed to enable this
220-- test-suite Data.List
221-- import: test-options
222-- type: exitcode-stdio-1.0
223-- main-is: Streamly/Test/Data/List.hs
224-- cpp-options: -DUSE_STREAMLY_LIST
228test-suite Data.List.Base
230 type: exitcode-stdio-1.0
231 main-is: Streamly/Test/Data/List.hs
233test-suite Data.Array.Generic
235 type: exitcode-stdio-1.0
236 main-is: Streamly/Test/Data/Array/Generic.hs
237 ghc-options: -main-is Streamly.Test.Data.Array.Generic.main
238 if flag(use-streamly-core)
243 type: exitcode-stdio-1.0
244 main-is: Streamly/Test/Data/Array.hs
245 ghc-options: -main-is Streamly.Test.Data.Array.main
247test-suite Data.Stream
249 type: exitcode-stdio-1.0
250 main-is: Streamly/Test/Data/Stream.hs
251 ghc-options: -main-is Streamly.Test.Data.Stream.main
253test-suite Data.MutArray
255 type: exitcode-stdio-1.0
256 main-is: Streamly/Test/Data/MutArray.hs
257 ghc-options: -main-is Streamly.Test.Data.MutArray.main
259test-suite Data.Ring.Unboxed
261 type: exitcode-stdio-1.0
262 main-is: Streamly/Test/Data/Ring/Unboxed.hs
263 ghc-options: -main-is Streamly.Test.Data.Ring.Unboxed.main
264 if flag(use-streamly-core)
267test-suite Data.Unbox.Derive.Generic
269 type: exitcode-stdio-1.0
270 main-is: Streamly/Test/Data/Unbox.hs
271 ghc-options: -main-is Streamly.Test.Data.Unbox.main
273test-suite Data.Unbox.Derive.TH
275 type: exitcode-stdio-1.0
276 cpp-options: -DUSE_TH
277 main-is: Streamly/Test/Data/Unbox.hs
278 ghc-options: -main-is Streamly.Test.Data.Unbox.main
280test-suite Data.Serialize.Derive.TH
282 type: exitcode-stdio-1.0
283 cpp-options: -DUSE_SERIALIZE
284 main-is: Streamly/Test/Data/Unbox.hs
285 ghc-options: -main-is Streamly.Test.Data.Unbox.main
287test-suite Data.Unbox.TH
289 type: exitcode-stdio-1.0
290 main-is: Streamly/Test/Data/Unbox/TH.hs
291 ghc-options: -main-is Streamly.Test.Data.Unbox.TH.main
293test-suite Data.Serialize
295 type: exitcode-stdio-1.0
296 main-is: Streamly/Test/Data/Serialize.hs
298 Streamly.Test.Data.Serialize.TH
299 Streamly.Test.Data.Serialize.CompatV0
300 Streamly.Test.Data.Serialize.CompatV1
301 ghc-options: -main-is Streamly.Test.Data.Serialize.main
302 if flag(limit-build-mem)
303 ghc-options: +RTS -M1500M -RTS
305test-suite Data.Serialize.ENABLE_constructorTagAsString
307 type: exitcode-stdio-1.0
308 main-is: Streamly/Test/Data/Serialize.hs
310 Streamly.Test.Data.Serialize.TH
311 Streamly.Test.Data.Serialize.CompatV0
312 Streamly.Test.Data.Serialize.CompatV1
313 cpp-options: -DENABLE_constructorTagAsString
314 ghc-options: -main-is Streamly.Test.Data.Serialize.main
315 if flag(limit-build-mem)
316 ghc-options: +RTS -M1500M -RTS
318test-suite Data.Array.Stream
320 type: exitcode-stdio-1.0
321 main-is: Streamly/Test/Data/Array/Stream.hs
322 if flag(use-streamly-core)
327 type: exitcode-stdio-1.0
328 main-is: Streamly/Test/Data/Fold.hs
330test-suite Data.Fold.Window
332 type: exitcode-stdio-1.0
333 main-is: Streamly/Test/Data/Fold/Window.hs
334 ghc-options: -main-is Streamly.Test.Data.Fold.Window.main
336test-suite Data.Parser
338 type: exitcode-stdio-1.0
339 main-is: Streamly/Test/Data/Parser.hs
340 if flag(limit-build-mem)
341 ghc-options: +RTS -M4000M -RTS
343test-suite Data.ParserK
345 type: exitcode-stdio-1.0
346 main-is: Streamly/Test/Data/ParserK.hs
347 if flag(limit-build-mem)
348 ghc-options: +RTS -M1500M -RTS
350test-suite Data.SmallArray
352 type: exitcode-stdio-1.0
353 main-is: Streamly/Test/Data/SmallArray.hs
354 ghc-options: -main-is Streamly.Test.Data.SmallArray.main
355 if !flag(dev) || flag(use-streamly-core)
358test-suite Data.Unfold
360 type: exitcode-stdio-1.0
361 main-is: Streamly/Test/Data/Unfold.hs
363test-suite FileSystem.Event
365 type: exitcode-stdio-1.0
366 ghc-options: -main-is Streamly.Test.FileSystem.Event
367 main-is: Streamly/Test/FileSystem/Event.hs
368 other-modules: Streamly.Test.FileSystem.Event.Common
369 if flag(use-streamly-core)
372test-suite FileSystem.Event.Darwin
374 type: exitcode-stdio-1.0
375 main-is: Streamly/Test/FileSystem/Event/Darwin.hs
376 other-modules: Streamly.Test.FileSystem.Event.Common
377 cpp-options: -DFILESYSTEM_EVENT_DARWIN
378 ghc-options: -main-is Streamly.Test.FileSystem.Event.Darwin
381 if flag(use-streamly-core)
384test-suite FileSystem.Event.Linux
386 type: exitcode-stdio-1.0
387 main-is: Streamly/Test/FileSystem/Event/Linux.hs
388 other-modules: Streamly.Test.FileSystem.Event.Common
389 cpp-options: -DFILESYSTEM_EVENT_LINUX
390 ghc-options: -main-is Streamly.Test.FileSystem.Event.Linux
391 if !os(linux) || !flag(dev) || flag(use-streamly-core)
394test-suite FileSystem.Event.Windows
396 type: exitcode-stdio-1.0
397 main-is: Streamly/Test/FileSystem/Event/Windows.hs
398 other-modules: Streamly.Test.FileSystem.Event.Common
399 cpp-options: -DFILESYSTEM_EVENT_WINDOWS
400 ghc-options: -main-is Streamly.Test.FileSystem.Event.Windows
403 if flag(use-streamly-core)
406test-suite FileSystem.Handle
408 type: exitcode-stdio-1.0
409 main-is: Streamly/Test/FileSystem/Handle.hs
410 ghc-options: -main-is Streamly.Test.FileSystem.Handle.main
411 if flag(use-streamly-core)
414test-suite Network.Inet.TCP
416 type: exitcode-stdio-1.0
417 main-is: Streamly/Test/Network/Inet/TCP.hs
418 ghc-options: -rtsopts -fno-ignore-asserts
420 build-depends: streamly-tests
421 -- Cannot killThread in listen/accept on Windows threaded runtime
423 ghc-options: -threaded -with-rtsopts=-N
424 if flag(use-streamly-core)
427test-suite Network.Socket
429 type: exitcode-stdio-1.0
430 main-is: Streamly/Test/Network/Socket.hs
431 ghc-options: -rtsopts -fno-ignore-asserts
433 build-depends: streamly-tests
434 -- Cannot killThread in listen/accept on Windows threaded runtime
436 ghc-options: -threaded -with-rtsopts=-N
437 if flag(use-streamly-core)
442 type: exitcode-stdio-1.0
443 main-is: Streamly/Test/Prelude.hs
444 ghc-options: -main-is Streamly.Test.Prelude.main
445 if flag(use-streamly-core)
448test-suite Prelude.Ahead
450 type: exitcode-stdio-1.0
451 main-is: Streamly/Test/Prelude/Ahead.hs
452 ghc-options: -main-is Streamly.Test.Prelude.Ahead.main
453 if flag(use-streamly-core)
456test-suite Prelude.Async
458 type: exitcode-stdio-1.0
459 main-is: Streamly/Test/Prelude/Async.hs
460 ghc-options: -main-is Streamly.Test.Prelude.Async.main
461 if flag(use-streamly-core)
464test-suite Data.Stream.Concurrent
466 type: exitcode-stdio-1.0
467 main-is: Streamly/Test/Data/Stream/Concurrent.hs
468 ghc-options: -main-is Streamly.Test.Data.Stream.Concurrent.main
469 if flag(use-streamly-core)
472test-suite Prelude.Concurrent
474 type: exitcode-stdio-1.0
475 main-is: Streamly/Test/Prelude/Concurrent.hs
476 ghc-options: -main-is Streamly.Test.Prelude.Concurrent.main
477 if flag(limit-build-mem)
478 ghc-options: +RTS -M2000M -RTS
479 if flag(use-streamly-core)
482test-suite Prelude.Fold
484 type: exitcode-stdio-1.0
485 main-is: Streamly/Test/Prelude/Fold.hs
486 ghc-options: -main-is Streamly.Test.Prelude.Fold.main
487 if flag(use-streamly-core)
490test-suite Prelude.Parallel
492 type: exitcode-stdio-1.0
493 main-is: Streamly/Test/Prelude/Parallel.hs
494 ghc-options: -main-is Streamly.Test.Prelude.Parallel.main
495 if flag(use-streamly-core)
498test-suite Prelude.Rate
499 import:always-optimized
500 type: exitcode-stdio-1.0
501 main-is: Streamly/Test/Prelude/Rate.hs
502 ghc-options: -main-is Streamly.Test.Prelude.Rate.main
507 if flag(use-streamly-core)
510test-suite Prelude.Serial
512 type: exitcode-stdio-1.0
513 main-is: Streamly/Test/Prelude/Serial.hs
514 ghc-options: -main-is Streamly.Test.Prelude.Serial.main
515 if flag(limit-build-mem)
516 ghc-options: +RTS -M1500M -RTS
517 if flag(use-streamly-core)
520test-suite Prelude.Top
522 type: exitcode-stdio-1.0
523 main-is: Streamly/Test/Prelude/Top.hs
524 if flag(use-streamly-core)
527test-suite Prelude.WAsync
529 type: exitcode-stdio-1.0
530 main-is: Streamly/Test/Prelude/WAsync.hs
531 ghc-options: -main-is Streamly.Test.Prelude.WAsync.main
532 if flag(use-streamly-core)
535test-suite Prelude.WSerial
537 type: exitcode-stdio-1.0
538 main-is: Streamly/Test/Prelude/WSerial.hs
539 ghc-options: -main-is Streamly.Test.Prelude.WSerial.main
540 if flag(use-streamly-core)
543test-suite Prelude.ZipAsync
545 type: exitcode-stdio-1.0
546 main-is: Streamly/Test/Prelude/ZipAsync.hs
547 ghc-options: -main-is Streamly.Test.Prelude.ZipAsync.main
548 if flag(limit-build-mem)
549 ghc-options: +RTS -M750M -RTS
550 if flag(use-streamly-core)
553test-suite Prelude.ZipSerial
555 type: exitcode-stdio-1.0
556 main-is: Streamly/Test/Prelude/ZipSerial.hs
557 ghc-options: -main-is Streamly.Test.Prelude.ZipSerial.main
558 if flag(use-streamly-core)
561test-suite Unicode.Stream
563 type: exitcode-stdio-1.0
564 main-is: Streamly/Test/Unicode/Stream.hs
565 ghc-options: -main-is Streamly.Test.Unicode.Stream.main
566 if flag(use-streamly-core)
569test-suite Unicode.Parser
571 type: exitcode-stdio-1.0
572 main-is: Streamly/Test/Unicode/Parser.hs
573 ghc-options: -main-is Streamly.Test.Unicode.Parser.main
574 if flag(use-streamly-core)
577test-suite Unicode.Char
579 type: exitcode-stdio-1.0
580 main-is: Streamly/Test/Unicode/Char.hs
581 ghc-options: -main-is Streamly.Test.Unicode.Char.main
582 if flag(use-streamly-core) || !flag(dev)
585test-suite Serialize.Serializable
587 type: exitcode-stdio-1.0
588 main-is: Streamly/Test/Serialize/Serializable.hs
590test-suite version-bounds
592 type: exitcode-stdio-1.0
593 main-is: version-bounds.hs
keysesc to close
- j k
- move down, up
- enter
- open
- esc
- back, or up a level
- 1 2 3 4
- readme, files, commits, refs
- /
- filter
- y
- copy the clone command
- c
- compare the chosen commit with another (or shift-click both)
- ?
- show or hide this list