gnu: Add ghc-call-stack-boot.
[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>
4a78fd46 6;;; Copyright © 2016 Nils Gillmann <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>
a06b9b50
RW
12;;;
13;;; This file is part of GNU Guix.
14;;;
15;;; GNU Guix is free software; you can redistribute it and/or modify it
16;;; under the terms of the GNU General Public License as published by
17;;; the Free Software Foundation; either version 3 of the License, or (at
18;;; your option) any later version.
19;;;
20;;; GNU Guix is distributed in the hope that it will be useful, but
21;;; WITHOUT ANY WARRANTY; without even the implied warranty of
22;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
23;;; GNU General Public License for more details.
24;;;
25;;; You should have received a copy of the GNU General Public License
26;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
27
28(define-module (gnu packages haskell-check)
29 #:use-module (gnu packages)
30 #:use-module (gnu packages haskell)
47a6582b 31 #:use-module (gnu packages haskell-crypto)
a06b9b50
RW
32 #:use-module (guix build-system haskell)
33 #:use-module (guix download)
34 #:use-module ((guix licenses) #:prefix license:)
35 #:use-module (guix packages)
36 #:use-module (guix utils))
37
38(define-public ghc-tasty-ant-xml
39 (package
40 (name "ghc-tasty-ant-xml")
41 (version "1.0.2")
42 (source
43 (origin
44 (method url-fetch)
45 (uri (string-append
46 "https://hackage.haskell.org/package/tasty-ant-xml/tasty-ant-xml-"
47 version
48 ".tar.gz"))
49 (sha256
50 (base32
51 "0pgz2lclg2hp72ykljcbxd88pjanfdfk8m5vb2qzcyjr85kwrhxv"))))
52 (build-system haskell-build-system)
53 (inputs
54 `(("ghc-generic-deriving" ,ghc-generic-deriving)
55 ("ghc-xml" ,ghc-xml)
56 ("ghc-mtl" ,ghc-mtl)
57 ("ghc-stm" ,ghc-stm)
58 ("ghc-tagged" ,ghc-tagged)
59 ("ghc-tasty" ,ghc-tasty)))
60 (home-page
61 "https://github.com/ocharles/tasty-ant-xml")
62 (synopsis
63 "Render tasty output to XML for Jenkins")
64 (description
65 "A tasty ingredient to output test results in XML, using the Ant
66schema. This XML can be consumed by the Jenkins continuous integration
67framework.")
68 (license license:bsd-3)))
69
70(define-public ghc-tasty-smallcheck
71 (package
72 (name "ghc-tasty-smallcheck")
f3ec9866 73 (version "0.8.1")
a06b9b50
RW
74 (source
75 (origin
76 (method url-fetch)
77 (uri (string-append
78 "https://hackage.haskell.org/package/tasty-smallcheck/tasty-smallcheck-"
79 version
80 ".tar.gz"))
81 (sha256
82 (base32
f3ec9866 83 "1n66ngzllf3xrlqykwszlkwsi96n5nkm7xbpfq7774vpvfnafjri"))))
a06b9b50
RW
84 (build-system haskell-build-system)
85 (inputs
86 `(("ghc-tasty" ,ghc-tasty)
87 ("ghc-smallcheck" ,ghc-smallcheck)
88 ("ghc-async" ,ghc-async)
89 ("ghc-tagged" ,ghc-tagged)))
1fd90622 90 (home-page "https://documentup.com/feuerbach/tasty")
a06b9b50
RW
91 (synopsis "SmallCheck support for the Tasty test framework")
92 (description "This package provides SmallCheck support for the Tasty
93Haskell test framework.")
94 (license license:bsd-3)))
95
96(define-public ghc-tasty-quickcheck
97 (package
98 (name "ghc-tasty-quickcheck")
99 (version "0.8.4")
100 (source
101 (origin
102 (method url-fetch)
103 (uri (string-append
104 "https://hackage.haskell.org/package/tasty-quickcheck/"
105 "tasty-quickcheck-" version ".tar.gz"))
106 (sha256
107 (base32
108 "15rjxib5jmjq0hzj47x15kgp3awc73va4cy1pmpf7k3hvfv4qprn"))))
109 (build-system haskell-build-system)
110 (inputs
111 `(("ghc-quickcheck" ,ghc-quickcheck)
112 ("ghc-tagged" ,ghc-tagged)
113 ("ghc-tasty" ,ghc-tasty)
114 ("ghc-random" ,ghc-random)
115 ("ghc-ansi-terminal" ,ghc-ansi-terminal)
116 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
117 ("ghc-pcre-light" ,ghc-pcre-light)))
118 (home-page "http://documentup.com/feuerbach/tasty")
119 (synopsis "QuickCheck support for the Tasty test framework")
120 (description "This package provides QuickCheck support for the Tasty
121Haskell test framework.")
122 (license license:expat)))
123
124(define-public ghc-tasty-golden
125 (package
126 (name "ghc-tasty-golden")
5f83ccbd 127 (version "2.3.1.1")
a06b9b50
RW
128 (source
129 (origin
130 (method url-fetch)
131 (uri (string-append
132 "https://hackage.haskell.org/package/tasty-golden/tasty-golden-"
133 version
134 ".tar.gz"))
135 (sha256
136 (base32
5f83ccbd 137 "0pcf5hsyp5mmbqn7krdm49jxpkjm6rb4j83j28f76h7q55dzm1wy"))))
a06b9b50
RW
138 (build-system haskell-build-system)
139 (inputs
140 `(("ghc-temporary" ,ghc-temporary)
141 ("ghc-tasty" ,ghc-tasty)
142 ("ghc-mtl" ,ghc-mtl)
143 ("ghc-optparse-applicative" ,ghc-optparse-applicative)
144 ("ghc-tagged" ,ghc-tagged)
145 ("ghc-async" ,ghc-async)
146 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
147 ("ghc-temporary-rc" ,ghc-temporary-rc)))
148 (home-page
149 "https://github.com/feuerbach/tasty-golden")
150 (synopsis "Golden tests support for tasty")
151 (description
49b9c800
TGR
152 "This package provides support for 'golden testing'. A @dfn{golden test}
153is an IO action that writes its result to a file. To pass the test, this
154output file should be identical to the corresponding 'golden' file, which
155contains the correct result for the test.")
a06b9b50
RW
156 (license license:expat)))
157
158;; This package builds `clock` without tests, since the tests rely on tasty
159;; and tasty-quickcheck, which in turn require clock to build.
160(define ghc-clock-bootstrap
161 (package
162 (name "ghc-clock-bootstrap")
163 (version "0.5.1")
164 (source
165 (origin
166 (method url-fetch)
167 (uri (string-append
168 "https://hackage.haskell.org/package/"
169 "clock/"
170 "clock-" version ".tar.gz"))
171 (sha256
172 (base32 "1ncph7vi2q6ywwc8ysxl1ibw6i5dwfvln88ssfazk8jgpj4iyykw"))))
173 (build-system haskell-build-system)
174 (arguments `(#:tests? #f)) ;; Testing suite depends on tasty and
175 ;; tasty-quickcheck, which need clock to build.
176 (home-page "https://hackage.haskell.org/package/clock")
177 (synopsis "High-resolution clock for Haskell")
178 (description "A package for convenient access to high-resolution clock and
179timer functions of different operating systems via a unified API.")
180 (license license:bsd-3)))
181
182(define-public ghc-tasty
183 (package
184 (name "ghc-tasty")
669692eb 185 (version "0.11.0.4")
a06b9b50
RW
186 (source
187 (origin
188 (method url-fetch)
189 (uri (string-append
190 "https://hackage.haskell.org/package/tasty/tasty-"
191 version
192 ".tar.gz"))
193 (sha256
194 (base32
669692eb 195 "05pxjzgbgjdn7477xry0ssjrnmnsydqiq6nm6ck8n2da1baliqp0"))))
a06b9b50
RW
196 (build-system haskell-build-system)
197 (inputs
198 `(("ghc-stm" ,ghc-stm)
199 ("ghc-mtl" ,ghc-mtl)
200 ("ghc-tagged" ,ghc-tagged)
669692eb 201 ("ghc-regex-tdfa" ,ghc-regex-tdfa)
a06b9b50
RW
202 ("ghc-regex-tdfa-rc" ,ghc-regex-tdfa-rc)
203 ("ghc-optparse-applicative" ,ghc-optparse-applicative)
204 ("ghc-unbounded-delays" ,ghc-unbounded-delays)
205 ("ghc-async" ,ghc-async)
206 ("ghc-ansi-terminal" ,ghc-ansi-terminal)
207 ("ghc-clock-bootstrap" ,ghc-clock-bootstrap)))
208 (home-page "http://documentup.com/feuerbach/tasty")
209 (synopsis "Modern and extensible testing framework")
210 (description "Tasty is a modern testing framework for Haskell. It lets
211you combine your unit tests, golden tests, QuickCheck/SmallCheck properties,
212and any other types of tests into a single test suite.")
213 (license license:expat)))
214
215(define-public ghc-tasty-hunit
216 (package
217 (name "ghc-tasty-hunit")
218 (version "0.9.2")
219 (source
220 (origin
221 (method url-fetch)
222 (uri (string-append
223 "https://hackage.haskell.org/package/tasty-hunit/tasty-hunit-"
224 version
225 ".tar.gz"))
226 (sha256
227 (base32
228 "08qnxaw34wfnzi9irs1jd4d0zczqm3k5ffkd4zwhkz0dflmgq7mf"))))
229 (build-system haskell-build-system)
230 (inputs
231 `(("ghc-tasty" ,ghc-tasty)))
232 (home-page "http://documentup.com/feuerbach/tasty")
233 (synopsis "HUnit support for the Tasty test framework")
234 (description "This package provides HUnit support for the Tasty Haskell
235test framework.")
236 (license license:expat)))
237
238(define-public ghc-tasty-kat
239 (package
240 (name "ghc-tasty-kat")
241 (version "0.0.3")
242 (source (origin
243 (method url-fetch)
244 (uri (string-append "https://hackage.haskell.org/package/"
245 "tasty-kat/tasty-kat-" version ".tar.gz"))
246 (sha256
247 (base32
248 "14yvlpli6cv6bn3kh8mlfp4x1l6ns4fvmfv6hmj75cvxyzq029d7"))))
249 (build-system haskell-build-system)
250 (inputs
251 `(("ghc-tasty" ,ghc-tasty)
252 ("ghc-mtl" ,ghc-mtl)
253 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)
254 ("ghc-tasty-hunit" ,ghc-tasty-hunit)))
255 (home-page "https://github.com/vincenthz/tasty-kat")
256 (synopsis "Known Answer Tests (KAT) framework for tasty")
257 (description
258 "This package provides a @dfn{Known Answer Tests} (KAT) framework for
259tasty.")
260 (license license:expat)))
261
262(define-public ghc-tasty-th
263 (package
264 (name "ghc-tasty-th")
265 (version "0.1.4")
266 (source
267 (origin
268 (method url-fetch)
269 (uri (string-append
270 "https://hackage.haskell.org/package/tasty-th/tasty-th-"
271 version ".tar.gz"))
272 (sha256
273 (base32
274 "0dff9si8i1qp0s7p4hlk0l29vq7wxfglw6mvlgmld43h7rllv88q"))))
275 (build-system haskell-build-system)
276 (inputs
277 `(("ghc-tasty" ,ghc-tasty)))
278 (home-page "https://github.com/bennofs/tasty-th")
279 (synopsis "Automatically generate tasty TestTrees")
280 (description
281 "Tasty-th automatically generates tasty TestTrees from functions of the
282current module, using TemplateHaskell. This is a fork the original
283test-framework-th package, modified to work with tasty instead of
284test-framework.")
285 (license license:bsd-3)))
286
287(define-public ghc-tasty-rerun
288 (package
289 (name "ghc-tasty-rerun")
0e9f4249 290 (version "1.1.8")
a06b9b50
RW
291 (source (origin
292 (method url-fetch)
293 (uri (string-append
294 "https://hackage.haskell.org/package/tasty-rerun/"
295 "tasty-rerun-" version ".tar.gz"))
296 (sha256
297 (base32
0e9f4249 298 "0yg8cicfn3qaazvp4rbanzy3dyk95k3y1kkd4bykvkl9v4076788"))))
a06b9b50
RW
299 (build-system haskell-build-system)
300 (inputs
301 `(("ghc-mtl" ,ghc-mtl)
302 ("ghc-optparse-applicative" ,ghc-optparse-applicative)
303 ("ghc-reducers" ,ghc-reducers)
304 ("ghc-split" ,ghc-split)
305 ("ghc-stm" ,ghc-stm)
306 ("ghc-tagged" ,ghc-tagged)
307 ("ghc-tasty" ,ghc-tasty)))
308 (home-page "https://github.com/ocharles/tasty-rerun")
309 (synopsis "Run tests by filtering the test tree")
310 (description "This package adds the ability to run tests by filtering the
311test tree based on the result of a previous test run. You can use this to run
312only those tests that failed in the last run, or to only run the tests that have
313been added since previous test run.")
314 (license license:bsd-3)))
315
ee448389
RW
316(define-public ghc-tasty-expected-failure
317 (package
318 (name "ghc-tasty-expected-failure")
319 (version "0.11.0.4")
320 (source
321 (origin
322 (method url-fetch)
323 (uri (string-append "https://hackage.haskell.org/package/"
324 "tasty-expected-failure/tasty-expected-failure-"
325 version ".tar.gz"))
326 (sha256
327 (base32
328 "0r555f18d2gj96pjyc13chn1nxaxl81am4xgip3mvvjhw8s5mva1"))))
329 (build-system haskell-build-system)
330 (inputs
331 `(("ghc-tagged" ,ghc-tagged)
332 ("ghc-tasty" ,ghc-tasty)))
333 (home-page "http://github.com/nomeata/tasty-expected-failure")
334 (synopsis "Mark tasty tests as failure expected")
335 (description
336 "With the function @code{Test.Tasty.ExpectedFailure.expectFail} in the
337provided module @code{Test.Tasty.ExpectedFailure}, you can mark that you
338expect test cases to fail, and not to pass. This can be used for test-driven
339development.")
340 (license license:expat)))
341
a06b9b50
RW
342(define-public ghc-quickcheck-instances
343 (package
344 (name "ghc-quickcheck-instances")
04a69991 345 (version "0.3.16.1")
a06b9b50
RW
346 (source
347 (origin
348 (method url-fetch)
349 (uri (string-append
350 "https://hackage.haskell.org/package/"
351 "quickcheck-instances/quickcheck-instances-"
352 version ".tar.gz"))
353 (sha256
354 (base32
04a69991 355 "01v5bs7r9yvhkvb4yc9bqnacy8r6cy2gr9lnmwx40n5apgi0gcbz"))))
a06b9b50
RW
356 (build-system haskell-build-system)
357 (inputs
04a69991
RW
358 `(("ghc-quickcheck" ,ghc-quickcheck)
359 ("ghc-base-compat" ,ghc-base-compat)
360 ("ghc-case-insensitive" ,ghc-case-insensitive)
a06b9b50 361 ("ghc-hashable" ,ghc-hashable)
04a69991 362 ("ghc-old-time" ,ghc-old-time)
a06b9b50 363 ("ghc-scientific" ,ghc-scientific)
04a69991
RW
364 ("ghc-tagged" ,ghc-tagged)
365 ("ghc-text" ,ghc-text)
366 ("ghc-transformers-compat" ,ghc-transformers-compat)
367 ("ghc-unordered-containers" ,ghc-unordered-containers)
368 ("ghc-uuid-types" ,ghc-uuid-types)
369 ("ghc-vector" ,ghc-vector)))
370 (home-page "https://github.com/aslatter/qc-instances")
a06b9b50
RW
371 (synopsis "Common quickcheck instances")
372 (description "This package provides QuickCheck instances for types
373provided by the Haskell Platform.")
374 (license license:bsd-3)))
375
376(define-public ghc-quickcheck-unicode
377 (package
378 (name "ghc-quickcheck-unicode")
03de2634 379 (version "1.0.1.0")
a06b9b50
RW
380 (source
381 (origin
382 (method url-fetch)
383 (uri (string-append
03de2634
TGR
384 "https://hackage.haskell.org/package/quickcheck-unicode/"
385 "quickcheck-unicode-" version ".tar.gz"))
a06b9b50
RW
386 (sha256
387 (base32
03de2634 388 "0s43s1bzbg3gwsjgm7fpyksd1339f0m26dlw2famxwyzgvm0a80k"))))
a06b9b50
RW
389 (build-system haskell-build-system)
390 (inputs `(("ghc-quickcheck" ,ghc-quickcheck)))
391 (home-page
392 "https://github.com/bos/quickcheck-unicode")
393 (synopsis "Generator functions Unicode-related tests")
394 (description "This package provides generator and shrink functions for
395testing Unicode-related software.")
396 (license license:bsd-3)))
397
398(define-public ghc-quickcheck-io
399 (package
400 (name "ghc-quickcheck-io")
bb0e9ca4 401 (version "0.2.0")
a06b9b50
RW
402 (source
403 (origin
404 (method url-fetch)
405 (uri (string-append
406 "https://hackage.haskell.org/package/quickcheck-io/quickcheck-io-"
407 version
408 ".tar.gz"))
409 (sha256
410 (base32
bb0e9ca4 411 "08k4v7pkgjf30pv5j2dfv1gqv6hclxlniyq2sps8zq4zswcr2xzv"))))
a06b9b50
RW
412 (build-system haskell-build-system)
413 (inputs
414 `(("ghc-quickcheck" ,ghc-quickcheck)
415 ("ghc-hunit" ,ghc-hunit)))
416 (home-page
417 "https://github.com/hspec/quickcheck-io#readme")
418 (synopsis "Use HUnit assertions as QuickCheck properties")
419 (description "This package provides an orphan instance that allows you to
420use HUnit assertions as QuickCheck properties.")
421 (license license:expat)))
422
423(define-public ghc-quickcheck
424 (package
425 (name "ghc-quickcheck")
7291ad1e 426 (version "2.10.1")
a06b9b50
RW
427 (outputs '("out" "doc"))
428 (source
429 (origin
430 (method url-fetch)
431 (uri (string-append
432 "https://hackage.haskell.org/package/QuickCheck/QuickCheck-"
433 version
434 ".tar.gz"))
435 (sha256
436 (base32
7291ad1e 437 "1rfmns3lj3hl93k1jws85ajkkw7z9ll8cw292n9m7zald1w5dfqx"))))
a06b9b50
RW
438 (build-system haskell-build-system)
439 (arguments
440 `(#:tests? #f ; FIXME: currently missing libraries used for tests.
441 #:configure-flags '("-f base4")))
442 (inputs
7291ad1e
RW
443 `(("ghc-random" ,ghc-random)
444 ("ghc-tf-random" ,ghc-tf-random)))
445 (home-page "https://github.com/nick8325/quickcheck")
446 (synopsis "Automatic testing of Haskell programs")
a06b9b50 447 (description
7291ad1e
RW
448 "QuickCheck is a library for random testing of program properties. The
449programmer provides a specification of the program, in the form of properties
450which functions should satisfy, and QuickCheck then tests that the properties
451hold in a large number of randomly generated cases. Specifications are
452expressed in Haskell, using combinators defined in the QuickCheck library.")
a06b9b50
RW
453 (license license:bsd-3)))
454
44cea578
T
455(define-public ghc-quickcheck-2.9
456 (package
457 (inherit ghc-quickcheck)
458 (name "ghc-quickcheck")
459 (version "2.9.2")
460 (source (origin
461 (method url-fetch)
462 (uri (string-append "https://hackage.haskell.org/package/QuickCheck-2.9.2/QuickCheck-"
463 version ".tar.gz"))
464 (sha256
465 (base32
466 "119np67qvx8hyp9vkg4gr2wv3lj3j6ay2vl4hxspkg43ymb1cp0m"))))))
467
d5e86172
RW
468(define-public ghc-quickcheck-latest
469 (package (inherit ghc-quickcheck)
470 (version "2.11.3")
471 (source
472 (origin
473 (method url-fetch)
474 (uri (string-append
475 "https://hackage.haskell.org/package/QuickCheck/QuickCheck-"
476 version
477 ".tar.gz"))
478 (sha256
479 (base32
480 "0xhqk35fkzlbjcqbabg6962jkv8d688nzmz7ng4bm84x2d95d328"))))))
481
a06b9b50
RW
482(define-public ghc-test-framework
483 (package
484 (name "ghc-test-framework")
485 (version "0.8.1.1")
486 (source
487 (origin
488 (method url-fetch)
489 (uri (string-append "https://hackage.haskell.org/package/test-framework/"
490 "test-framework-" version ".tar.gz"))
491 (sha256
492 (base32
493 "0wxjgdvb1c4ykazw774zlx86550848wbsvgjgcrdzcgbb9m650vq"))))
494 (build-system haskell-build-system)
7fa02bc7
RW
495 (arguments
496 `(#:configure-flags (list "--allow-newer=time")))
a06b9b50
RW
497 (native-inputs
498 `(("ghc-hunit" ,ghc-hunit)
499 ("ghc-quickcheck" ,ghc-quickcheck)))
500 (inputs
501 `(("ghc-ansi-terminal" ,ghc-ansi-terminal)
502 ("ghc-ansi-wl-pprint" ,ghc-ansi-wl-pprint)
503 ("ghc-hostname" ,ghc-hostname)
504 ("ghc-old-locale" ,ghc-old-locale)
505 ("ghc-random" ,ghc-random)
506 ("ghc-regex-posix" ,ghc-regex-posix)
507 ("ghc-xml" ,ghc-xml)
508 ("ghc-libxml" ,ghc-libxml)))
509 (home-page "https://batterseapower.github.io/test-framework/")
510 (synopsis "Framework for running and organising tests")
511 (description
512 "This package allows tests such as QuickCheck properties and HUnit test
513cases to be assembled into test groups, run in parallel (but reported in
514deterministic order, to aid diff interpretation) and filtered and controlled
515by command line options. All of this comes with colored test output, progress
516reporting and test statistics output.")
517 (license license:bsd-3)))
518
519(define-public ghc-test-framework-hunit
520 (package
521 (name "ghc-test-framework-hunit")
08bb5bbb 522 (version "0.3.0.2")
a06b9b50
RW
523 (source
524 (origin
525 (method url-fetch)
526 (uri (string-append "https://hackage.haskell.org/package/"
527 "test-framework-hunit/test-framework-hunit-"
528 version ".tar.gz"))
529 (sha256
530 (base32
08bb5bbb 531 "1y0b6vg8nfm43v90lxxcydhi6qlxhfy4vpxbzm5ic2w55bh8xjwm"))))
a06b9b50
RW
532 (build-system haskell-build-system)
533 (inputs
534 `(("ghc-extensible-exceptions" ,ghc-extensible-exceptions)
535 ("ghc-hunit" ,ghc-hunit)
536 ("ghc-test-framework" ,ghc-test-framework)))
537 (home-page "https://batterseapower.github.io/test-framework/")
538 (synopsis "HUnit support for test-framework")
539 (description
540 "This package provides HUnit support for the test-framework package.")
541 (license license:bsd-3)))
542
543(define-public ghc-test-framework-quickcheck2
544 (package
545 (name "ghc-test-framework-quickcheck2")
e5199a2c 546 (version "0.3.0.4")
a06b9b50
RW
547 (source
548 (origin
549 (method url-fetch)
550 (uri (string-append "https://hackage.haskell.org/package/"
551 "test-framework-quickcheck2/"
552 "test-framework-quickcheck2-" version ".tar.gz"))
553 (sha256
554 (base32
e5199a2c 555 "0vj834337r6jzr3258cv68ly2sv5999mklpsrfngyk51kywsyqyp"))))
a06b9b50
RW
556 (build-system haskell-build-system)
557 (inputs
558 `(("ghc-extensible-exceptions" ,ghc-extensible-exceptions)
559 ("ghc-quickcheck" ,ghc-quickcheck)
560 ("ghc-random" ,ghc-random)
561 ("ghc-test-framework" ,ghc-test-framework)))
562 (home-page "https://batterseapower.github.io/test-framework/")
563 (synopsis "QuickCheck2 support for test-framework")
564 (description
565 "This packages provides QuickCheck2 support for the test-framework
566package.")
567 (license license:bsd-3)))
568
569(define-public ghc-test-framework-th
570 (package
571 (name "ghc-test-framework-th")
572 (version "0.2.4")
573 (source
574 (origin
575 (method url-fetch)
576 (uri (string-append "https://hackage.haskell.org/package/"
577 "test-framework-th-" version "/"
578 "test-framework-th-" version ".tar.gz"))
579 (sha256
580 (base32
581 "12lw7yj02jb9s0i7rb98jjam43j2h0gzmnbj9zi933fx7sg0sy4b"))))
582 (build-system haskell-build-system)
583 (inputs
584 `(("ghc-test-framework" ,ghc-test-framework)
585 ("ghc-language-haskell-extract" ,ghc-language-haskell-extract)
586 ("ghc-haskell-src-exts" ,ghc-haskell-src-exts)
587 ("ghc-regex-posix" ,ghc-regex-posix)))
588 (home-page "https://github.com/finnsson/test-generator")
589 (synopsis "Auto generate the HUnit- and Quickcheck-bulk-code
590using Template Haskell")
591 (description "This library contains two functions:
592@code{defaultMainGenerator} and @code{testGroupGenerator}.
593
594@code{defaultMainGenerator} will extract all functions beginning with
595@code{case_}, @code{prop_}, or @code{test_} in the module and put them in a
596@code{testGroup}.
597
598@code{testGroupGenerator} is like @code{defaultMainGenerator} but without
599@code{defaultMain}. It is useful if you need a function for the testgroup
600\(e.g. if you want to be able to call the testgroup from another module).")
601 (license license:bsd-3)))
602
603(define-public ghc-hunit
604 (package
605 (name "ghc-hunit")
b80a6f30 606 (version "1.3.1.2")
a06b9b50
RW
607 (outputs '("out" "doc"))
608 (source
609 (origin
610 (method url-fetch)
611 (uri (string-append
612 "https://hackage.haskell.org/package/HUnit/HUnit-"
613 version
614 ".tar.gz"))
615 (sha256
616 (base32
b80a6f30 617 "10akdh4fl615rrshxi3m5gf414il1q42z4zqyb6q4jasmscvzpms"))))
a06b9b50
RW
618 (build-system haskell-build-system)
619 (home-page "http://hunit.sourceforge.net/")
620 (synopsis "Unit testing framework for Haskell")
621 (description
622 "HUnit is a unit testing framework for Haskell, inspired by the
623JUnit tool for Java.")
624 (license license:bsd-3)))
625
626(define-public hspec-discover
627 (package
628 (name "hspec-discover")
8d04a5c9 629 (version "2.5.5")
a06b9b50
RW
630 (source
631 (origin
632 (method url-fetch)
8d04a5c9
RW
633 (uri (string-append "https://hackage.haskell.org/package/"
634 "hspec-discover/hspec-discover-"
635 version ".tar.gz"))
a06b9b50
RW
636 (sha256
637 (base32
8d04a5c9 638 "04aidzi91ccr9bygmfkjzshz34z9vh8wvqj4zinx2clxq6r7gqfz"))))
a06b9b50 639 (build-system haskell-build-system)
8d04a5c9
RW
640 (native-inputs
641 `(("ghc-quickcheck" ,ghc-quickcheck)
642 ("ghc-hspec-meta" ,ghc-hspec-meta)))
78724a5a 643 (home-page "https://hspec.github.io/")
a06b9b50
RW
644 (synopsis "Automatically discover and run Hspec tests")
645 (description "hspec-discover is a tool which automatically discovers and
646runs Hspec tests.")
647 (license license:expat)))
648
649(define-public ghc-hspec-core
650 (package
651 (name "ghc-hspec-core")
3b8e4774 652 (version "2.5.5")
a06b9b50
RW
653 (source
654 (origin
655 (method url-fetch)
3b8e4774
RW
656 (uri (string-append "https://hackage.haskell.org/package/hspec-core/"
657 "hspec-core-" version ".tar.gz"))
a06b9b50
RW
658 (sha256
659 (base32
3b8e4774 660 "1vfrqlpn32s9wiykmkxbnrnd5p56yznw20pf8fwzw78ar4wpz55x"))))
a06b9b50
RW
661 (build-system haskell-build-system)
662 (arguments `(#:tests? #f)) ; FIXME: testing libraries are missing.
663 (inputs
664 `(("ghc-setenv" ,ghc-setenv)
665 ("ghc-ansi-terminal" ,ghc-ansi-terminal)
666 ("ghc-async" ,ghc-async)
3b8e4774 667 ("ghc-clock" ,ghc-clock)
a06b9b50
RW
668 ("ghc-quickcheck-io" ,ghc-quickcheck-io)
669 ("ghc-hunit" ,ghc-hunit)
670 ("ghc-quickcheck" ,ghc-quickcheck)
671 ("ghc-hspec-expectations" ,ghc-hspec-expectations)
672 ("ghc-silently" ,ghc-silently)))
78724a5a 673 (home-page "https://hspec.github.io/")
a06b9b50
RW
674 (synopsis "Testing framework for Haskell")
675 (description "This library exposes internal types and functions that can
676be used to extend Hspec's functionality.")
677 (license license:expat)))
678
679(define-public ghc-hspec-meta
680 (package
681 (name "ghc-hspec-meta")
31caca65 682 (version "2.4.6")
a06b9b50
RW
683 (source
684 (origin
685 (method url-fetch)
31caca65
RW
686 (uri (string-append "https://hackage.haskell.org/package/hspec-meta/"
687 "hspec-meta-" version ".tar.gz"))
a06b9b50
RW
688 (sha256
689 (base32
31caca65 690 "0qmvk01n79j6skn79r6zalg2pd0x0nqqn9qn8mhg0pgyzcdnfc9b"))))
a06b9b50
RW
691 (build-system haskell-build-system)
692 (inputs
693 `(("ghc-quickcheck" ,ghc-quickcheck)
694 ("ghc-hunit" ,ghc-hunit)
695 ("ghc-ansi-terminal" ,ghc-ansi-terminal)
696 ("ghc-async" ,ghc-async)
697 ("ghc-hspec-expectations" ,ghc-hspec-expectations)
698 ("ghc-setenv" ,ghc-setenv)
699 ("ghc-random" ,ghc-random)
700 ("ghc-quickcheck-io" ,ghc-quickcheck-io)))
78724a5a 701 (home-page "https://hspec.github.io/")
a06b9b50
RW
702 (synopsis "Version of Hspec to test Hspec itself")
703 (description "This library provides a stable version of Hspec which is
704used to test the in-development version of Hspec.")
705 (license license:expat)))
706
707(define-public ghc-hspec
708 (package
709 (name "ghc-hspec")
c2c8d998 710 (version "2.5.5")
a06b9b50
RW
711 (source
712 (origin
713 (method url-fetch)
c2c8d998
RW
714 (uri (string-append "https://hackage.haskell.org/package/hspec/"
715 "hspec-" version ".tar.gz"))
a06b9b50
RW
716 (sha256
717 (base32
c2c8d998 718 "1yv4k5b5kkig2q3waj28587sq28wms7wfav5a3lq4dra6jybimfm"))))
a06b9b50
RW
719 (build-system haskell-build-system)
720 (inputs
721 `(("ghc-hspec-core" ,ghc-hspec-core)
722 ("hspec-discover" ,hspec-discover)
723 ("ghc-hspec-expectations" ,ghc-hspec-expectations)
724 ("ghc-quickcheck" ,ghc-quickcheck)
725 ("ghc-hunit" ,ghc-hunit)
726 ("ghc-stringbuilder" ,ghc-stringbuilder)
727 ("ghc-hspec-meta" ,ghc-hspec-meta)))
78724a5a 728 (home-page "https://hspec.github.io/")
a06b9b50
RW
729 (synopsis "Testing Framework for Haskell")
730 (description "This library provides the Hspec testing framework for
731Haskell, inspired by the Ruby library RSpec.")
732 (license license:expat)))
733
734(define-public ghc-hspec-contrib
735 (package
736 (name "ghc-hspec-contrib")
33a07859 737 (version "0.5.0")
a06b9b50
RW
738 (source (origin
739 (method url-fetch)
740 (uri (string-append "https://hackage.haskell.org/package/"
741 "hspec-contrib/hspec-contrib-"
742 version ".tar.gz"))
743 (sha256
744 (base32
33a07859 745 "13579xdqwbsy8k0vxdcvgy932d4p76mij1rzkzbpqbspfn7399yv"))))
a06b9b50
RW
746 (build-system haskell-build-system)
747 (inputs
748 `(("ghc-hspec-core" ,ghc-hspec-core)
749 ("ghc-hunit" ,ghc-hunit)
750 ("ghc-hspec" ,ghc-hspec)
751 ("ghc-quickcheck" ,ghc-quickcheck)))
752 (native-inputs
753 `(("hspec-discover" ,hspec-discover)))
78724a5a 754 (home-page "https://hspec.github.io/")
a06b9b50
RW
755 (synopsis "Contributed functionality for Hspec")
756 (description
757 "This package provides contributed Hspec extensions.")
758 (license license:expat)))
759
760(define-public ghc-hspec-expectations
761 (package
762 (name "ghc-hspec-expectations")
15fb81e5 763 (version "0.8.2")
a06b9b50
RW
764 (source
765 (origin
766 (method url-fetch)
15fb81e5
RW
767 (uri (string-append "https://hackage.haskell.org/package/"
768 "hspec-expectations/hspec-expectations-"
769 version ".tar.gz"))
a06b9b50
RW
770 (sha256
771 (base32
15fb81e5 772 "1vxl9zazbaapijr6zmcj72j9wf7ka1pirrjbwddwwddg3zm0g5l1"))))
a06b9b50 773 (build-system haskell-build-system)
15fb81e5
RW
774 ;; Tests depend on ghc-nanospec.
775 (arguments '(#:tests? #f))
a06b9b50
RW
776 (inputs `(("ghc-hunit" ,ghc-hunit)))
777 (home-page "https://github.com/sol/hspec-expectations")
778 (synopsis "Catchy combinators for HUnit")
779 (description "This library provides catchy combinators for HUnit, see
780@uref{https://github.com/sol/hspec-expectations#readme, the README}.")
781 (license license:expat)))
a54b7441
RW
782
783(define-public ghc-nanospec
784 (package
785 (name "ghc-nanospec")
786 (version "0.2.2")
787 (source
788 (origin
789 (method url-fetch)
790 (uri (string-append "https://hackage.haskell.org/package/"
791 "nanospec/nanospec-"
792 version ".tar.gz"))
793 (sha256
794 (base32
795 "1rcmhl9bhyfvanalnf1r86wkx6rq6wdvagnw1h011jcnnb1cq56g"))))
796 (build-system haskell-build-system)
797 (inputs
798 `(("ghc-hspec" ,ghc-hspec)
799 ("ghc-silently" ,ghc-silently)))
800 (home-page "https://github.com/hspec/nanospec#readme")
801 (synopsis "Lightweight implementation of a subset of Hspec's API")
802 (description
803 "Nanospec is a lightweight implementation of a subset of Hspec's API with
804minimal dependencies.")
805 (license license:expat)))
47a6582b 806
807(define-public ghc-crypto-cipher-tests
808 (package
809 (name "ghc-crypto-cipher-tests")
810 (version "0.0.11")
811 (source
812 (origin
813 (method url-fetch)
814 (uri (string-append "https://hackage.haskell.org/package/"
815 "crypto-cipher-tests-" version "/"
816 "crypto-cipher-tests-" version ".tar.gz"))
817 (sha256
818 (base32
819 "19wqignlq90qwpam01hnmmrxaxh5lkax9l1l6rlbi4a07nvp1dnz"))))
820 (build-system haskell-build-system)
821 (inputs `(("ghc-quickcheck" ,ghc-quickcheck)
822 ("ghc-mtl" ,ghc-mtl)
823 ("ghc-hunit" ,ghc-hunit)
824 ("ghc-test-framework" ,ghc-test-framework)
825 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)
826 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
827 ("ghc-byteable" ,ghc-byteable)
828 ("ghc-securemem" ,ghc-securemem)
829 ("ghc-crypto-cipher-types" ,ghc-crypto-cipher-types)))
830 (home-page "https://github.com/vincenthz/hs-crypto-cipher")
831 (synopsis "Generic cryptography cipher tests for Haskell")
832 (description " This Haskell package contains generic tests for
833cryptographic ciphers, and is used by the test runners of various Haskell
834implementations of cryptographic ciphers.")
835 (license license:bsd-3)))