gnu: ghc-haddock-library: Update to 1.7.0.
[jackhill/guix/guix.git] / gnu / packages / haskell-check.scm
CommitLineData
a06b9b50
RW
1;;; GNU Guix --- Functional package management for GNU
2;;; Copyright © 2015 Paul van der Walt <paul@denknerd.org>
3;;; Copyright © 2015 Eric Bavier <bavier@member.fsf.org>
4;;; Copyright © 2015 Federico Beffa <beffa@fbengineering.ch>
7291ad1e 5;;; Copyright © 2015, 2016, 2017, 2018 Ricardo Wurmus <rekado@elephly.net>
47956fa0 6;;; Copyright © 2016 ng0 <ng0@n0.is>
a06b9b50
RW
7;;; Copyright © 2016 David Craven <david@craven.ch>
8;;; Copyright © 2017 Danny Milosavljevic <dannym@scratchpost.org>
9;;; Copyright © 2017 rsiddharth <s@ricketyspace.net>
03de2634 10;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
44cea578 11;;; Copyright © 2018 Tonton <tonton@riseup.net>
cdccdec1 12;;; Copyright © 2018 Arun Isaac <arunisaac@systemreboot.net>
a06b9b50
RW
13;;;
14;;; This file is part of GNU Guix.
15;;;
16;;; GNU Guix is free software; you can redistribute it and/or modify it
17;;; under the terms of the GNU General Public License as published by
18;;; the Free Software Foundation; either version 3 of the License, or (at
19;;; your option) any later version.
20;;;
21;;; GNU Guix is distributed in the hope that it will be useful, but
22;;; WITHOUT ANY WARRANTY; without even the implied warranty of
23;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
24;;; GNU General Public License for more details.
25;;;
26;;; You should have received a copy of the GNU General Public License
27;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
28
29(define-module (gnu packages haskell-check)
30 #:use-module (gnu packages)
47a6582b 31 #:use-module (gnu packages haskell-crypto)
dddbc90c 32 #:use-module (gnu packages haskell-xyz)
a06b9b50
RW
33 #:use-module (guix build-system haskell)
34 #:use-module (guix download)
35 #:use-module ((guix licenses) #:prefix license:)
36 #:use-module (guix packages)
37 #:use-module (guix utils))
38
39(define-public ghc-tasty-ant-xml
40 (package
41 (name "ghc-tasty-ant-xml")
c69f98ba 42 (version "1.1.6")
a06b9b50
RW
43 (source
44 (origin
45 (method url-fetch)
46 (uri (string-append
47 "https://hackage.haskell.org/package/tasty-ant-xml/tasty-ant-xml-"
48 version
49 ".tar.gz"))
50 (sha256
51 (base32
c69f98ba 52 "13qqpl1prr9dda87dp45mqybay24n8rhxxgvpc9j34kh72g8j5qw"))))
a06b9b50
RW
53 (build-system haskell-build-system)
54 (inputs
55 `(("ghc-generic-deriving" ,ghc-generic-deriving)
56 ("ghc-xml" ,ghc-xml)
a06b9b50
RW
57 ("ghc-tagged" ,ghc-tagged)
58 ("ghc-tasty" ,ghc-tasty)))
59 (home-page
60 "https://github.com/ocharles/tasty-ant-xml")
61 (synopsis
62 "Render tasty output to XML for Jenkins")
63 (description
64 "A tasty ingredient to output test results in XML, using the Ant
65schema. This XML can be consumed by the Jenkins continuous integration
66framework.")
67 (license license:bsd-3)))
68
69(define-public ghc-tasty-smallcheck
70 (package
71 (name "ghc-tasty-smallcheck")
f3ec9866 72 (version "0.8.1")
a06b9b50
RW
73 (source
74 (origin
75 (method url-fetch)
76 (uri (string-append
77 "https://hackage.haskell.org/package/tasty-smallcheck/tasty-smallcheck-"
78 version
79 ".tar.gz"))
80 (sha256
81 (base32
f3ec9866 82 "1n66ngzllf3xrlqykwszlkwsi96n5nkm7xbpfq7774vpvfnafjri"))))
a06b9b50
RW
83 (build-system haskell-build-system)
84 (inputs
85 `(("ghc-tasty" ,ghc-tasty)
86 ("ghc-smallcheck" ,ghc-smallcheck)
87 ("ghc-async" ,ghc-async)
88 ("ghc-tagged" ,ghc-tagged)))
1fd90622 89 (home-page "https://documentup.com/feuerbach/tasty")
a06b9b50
RW
90 (synopsis "SmallCheck support for the Tasty test framework")
91 (description "This package provides SmallCheck support for the Tasty
92Haskell test framework.")
93 (license license:bsd-3)))
94
95(define-public ghc-tasty-quickcheck
96 (package
97 (name "ghc-tasty-quickcheck")
b542650c 98 (version "0.10.1")
a06b9b50
RW
99 (source
100 (origin
101 (method url-fetch)
102 (uri (string-append
103 "https://hackage.haskell.org/package/tasty-quickcheck/"
104 "tasty-quickcheck-" version ".tar.gz"))
105 (sha256
106 (base32
b542650c 107 "0k4vvd5vmrncv1s6gdf03l4xijwlk428sb9jfx8n1zaz02971msh"))))
a06b9b50
RW
108 (build-system haskell-build-system)
109 (inputs
110 `(("ghc-quickcheck" ,ghc-quickcheck)
111 ("ghc-tagged" ,ghc-tagged)
112 ("ghc-tasty" ,ghc-tasty)
113 ("ghc-random" ,ghc-random)
114 ("ghc-ansi-terminal" ,ghc-ansi-terminal)
115 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
116 ("ghc-pcre-light" ,ghc-pcre-light)))
117 (home-page "http://documentup.com/feuerbach/tasty")
118 (synopsis "QuickCheck support for the Tasty test framework")
119 (description "This package provides QuickCheck support for the Tasty
120Haskell test framework.")
121 (license license:expat)))
122
123(define-public ghc-tasty-golden
124 (package
125 (name "ghc-tasty-golden")
576b7dd5 126 (version "2.3.2")
a06b9b50
RW
127 (source
128 (origin
129 (method url-fetch)
130 (uri (string-append
131 "https://hackage.haskell.org/package/tasty-golden/tasty-golden-"
132 version
133 ".tar.gz"))
134 (sha256
135 (base32
576b7dd5 136 "0k3ibjhjc9vcwzrjnl4rnwvfm8l81q347nb7dgvcib6n5wm3s404"))))
a06b9b50
RW
137 (build-system haskell-build-system)
138 (inputs
139 `(("ghc-temporary" ,ghc-temporary)
140 ("ghc-tasty" ,ghc-tasty)
a06b9b50
RW
141 ("ghc-optparse-applicative" ,ghc-optparse-applicative)
142 ("ghc-tagged" ,ghc-tagged)
143 ("ghc-async" ,ghc-async)
144 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
145 ("ghc-temporary-rc" ,ghc-temporary-rc)))
146 (home-page
147 "https://github.com/feuerbach/tasty-golden")
148 (synopsis "Golden tests support for tasty")
149 (description
36a4366d
EF
150 "This package provides support for @code{golden testing}. A @dfn{golden
151test} is an IO action that writes its result to a file. To pass the test, this
152output file should be identical to the corresponding @code{golden} file, which
49b9c800 153contains the correct result for the test.")
a06b9b50
RW
154 (license license:expat)))
155
a06b9b50
RW
156(define-public ghc-tasty
157 (package
158 (name "ghc-tasty")
28049c2a 159 (version "1.2.3")
a06b9b50
RW
160 (source
161 (origin
162 (method url-fetch)
163 (uri (string-append
164 "https://hackage.haskell.org/package/tasty/tasty-"
165 version
166 ".tar.gz"))
167 (sha256
168 (base32
28049c2a 169 "0qpn0avpw4w1qq5r2gwh2piipj0llqq6ylagr3xnqiraq6mhg8cc"))))
a06b9b50
RW
170 (build-system haskell-build-system)
171 (inputs
a1eb8be8 172 `(("ghc-tagged" ,ghc-tagged)
669692eb 173 ("ghc-regex-tdfa" ,ghc-regex-tdfa)
a06b9b50
RW
174 ("ghc-optparse-applicative" ,ghc-optparse-applicative)
175 ("ghc-unbounded-delays" ,ghc-unbounded-delays)
176 ("ghc-async" ,ghc-async)
177 ("ghc-ansi-terminal" ,ghc-ansi-terminal)
9d1944a4
TS
178 ("ghc-clock-bootstrap" ,ghc-clock-bootstrap)
179 ("ghc-wcwidth" ,ghc-wcwidth-bootstrap)))
a06b9b50
RW
180 (home-page "http://documentup.com/feuerbach/tasty")
181 (synopsis "Modern and extensible testing framework")
182 (description "Tasty is a modern testing framework for Haskell. It lets
183you combine your unit tests, golden tests, QuickCheck/SmallCheck properties,
184and any other types of tests into a single test suite.")
185 (license license:expat)))
186
5e2d41f4
TS
187(define-public ghc-tasty-hedgehog
188 (package
189 (name "ghc-tasty-hedgehog")
190 (version "1.0.0.1")
191 (source
192 (origin
193 (method url-fetch)
194 (uri (string-append "https://hackage.haskell.org/package/"
195 "tasty-hedgehog/tasty-hedgehog-" version ".tar.gz"))
196 (sha256
197 (base32
198 "1mbg5q0c0xfrk4npfj60pi693igb7r5l78x6xf9fk2jglw0nmxhz"))))
199 (build-system haskell-build-system)
200 (inputs
201 `(("ghc-tagged" ,ghc-tagged)
202 ("ghc-tasty" ,ghc-tasty)
203 ("ghc-hedgehog" ,ghc-hedgehog)))
204 (native-inputs
205 `(("ghc-tasty-expected-failure" ,ghc-tasty-expected-failure)))
206 (arguments
207 `(#:cabal-revision
208 ("1" "1n6797fm8swyrk8cw7zxz593gq82wx8dayvm204rmgcz75bslcpn")))
209 (home-page "https://github.com/qfpl/tasty-hedgehog")
210 (synopsis "Integration for tasty and hedgehog")
211 (description "This package provides the means for integrating the
212@url{https://hackage.haskell.org/package/hedgehog, hedgehog testing library}
213with the @url{https://hackage.haskell.org/package/tasty, tasty testing
214framework}.")
215 (license license:bsd-3)))
216
a06b9b50
RW
217(define-public ghc-tasty-hunit
218 (package
219 (name "ghc-tasty-hunit")
92db1a88 220 (version "0.10.0.2")
a06b9b50
RW
221 (source
222 (origin
223 (method url-fetch)
224 (uri (string-append
225 "https://hackage.haskell.org/package/tasty-hunit/tasty-hunit-"
226 version
227 ".tar.gz"))
228 (sha256
229 (base32
92db1a88 230 "1xvf5xs0r8xqkcg354klz4wyzwyzvinalyl6f4fnxwqmzrgch8s8"))))
a06b9b50
RW
231 (build-system haskell-build-system)
232 (inputs
58182daa
TS
233 `(("ghc-call-stack" ,ghc-call-stack-boot)
234 ("ghc-tasty" ,ghc-tasty)))
a06b9b50
RW
235 (home-page "http://documentup.com/feuerbach/tasty")
236 (synopsis "HUnit support for the Tasty test framework")
237 (description "This package provides HUnit support for the Tasty Haskell
238test framework.")
239 (license license:expat)))
240
241(define-public ghc-tasty-kat
242 (package
243 (name "ghc-tasty-kat")
244 (version "0.0.3")
245 (source (origin
246 (method url-fetch)
247 (uri (string-append "https://hackage.haskell.org/package/"
248 "tasty-kat/tasty-kat-" version ".tar.gz"))
249 (sha256
250 (base32
251 "14yvlpli6cv6bn3kh8mlfp4x1l6ns4fvmfv6hmj75cvxyzq029d7"))))
252 (build-system haskell-build-system)
253 (inputs
254 `(("ghc-tasty" ,ghc-tasty)
a06b9b50
RW
255 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)
256 ("ghc-tasty-hunit" ,ghc-tasty-hunit)))
257 (home-page "https://github.com/vincenthz/tasty-kat")
258 (synopsis "Known Answer Tests (KAT) framework for tasty")
259 (description
260 "This package provides a @dfn{Known Answer Tests} (KAT) framework for
261tasty.")
262 (license license:expat)))
263
264(define-public ghc-tasty-th
265 (package
266 (name "ghc-tasty-th")
310d782e 267 (version "0.1.7")
a06b9b50
RW
268 (source
269 (origin
270 (method url-fetch)
271 (uri (string-append
272 "https://hackage.haskell.org/package/tasty-th/tasty-th-"
273 version ".tar.gz"))
274 (sha256
275 (base32
310d782e 276 "0b2ivrw2257m4cy4rjnkwqlarh83j1y3zywnmaqqqbvy667sqnj3"))))
a06b9b50
RW
277 (build-system haskell-build-system)
278 (inputs
310d782e
TS
279 `(("ghc-haskell-src-exts" ,ghc-haskell-src-exts)
280 ("ghc-tasty" ,ghc-tasty)
281 ("ghc-tasty-hunit" ,ghc-tasty-hunit)))
a06b9b50
RW
282 (home-page "https://github.com/bennofs/tasty-th")
283 (synopsis "Automatically generate tasty TestTrees")
284 (description
285 "Tasty-th automatically generates tasty TestTrees from functions of the
286current module, using TemplateHaskell. This is a fork the original
287test-framework-th package, modified to work with tasty instead of
288test-framework.")
289 (license license:bsd-3)))
290
291(define-public ghc-tasty-rerun
292 (package
293 (name "ghc-tasty-rerun")
f752336c 294 (version "1.1.12")
a06b9b50
RW
295 (source (origin
296 (method url-fetch)
297 (uri (string-append
298 "https://hackage.haskell.org/package/tasty-rerun/"
299 "tasty-rerun-" version ".tar.gz"))
300 (sha256
301 (base32
f752336c 302 "05lp4zy6lwd916snq6hs43848n62j9vdfl3s8sfivqydrax0vvd8"))))
a06b9b50
RW
303 (build-system haskell-build-system)
304 (inputs
f54f0475 305 `(("ghc-optparse-applicative" ,ghc-optparse-applicative)
a06b9b50
RW
306 ("ghc-reducers" ,ghc-reducers)
307 ("ghc-split" ,ghc-split)
a06b9b50
RW
308 ("ghc-tagged" ,ghc-tagged)
309 ("ghc-tasty" ,ghc-tasty)))
310 (home-page "https://github.com/ocharles/tasty-rerun")
311 (synopsis "Run tests by filtering the test tree")
312 (description "This package adds the ability to run tests by filtering the
313test tree based on the result of a previous test run. You can use this to run
314only those tests that failed in the last run, or to only run the tests that have
315been added since previous test run.")
316 (license license:bsd-3)))
317
ee448389
RW
318(define-public ghc-tasty-expected-failure
319 (package
320 (name "ghc-tasty-expected-failure")
13e9d13c 321 (version "0.11.1.2")
ee448389
RW
322 (source
323 (origin
324 (method url-fetch)
325 (uri (string-append "https://hackage.haskell.org/package/"
326 "tasty-expected-failure/tasty-expected-failure-"
327 version ".tar.gz"))
328 (sha256
329 (base32
13e9d13c 330 "175gdk1mkslcwjxajkbl4zmaigzf8h4svzd7va5qb519y0dxk28n"))))
ee448389
RW
331 (build-system haskell-build-system)
332 (inputs
333 `(("ghc-tagged" ,ghc-tagged)
334 ("ghc-tasty" ,ghc-tasty)))
335 (home-page "http://github.com/nomeata/tasty-expected-failure")
336 (synopsis "Mark tasty tests as failure expected")
337 (description
338 "With the function @code{Test.Tasty.ExpectedFailure.expectFail} in the
339provided module @code{Test.Tasty.ExpectedFailure}, you can mark that you
340expect test cases to fail, and not to pass. This can be used for test-driven
341development.")
342 (license license:expat)))
343
a06b9b50
RW
344(define-public ghc-quickcheck-instances
345 (package
346 (name "ghc-quickcheck-instances")
e9f64fa0 347 (version "0.3.22")
a06b9b50
RW
348 (source
349 (origin
350 (method url-fetch)
351 (uri (string-append
352 "https://hackage.haskell.org/package/"
353 "quickcheck-instances/quickcheck-instances-"
354 version ".tar.gz"))
355 (sha256
356 (base32
e9f64fa0 357 "14asr9r7da3w7p4hjj51w2yb002nz8x0np8hdz9z4yjvi60vyrax"))))
a06b9b50 358 (build-system haskell-build-system)
cdccdec1 359 (arguments
fc042487 360 `(#:cabal-revision
e9f64fa0 361 ("2" "1ia5fjhpg7rz793552v88gv2iqx7hl9mi2g09m0llasy1cpzc9jr")))
a06b9b50 362 (inputs
04a69991
RW
363 `(("ghc-quickcheck" ,ghc-quickcheck)
364 ("ghc-base-compat" ,ghc-base-compat)
365 ("ghc-case-insensitive" ,ghc-case-insensitive)
a06b9b50 366 ("ghc-hashable" ,ghc-hashable)
04a69991 367 ("ghc-old-time" ,ghc-old-time)
a06b9b50 368 ("ghc-scientific" ,ghc-scientific)
04a69991 369 ("ghc-tagged" ,ghc-tagged)
e9f64fa0 370 ("ghc-time-compat" ,ghc-time-compat)
04a69991
RW
371 ("ghc-transformers-compat" ,ghc-transformers-compat)
372 ("ghc-unordered-containers" ,ghc-unordered-containers)
373 ("ghc-uuid-types" ,ghc-uuid-types)
374 ("ghc-vector" ,ghc-vector)))
375 (home-page "https://github.com/aslatter/qc-instances")
a06b9b50
RW
376 (synopsis "Common quickcheck instances")
377 (description "This package provides QuickCheck instances for types
378provided by the Haskell Platform.")
379 (license license:bsd-3)))
380
381(define-public ghc-quickcheck-unicode
382 (package
383 (name "ghc-quickcheck-unicode")
03de2634 384 (version "1.0.1.0")
a06b9b50
RW
385 (source
386 (origin
387 (method url-fetch)
388 (uri (string-append
03de2634
TGR
389 "https://hackage.haskell.org/package/quickcheck-unicode/"
390 "quickcheck-unicode-" version ".tar.gz"))
a06b9b50
RW
391 (sha256
392 (base32
03de2634 393 "0s43s1bzbg3gwsjgm7fpyksd1339f0m26dlw2famxwyzgvm0a80k"))))
a06b9b50
RW
394 (build-system haskell-build-system)
395 (inputs `(("ghc-quickcheck" ,ghc-quickcheck)))
396 (home-page
397 "https://github.com/bos/quickcheck-unicode")
398 (synopsis "Generator functions Unicode-related tests")
399 (description "This package provides generator and shrink functions for
400testing Unicode-related software.")
401 (license license:bsd-3)))
402
403(define-public ghc-quickcheck-io
404 (package
405 (name "ghc-quickcheck-io")
bb0e9ca4 406 (version "0.2.0")
a06b9b50
RW
407 (source
408 (origin
409 (method url-fetch)
410 (uri (string-append
411 "https://hackage.haskell.org/package/quickcheck-io/quickcheck-io-"
412 version
413 ".tar.gz"))
414 (sha256
415 (base32
bb0e9ca4 416 "08k4v7pkgjf30pv5j2dfv1gqv6hclxlniyq2sps8zq4zswcr2xzv"))))
a06b9b50
RW
417 (build-system haskell-build-system)
418 (inputs
419 `(("ghc-quickcheck" ,ghc-quickcheck)
420 ("ghc-hunit" ,ghc-hunit)))
421 (home-page
422 "https://github.com/hspec/quickcheck-io#readme")
423 (synopsis "Use HUnit assertions as QuickCheck properties")
424 (description "This package provides an orphan instance that allows you to
425use HUnit assertions as QuickCheck properties.")
426 (license license:expat)))
427
428(define-public ghc-quickcheck
429 (package
430 (name "ghc-quickcheck")
178f69cb 431 (version "2.13.2")
a06b9b50
RW
432 (outputs '("out" "doc"))
433 (source
434 (origin
435 (method url-fetch)
436 (uri (string-append
437 "https://hackage.haskell.org/package/QuickCheck/QuickCheck-"
438 version
439 ".tar.gz"))
440 (sha256
441 (base32
178f69cb 442 "0426j43af8v3qmdjjqxivazsvr3a2brac8yw09vpgpjkb2m0nmkv"))))
a06b9b50
RW
443 (build-system haskell-build-system)
444 (arguments
09b52698 445 `(#:tests? #f)) ; FIXME: currently missing libraries used for tests.
a06b9b50 446 (inputs
7291ad1e 447 `(("ghc-random" ,ghc-random)
178f69cb 448 ("ghc-splitmix" ,ghc-splitmix-bootstrap)
7291ad1e
RW
449 ("ghc-tf-random" ,ghc-tf-random)))
450 (home-page "https://github.com/nick8325/quickcheck")
451 (synopsis "Automatic testing of Haskell programs")
a06b9b50 452 (description
7291ad1e
RW
453 "QuickCheck is a library for random testing of program properties. The
454programmer provides a specification of the program, in the form of properties
455which functions should satisfy, and QuickCheck then tests that the properties
456hold in a large number of randomly generated cases. Specifications are
457expressed in Haskell, using combinators defined in the QuickCheck library.")
a06b9b50
RW
458 (license license:bsd-3)))
459
460(define-public ghc-test-framework
461 (package
462 (name "ghc-test-framework")
bc8bda50 463 (version "0.8.2.0")
a06b9b50
RW
464 (source
465 (origin
466 (method url-fetch)
467 (uri (string-append "https://hackage.haskell.org/package/test-framework/"
468 "test-framework-" version ".tar.gz"))
469 (sha256
470 (base32
bc8bda50 471 "1hhacrzam6b8f10hyldmjw8pb7frdxh04rfg3farxcxwbnhwgbpm"))))
a06b9b50 472 (build-system haskell-build-system)
7fa02bc7 473 (arguments
bc8bda50 474 `(#:tests? #f ; FIXME: Tests do not build.
d418ec06
TS
475 #:cabal-revision
476 ("5" "18g92ajx3ghznd6k3ihj22ln29n676ailzwx3k0f1kj3bmpilnh6")))
a06b9b50
RW
477 (native-inputs
478 `(("ghc-hunit" ,ghc-hunit)
479 ("ghc-quickcheck" ,ghc-quickcheck)))
480 (inputs
481 `(("ghc-ansi-terminal" ,ghc-ansi-terminal)
482 ("ghc-ansi-wl-pprint" ,ghc-ansi-wl-pprint)
483 ("ghc-hostname" ,ghc-hostname)
484 ("ghc-old-locale" ,ghc-old-locale)
485 ("ghc-random" ,ghc-random)
486 ("ghc-regex-posix" ,ghc-regex-posix)
487 ("ghc-xml" ,ghc-xml)
bc8bda50
TS
488 ("ghc-libxml" ,ghc-libxml)
489 ("ghc-semigroups" ,ghc-semigroups-bootstrap)))
a06b9b50
RW
490 (home-page "https://batterseapower.github.io/test-framework/")
491 (synopsis "Framework for running and organising tests")
492 (description
493 "This package allows tests such as QuickCheck properties and HUnit test
494cases to be assembled into test groups, run in parallel (but reported in
495deterministic order, to aid diff interpretation) and filtered and controlled
496by command line options. All of this comes with colored test output, progress
497reporting and test statistics output.")
498 (license license:bsd-3)))
499
500(define-public ghc-test-framework-hunit
501 (package
502 (name "ghc-test-framework-hunit")
08bb5bbb 503 (version "0.3.0.2")
a06b9b50
RW
504 (source
505 (origin
506 (method url-fetch)
507 (uri (string-append "https://hackage.haskell.org/package/"
508 "test-framework-hunit/test-framework-hunit-"
509 version ".tar.gz"))
510 (sha256
511 (base32
08bb5bbb 512 "1y0b6vg8nfm43v90lxxcydhi6qlxhfy4vpxbzm5ic2w55bh8xjwm"))))
a06b9b50 513 (build-system haskell-build-system)
a5f7a5f6 514 (arguments
aeb1c6ab
TS
515 `(#:cabal-revision
516 ("3" "0i9mlalv7cl1iq43ld5myrnpszq5rxmd79hk495dcb08rglhgl3z")))
a06b9b50
RW
517 (inputs
518 `(("ghc-extensible-exceptions" ,ghc-extensible-exceptions)
519 ("ghc-hunit" ,ghc-hunit)
520 ("ghc-test-framework" ,ghc-test-framework)))
521 (home-page "https://batterseapower.github.io/test-framework/")
522 (synopsis "HUnit support for test-framework")
523 (description
524 "This package provides HUnit support for the test-framework package.")
525 (license license:bsd-3)))
526
527(define-public ghc-test-framework-quickcheck2
528 (package
529 (name "ghc-test-framework-quickcheck2")
fee444f5 530 (version "0.3.0.5")
a06b9b50
RW
531 (source
532 (origin
533 (method url-fetch)
534 (uri (string-append "https://hackage.haskell.org/package/"
535 "test-framework-quickcheck2/"
536 "test-framework-quickcheck2-" version ".tar.gz"))
537 (sha256
538 (base32
fee444f5 539 "0ngf9vvby4nrdf1i7dxf5m9jn0g2pkq32w48xdr92n9hxka7ixn9"))))
a06b9b50 540 (build-system haskell-build-system)
c2d2f275
TS
541 (arguments
542 `(#:cabal-revision
fee444f5 543 ("1" "1vmpk70h1594h9s216d3ngkb399fpny1d3sh4gg0vrc75p4as68d")))
a06b9b50
RW
544 (inputs
545 `(("ghc-extensible-exceptions" ,ghc-extensible-exceptions)
546 ("ghc-quickcheck" ,ghc-quickcheck)
547 ("ghc-random" ,ghc-random)
548 ("ghc-test-framework" ,ghc-test-framework)))
549 (home-page "https://batterseapower.github.io/test-framework/")
550 (synopsis "QuickCheck2 support for test-framework")
551 (description
3c7b6509 552 "This package provides QuickCheck2 support for the test-framework
a06b9b50
RW
553package.")
554 (license license:bsd-3)))
555
556(define-public ghc-test-framework-th
557 (package
558 (name "ghc-test-framework-th")
559 (version "0.2.4")
560 (source
561 (origin
562 (method url-fetch)
563 (uri (string-append "https://hackage.haskell.org/package/"
564 "test-framework-th-" version "/"
565 "test-framework-th-" version ".tar.gz"))
566 (sha256
567 (base32
568 "12lw7yj02jb9s0i7rb98jjam43j2h0gzmnbj9zi933fx7sg0sy4b"))))
569 (build-system haskell-build-system)
570 (inputs
571 `(("ghc-test-framework" ,ghc-test-framework)
572 ("ghc-language-haskell-extract" ,ghc-language-haskell-extract)
573 ("ghc-haskell-src-exts" ,ghc-haskell-src-exts)
574 ("ghc-regex-posix" ,ghc-regex-posix)))
575 (home-page "https://github.com/finnsson/test-generator")
576 (synopsis "Auto generate the HUnit- and Quickcheck-bulk-code
577using Template Haskell")
578 (description "This library contains two functions:
579@code{defaultMainGenerator} and @code{testGroupGenerator}.
580
581@code{defaultMainGenerator} will extract all functions beginning with
582@code{case_}, @code{prop_}, or @code{test_} in the module and put them in a
583@code{testGroup}.
584
585@code{testGroupGenerator} is like @code{defaultMainGenerator} but without
586@code{defaultMain}. It is useful if you need a function for the testgroup
587\(e.g. if you want to be able to call the testgroup from another module).")
588 (license license:bsd-3)))
589
590(define-public ghc-hunit
591 (package
592 (name "ghc-hunit")
f1ac3bba 593 (version "1.6.0.0")
a06b9b50
RW
594 (outputs '("out" "doc"))
595 (source
596 (origin
597 (method url-fetch)
f1ac3bba
RW
598 (uri (string-append "https://hackage.haskell.org/package/HUnit/"
599 "HUnit-" version ".tar.gz"))
a06b9b50
RW
600 (sha256
601 (base32
f1ac3bba 602 "1pnhwqq5v8h48gbp3ibv3skfj25mf4zs5svxcavq93p9cswycj3l"))))
a06b9b50 603 (build-system haskell-build-system)
f1ac3bba
RW
604 (inputs
605 ;; We cannot use ghc-call-stack there, because it depends on
606 ;; ghc-nanospec, which depends on ghc-hunit.
607 `(("ghc-call-stack" ,ghc-call-stack-boot)))
a06b9b50
RW
608 (home-page "http://hunit.sourceforge.net/")
609 (synopsis "Unit testing framework for Haskell")
610 (description
611 "HUnit is a unit testing framework for Haskell, inspired by the
612JUnit tool for Java.")
613 (license license:bsd-3)))
614
615(define-public hspec-discover
616 (package
617 (name "hspec-discover")
a5a870d8 618 (version "2.7.1")
a06b9b50
RW
619 (source
620 (origin
621 (method url-fetch)
8d04a5c9
RW
622 (uri (string-append "https://hackage.haskell.org/package/"
623 "hspec-discover/hspec-discover-"
624 version ".tar.gz"))
a06b9b50
RW
625 (sha256
626 (base32
a5a870d8 627 "0r47fm94wa6qrhp8cc1zzkjrxc32rnagfn9m9ga4dm6p6ydw4c8b"))))
a06b9b50 628 (build-system haskell-build-system)
8d04a5c9
RW
629 (native-inputs
630 `(("ghc-quickcheck" ,ghc-quickcheck)
631 ("ghc-hspec-meta" ,ghc-hspec-meta)))
78724a5a 632 (home-page "https://hspec.github.io/")
a06b9b50
RW
633 (synopsis "Automatically discover and run Hspec tests")
634 (description "hspec-discover is a tool which automatically discovers and
635runs Hspec tests.")
636 (license license:expat)))
637
638(define-public ghc-hspec-core
639 (package
640 (name "ghc-hspec-core")
a777c69a 641 (version "2.7.1")
a06b9b50
RW
642 (source
643 (origin
644 (method url-fetch)
3b8e4774
RW
645 (uri (string-append "https://hackage.haskell.org/package/hspec-core/"
646 "hspec-core-" version ".tar.gz"))
a06b9b50
RW
647 (sha256
648 (base32
a777c69a 649 "08vk8588lap00hsln8zl64dazbb28lzk4b4h5vnm7xvhg7r21k1c"))))
a06b9b50
RW
650 (build-system haskell-build-system)
651 (arguments `(#:tests? #f)) ; FIXME: testing libraries are missing.
652 (inputs
653 `(("ghc-setenv" ,ghc-setenv)
654 ("ghc-ansi-terminal" ,ghc-ansi-terminal)
3b8e4774 655 ("ghc-clock" ,ghc-clock)
a06b9b50
RW
656 ("ghc-quickcheck-io" ,ghc-quickcheck-io)
657 ("ghc-hunit" ,ghc-hunit)
658 ("ghc-quickcheck" ,ghc-quickcheck)
659 ("ghc-hspec-expectations" ,ghc-hspec-expectations)
a777c69a
TS
660 ("ghc-silently" ,ghc-silently)
661 ("ghc-tf-random" ,ghc-tf-random)))
78724a5a 662 (home-page "https://hspec.github.io/")
a06b9b50
RW
663 (synopsis "Testing framework for Haskell")
664 (description "This library exposes internal types and functions that can
665be used to extend Hspec's functionality.")
666 (license license:expat)))
667
668(define-public ghc-hspec-meta
669 (package
670 (name "ghc-hspec-meta")
ad128630 671 (version "2.6.0")
a06b9b50
RW
672 (source
673 (origin
674 (method url-fetch)
31caca65
RW
675 (uri (string-append "https://hackage.haskell.org/package/hspec-meta/"
676 "hspec-meta-" version ".tar.gz"))
a06b9b50
RW
677 (sha256
678 (base32
ad128630 679 "1n1a4633wfivylglji8920f67mx7qz8j4q58n8p7dxk6yg4h3mz6"))))
a06b9b50
RW
680 (build-system haskell-build-system)
681 (inputs
682 `(("ghc-quickcheck" ,ghc-quickcheck)
683 ("ghc-hunit" ,ghc-hunit)
684 ("ghc-ansi-terminal" ,ghc-ansi-terminal)
ad128630 685 ("ghc-clock" ,ghc-clock)
a06b9b50
RW
686 ("ghc-hspec-expectations" ,ghc-hspec-expectations)
687 ("ghc-setenv" ,ghc-setenv)
688 ("ghc-random" ,ghc-random)
689 ("ghc-quickcheck-io" ,ghc-quickcheck-io)))
78724a5a 690 (home-page "https://hspec.github.io/")
a06b9b50
RW
691 (synopsis "Version of Hspec to test Hspec itself")
692 (description "This library provides a stable version of Hspec which is
693used to test the in-development version of Hspec.")
694 (license license:expat)))
695
696(define-public ghc-hspec
697 (package
698 (name "ghc-hspec")
abbe5a2a 699 (version "2.7.1")
a06b9b50
RW
700 (source
701 (origin
702 (method url-fetch)
c2c8d998
RW
703 (uri (string-append "https://hackage.haskell.org/package/hspec/"
704 "hspec-" version ".tar.gz"))
a06b9b50
RW
705 (sha256
706 (base32
abbe5a2a 707 "1x8rcr7j1azcaw0fg1xzp8j0gr4ias36z09aj24i4xp8pnyfp341"))))
a06b9b50
RW
708 (build-system haskell-build-system)
709 (inputs
710 `(("ghc-hspec-core" ,ghc-hspec-core)
711 ("hspec-discover" ,hspec-discover)
712 ("ghc-hspec-expectations" ,ghc-hspec-expectations)
713 ("ghc-quickcheck" ,ghc-quickcheck)
714 ("ghc-hunit" ,ghc-hunit)
715 ("ghc-stringbuilder" ,ghc-stringbuilder)
716 ("ghc-hspec-meta" ,ghc-hspec-meta)))
78724a5a 717 (home-page "https://hspec.github.io/")
a06b9b50
RW
718 (synopsis "Testing Framework for Haskell")
719 (description "This library provides the Hspec testing framework for
720Haskell, inspired by the Ruby library RSpec.")
721 (license license:expat)))
722
723(define-public ghc-hspec-contrib
724 (package
725 (name "ghc-hspec-contrib")
bb148db8 726 (version "0.5.1")
a06b9b50
RW
727 (source (origin
728 (method url-fetch)
729 (uri (string-append "https://hackage.haskell.org/package/"
730 "hspec-contrib/hspec-contrib-"
731 version ".tar.gz"))
732 (sha256
733 (base32
bb148db8 734 "0hhzxaa3fxz5mk5qcsrnfr98a7bn3szx2ydgr0x9mbqmm1jg06rc"))))
a06b9b50
RW
735 (build-system haskell-build-system)
736 (inputs
737 `(("ghc-hspec-core" ,ghc-hspec-core)
738 ("ghc-hunit" ,ghc-hunit)
739 ("ghc-hspec" ,ghc-hspec)
740 ("ghc-quickcheck" ,ghc-quickcheck)))
741 (native-inputs
742 `(("hspec-discover" ,hspec-discover)))
78724a5a 743 (home-page "https://hspec.github.io/")
a06b9b50
RW
744 (synopsis "Contributed functionality for Hspec")
745 (description
746 "This package provides contributed Hspec extensions.")
747 (license license:expat)))
748
749(define-public ghc-hspec-expectations
750 (package
751 (name "ghc-hspec-expectations")
15fb81e5 752 (version "0.8.2")
a06b9b50
RW
753 (source
754 (origin
755 (method url-fetch)
15fb81e5
RW
756 (uri (string-append "https://hackage.haskell.org/package/"
757 "hspec-expectations/hspec-expectations-"
758 version ".tar.gz"))
a06b9b50
RW
759 (sha256
760 (base32
15fb81e5 761 "1vxl9zazbaapijr6zmcj72j9wf7ka1pirrjbwddwwddg3zm0g5l1"))))
a06b9b50 762 (build-system haskell-build-system)
15fb81e5
RW
763 ;; Tests depend on ghc-nanospec.
764 (arguments '(#:tests? #f))
a06b9b50
RW
765 (inputs `(("ghc-hunit" ,ghc-hunit)))
766 (home-page "https://github.com/sol/hspec-expectations")
767 (synopsis "Catchy combinators for HUnit")
768 (description "This library provides catchy combinators for HUnit, see
769@uref{https://github.com/sol/hspec-expectations#readme, the README}.")
770 (license license:expat)))
a54b7441
RW
771
772(define-public ghc-nanospec
773 (package
774 (name "ghc-nanospec")
775 (version "0.2.2")
776 (source
777 (origin
778 (method url-fetch)
779 (uri (string-append "https://hackage.haskell.org/package/"
780 "nanospec/nanospec-"
781 version ".tar.gz"))
782 (sha256
783 (base32
784 "1rcmhl9bhyfvanalnf1r86wkx6rq6wdvagnw1h011jcnnb1cq56g"))))
785 (build-system haskell-build-system)
786 (inputs
787 `(("ghc-hspec" ,ghc-hspec)
788 ("ghc-silently" ,ghc-silently)))
789 (home-page "https://github.com/hspec/nanospec#readme")
790 (synopsis "Lightweight implementation of a subset of Hspec's API")
791 (description
792 "Nanospec is a lightweight implementation of a subset of Hspec's API with
793minimal dependencies.")
794 (license license:expat)))
47a6582b 795
796(define-public ghc-crypto-cipher-tests
797 (package
798 (name "ghc-crypto-cipher-tests")
799 (version "0.0.11")
800 (source
801 (origin
802 (method url-fetch)
803 (uri (string-append "https://hackage.haskell.org/package/"
804 "crypto-cipher-tests-" version "/"
805 "crypto-cipher-tests-" version ".tar.gz"))
806 (sha256
807 (base32
808 "19wqignlq90qwpam01hnmmrxaxh5lkax9l1l6rlbi4a07nvp1dnz"))))
809 (build-system haskell-build-system)
810 (inputs `(("ghc-quickcheck" ,ghc-quickcheck)
47a6582b 811 ("ghc-hunit" ,ghc-hunit)
812 ("ghc-test-framework" ,ghc-test-framework)
813 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)
814 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
815 ("ghc-byteable" ,ghc-byteable)
816 ("ghc-securemem" ,ghc-securemem)
817 ("ghc-crypto-cipher-types" ,ghc-crypto-cipher-types)))
818 (home-page "https://github.com/vincenthz/hs-crypto-cipher")
819 (synopsis "Generic cryptography cipher tests for Haskell")
820 (description " This Haskell package contains generic tests for
821cryptographic ciphers, and is used by the test runners of various Haskell
822implementations of cryptographic ciphers.")
823 (license license:bsd-3)))
2c4e4bc6
JM
824
825(define-public ghc-hedgehog
826 (package
827 (name "ghc-hedgehog")
cb71ac3d 828 (version "1.0.1")
2c4e4bc6
JM
829 (source
830 (origin
831 (method url-fetch)
832 (uri (string-append
833 "mirror://hackage/package/hedgehog/hedgehog-"
834 version
835 ".tar.gz"))
836 (sha256
837 (base32
cb71ac3d 838 "1qc7hkqbnsk3f5r26wc35r3qiy941nmcxhfqgcq9027kw4gs0bi0"))))
2c4e4bc6
JM
839 (build-system haskell-build-system)
840 (inputs
91732735 841 `(("ghc-ansi-terminal" ,ghc-ansi-terminal)
2c4e4bc6
JM
842 ("ghc-async" ,ghc-async)
843 ("ghc-concurrent-output" ,ghc-concurrent-output)
844 ("ghc-exceptions" ,ghc-exceptions)
cb71ac3d 845 ("ghc-fail" ,ghc-fail)
2c4e4bc6
JM
846 ("ghc-lifted-async" ,ghc-lifted-async)
847 ("ghc-mmorph" ,ghc-mmorph)
848 ("ghc-monad-control" ,ghc-monad-control)
849 ("ghc-pretty-show" ,ghc-pretty-show)
850 ("ghc-primitive" ,ghc-primitive)
851 ("ghc-random" ,ghc-random)
852 ("ghc-resourcet" ,ghc-resourcet)
853 ("ghc-semigroups" ,ghc-semigroups)
2c4e4bc6
JM
854 ("ghc-th-lift" ,ghc-th-lift)
855 ("ghc-transformers-base" ,ghc-transformers-base)
856 ("ghc-wl-pprint-annotated"
857 ,ghc-wl-pprint-annotated)))
858 (home-page "https://hedgehog.qa")
859 (synopsis "Property-based testing in the spirt of QuickCheck")
860 (description
861 "Hedgehog is a property-based testing system, in the spirit of
862QuickCheck. Hedgehog uses integrated shrinking, so shrinks obey the invariants
863of generated values by construction.
864
865To get started quickly, see the examples:
866@uref{https://github.com/hedgehogqa/haskell-hedgehog/tree/master/hedgehog-example}")
867 (license license:bsd-3)))
1ba35ab7
RV
868
869(define-public cabal-doctest
870 (package
871 (name "cabal-doctest")
ff25ccf4 872 (version "1.0.8")
1ba35ab7
RV
873 (source
874 (origin
875 (method url-fetch)
876 (uri (string-append "https://hackage.haskell.org/package/"
877 "cabal-doctest/cabal-doctest-"
878 version ".tar.gz"))
879 (sha256
880 (base32
ff25ccf4 881 "03if74imlhhk7m56nci5f1wclniwqdmwl4hl177040j1gnlac9i0"))))
1ba35ab7 882 (build-system haskell-build-system)
1ba35ab7
RV
883 (home-page "https://github.com/phadej/cabal-doctest")
884 (synopsis "Setup.hs helper for running doctests")
885 (description
886 "To properly work, the @code{doctest} package needs plenty of
887configuration. This library provides the common bits for writing custom
888@file{Setup.hs} files.")
889 (license license:bsd-3)))