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