haskell-check.scm 46 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246
  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>
  5. ;;; Copyright © 2015, 2016, 2017, 2018 Ricardo Wurmus <rekado@elephly.net>
  6. ;;; Copyright © 2016 Nikita <nikita@n0.is>
  7. ;;; Copyright © 2016 David Craven <david@craven.ch>
  8. ;;; Copyright © 2017 Danny Milosavljevic <dannym@scratchpost.org>
  9. ;;; Copyright © 2017 rsiddharth <s@ricketyspace.net>
  10. ;;; Copyright © 2017, 2018, 2021 Tobias Geerinckx-Rice <me@tobias.gr>
  11. ;;; Copyright © 2018 Tonton <tonton@riseup.net>
  12. ;;; Copyright © 2018 Arun Isaac <arunisaac@systemreboot.net>
  13. ;;; Copyright © 2019 Timothy Sample <samplet@ngyro.com>
  14. ;;; Copyright © 2020 John Soo <jsoo1@asu.edu>
  15. ;;; Copyright © 2020 Carlo Holl <carloholl@gmail.com>
  16. ;;;
  17. ;;; This file is part of GNU Guix.
  18. ;;;
  19. ;;; GNU Guix is free software; you can redistribute it and/or modify it
  20. ;;; under the terms of the GNU General Public License as published by
  21. ;;; the Free Software Foundation; either version 3 of the License, or (at
  22. ;;; your option) any later version.
  23. ;;;
  24. ;;; GNU Guix is distributed in the hope that it will be useful, but
  25. ;;; WITHOUT ANY WARRANTY; without even the implied warranty of
  26. ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  27. ;;; GNU General Public License for more details.
  28. ;;;
  29. ;;; You should have received a copy of the GNU General Public License
  30. ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
  31. (define-module (gnu packages haskell-check)
  32. #:use-module (gnu packages)
  33. #:use-module (gnu packages haskell-crypto)
  34. #:use-module (gnu packages haskell-xyz)
  35. #:use-module (guix build-system haskell)
  36. #:use-module (guix download)
  37. #:use-module ((guix licenses) #:prefix license:)
  38. #:use-module (guix packages)
  39. #:use-module (guix utils))
  40. (define-public ghc-tasty-ant-xml
  41. (package
  42. (name "ghc-tasty-ant-xml")
  43. (version "1.1.8")
  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
  53. "0h9mllhw9cd0rn34xhj8grwmbny7z7hpd8qmp9lfcdj0s4qx9vx8"))))
  54. (build-system haskell-build-system)
  55. (inputs
  56. `(("ghc-generic-deriving" ,ghc-generic-deriving)
  57. ("ghc-xml" ,ghc-xml)
  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
  66. schema. This XML can be consumed by the Jenkins continuous integration
  67. framework.")
  68. (license license:bsd-3)))
  69. (define-public ghc-tasty-smallcheck
  70. (package
  71. (name "ghc-tasty-smallcheck")
  72. (version "0.8.2")
  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
  82. "0csgwn3vch0jnpqyyfnrfjq4z0dpl67imh5a7byll3hhlyidgjym"))))
  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)))
  89. (home-page "https://documentup.com/feuerbach/tasty")
  90. (synopsis "SmallCheck support for the Tasty test framework")
  91. (description "This package provides SmallCheck support for the Tasty
  92. Haskell test framework.")
  93. (license license:bsd-3)))
  94. (define-public ghc-tasty-quickcheck
  95. (package
  96. (name "ghc-tasty-quickcheck")
  97. (version "0.10.1.2")
  98. (source
  99. (origin
  100. (method url-fetch)
  101. (uri (string-append
  102. "https://hackage.haskell.org/package/tasty-quickcheck/"
  103. "tasty-quickcheck-" version ".tar.gz"))
  104. (sha256
  105. (base32
  106. "0i1i78587znqzwps49milyr5n2k388ld2kr9ysz1vw8gcw51qq49"))))
  107. (build-system haskell-build-system)
  108. (inputs
  109. `(("ghc-quickcheck" ,ghc-quickcheck)
  110. ("ghc-tagged" ,ghc-tagged)
  111. ("ghc-tasty" ,ghc-tasty)
  112. ("ghc-random" ,ghc-random)
  113. ("ghc-ansi-terminal" ,ghc-ansi-terminal)
  114. ("ghc-tasty-hunit" ,ghc-tasty-hunit)
  115. ("ghc-pcre-light" ,ghc-pcre-light)))
  116. (home-page "http://documentup.com/feuerbach/tasty")
  117. (synopsis "QuickCheck support for the Tasty test framework")
  118. (description "This package provides QuickCheck support for the Tasty
  119. Haskell test framework.")
  120. (license license:expat)))
  121. (define-public ghc-tasty-golden
  122. (package
  123. (name "ghc-tasty-golden")
  124. (version "2.3.4")
  125. (source
  126. (origin
  127. (method url-fetch)
  128. (uri (string-append
  129. "https://hackage.haskell.org/package/tasty-golden/tasty-golden-"
  130. version
  131. ".tar.gz"))
  132. (sha256
  133. (base32
  134. "1nskavqgfxx1cw7q6c0cmizlwj54rnlv93yhgssaa77gv1nbvwpn"))))
  135. (build-system haskell-build-system)
  136. (inputs
  137. `(("ghc-async" ,ghc-async)
  138. ("ghc-optparse-applicative" ,ghc-optparse-applicative)
  139. ("ghc-tagged" ,ghc-tagged)
  140. ("ghc-tasty" ,ghc-tasty)
  141. ("ghc-temporary" ,ghc-temporary)
  142. ("ghc-unix-compat" ,ghc-unix-compat)))
  143. (native-inputs `(("ghc-tasty-hunit" ,ghc-tasty-hunit)))
  144. (home-page
  145. "https://github.com/feuerbach/tasty-golden")
  146. (synopsis "Golden tests support for tasty")
  147. (description
  148. "This package provides support for @code{golden testing}. A @dfn{golden
  149. test} is an IO action that writes its result to a file. To pass the test, this
  150. output file should be identical to the corresponding @code{golden} file, which
  151. contains the correct result for the test.")
  152. (license license:expat)))
  153. (define-public ghc-tasty
  154. (package
  155. (name "ghc-tasty")
  156. (version "1.4.2")
  157. (source
  158. (origin
  159. (method url-fetch)
  160. (uri (string-append
  161. "https://hackage.haskell.org/package/tasty/tasty-"
  162. version
  163. ".tar.gz"))
  164. (sha256
  165. (base32
  166. "0574hbqzxzyv6vsk5kzbf04kz58y0iy8x9ydcj4b8fpncgmgy63g"))))
  167. (build-system haskell-build-system)
  168. (inputs
  169. `(("ghc-tagged" ,ghc-tagged)
  170. ("ghc-regex-tdfa" ,ghc-regex-tdfa)
  171. ("ghc-optparse-applicative" ,ghc-optparse-applicative)
  172. ("ghc-unbounded-delays" ,ghc-unbounded-delays)
  173. ("ghc-async" ,ghc-async)
  174. ("ghc-ansi-terminal" ,ghc-ansi-terminal)
  175. ("ghc-clock-bootstrap" ,ghc-clock-bootstrap)
  176. ("ghc-wcwidth" ,ghc-wcwidth-bootstrap)))
  177. (home-page "http://documentup.com/feuerbach/tasty")
  178. (synopsis "Modern and extensible testing framework")
  179. (description "Tasty is a modern testing framework for Haskell. It lets
  180. you combine your unit tests, golden tests, QuickCheck/SmallCheck properties,
  181. and any other types of tests into a single test suite.")
  182. (license license:expat)))
  183. (define-public ghc-tasty-hedgehog
  184. (package
  185. (name "ghc-tasty-hedgehog")
  186. (version "1.1.0.0")
  187. (source
  188. (origin
  189. (method url-fetch)
  190. (uri (string-append "https://hackage.haskell.org/package/"
  191. "tasty-hedgehog/tasty-hedgehog-" version ".tar.gz"))
  192. (sha256
  193. (base32
  194. "0cy49z8n124xh2ra2482vfy5if1n6d9lbdjma2zg1mxfj0k0zyfb"))))
  195. (build-system haskell-build-system)
  196. (inputs
  197. `(("ghc-tagged" ,ghc-tagged)
  198. ("ghc-tasty" ,ghc-tasty)
  199. ("ghc-hedgehog" ,ghc-hedgehog)))
  200. (native-inputs
  201. `(("ghc-tasty-expected-failure" ,ghc-tasty-expected-failure)))
  202. (home-page "https://github.com/qfpl/tasty-hedgehog")
  203. (synopsis "Integration for tasty and hedgehog")
  204. (description "This package provides the means for integrating the
  205. @url{https://hackage.haskell.org/package/hedgehog, hedgehog testing library}
  206. with the @url{https://hackage.haskell.org/package/tasty, tasty testing
  207. framework}.")
  208. (license license:bsd-3)))
  209. (define-public ghc-tasty-hspec
  210. (package
  211. (name "ghc-tasty-hspec")
  212. (version "1.1.6")
  213. (source
  214. (origin
  215. (method url-fetch)
  216. (uri (string-append
  217. "https://hackage.haskell.org/package/tasty-hspec/tasty-hspec-"
  218. version
  219. ".tar.gz"))
  220. (sha256
  221. (base32
  222. "02s82ijs2ringqxsqbm7m3vcy5brmwxa617azxv0v2phi3rdkjvl"))))
  223. (build-system haskell-build-system)
  224. (inputs
  225. `(("ghc-hspec" ,ghc-hspec)
  226. ("ghc-hspec-core" ,ghc-hspec-core)
  227. ("ghc-quickcheck" ,ghc-quickcheck)
  228. ("ghc-tagged" ,ghc-tagged)
  229. ("ghc-tasty" ,ghc-tasty)
  230. ("ghc-tasty-smallcheck" ,ghc-tasty-smallcheck)
  231. ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)))
  232. (arguments
  233. `(#:cabal-revision
  234. ("1" "0za15rg0szacxq9yfxxjzddr77ai7ng5827a20pj9dr5anjlnajj")))
  235. (home-page
  236. "https://github.com/mitchellwrosen/tasty-hspec")
  237. (synopsis
  238. "Hspec support for the Tasty test framework")
  239. (description
  240. "This package provides a Tasty provider for Hspec test suites.")
  241. (license license:bsd-3)))
  242. (define-public ghc-tasty-hunit
  243. (package
  244. (name "ghc-tasty-hunit")
  245. (version "0.10.0.3")
  246. (source
  247. (origin
  248. (method url-fetch)
  249. (uri (string-append
  250. "https://hackage.haskell.org/package/tasty-hunit/tasty-hunit-"
  251. version
  252. ".tar.gz"))
  253. (sha256
  254. (base32
  255. "0gz6zz3w7s44pymw33xcxnawryl27zk33766sab96nz2xh91kvxp"))))
  256. (build-system haskell-build-system)
  257. (inputs
  258. `(("ghc-call-stack" ,ghc-call-stack-boot)
  259. ("ghc-tasty" ,ghc-tasty)))
  260. (home-page "http://documentup.com/feuerbach/tasty")
  261. (synopsis "HUnit support for the Tasty test framework")
  262. (description "This package provides HUnit support for the Tasty Haskell
  263. test framework.")
  264. (license license:expat)))
  265. (define-public ghc-tasty-kat
  266. (package
  267. (name "ghc-tasty-kat")
  268. (version "0.0.3")
  269. (source (origin
  270. (method url-fetch)
  271. (uri (string-append "https://hackage.haskell.org/package/"
  272. "tasty-kat/tasty-kat-" version ".tar.gz"))
  273. (sha256
  274. (base32
  275. "14yvlpli6cv6bn3kh8mlfp4x1l6ns4fvmfv6hmj75cvxyzq029d7"))))
  276. (build-system haskell-build-system)
  277. (inputs
  278. `(("ghc-tasty" ,ghc-tasty)
  279. ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)
  280. ("ghc-tasty-hunit" ,ghc-tasty-hunit)))
  281. (home-page "https://github.com/vincenthz/tasty-kat")
  282. (synopsis "Known Answer Tests (KAT) framework for tasty")
  283. (description
  284. "This package provides a @dfn{Known Answer Tests} (KAT) framework for
  285. tasty.")
  286. (license license:expat)))
  287. (define-public ghc-tasty-lua
  288. (package
  289. (name "ghc-tasty-lua")
  290. (version "0.2.3.2")
  291. (source
  292. (origin
  293. (method url-fetch)
  294. (uri (string-append "https://hackage.haskell.org/package/"
  295. "tasty-lua/tasty-lua-" version ".tar.gz"))
  296. (sha256
  297. (base32
  298. "0wa73ihkjcxi50lgpdzwwdx7s903lqi79hw7hxlvhbcvdly1cq53"))))
  299. (build-system haskell-build-system)
  300. (inputs
  301. `(("ghc-file-embed" ,ghc-file-embed)
  302. ("ghc-hslua" ,ghc-hslua)
  303. ("ghc-tasty" ,ghc-tasty)))
  304. (native-inputs
  305. `(("ghc-tasty-hunit" ,ghc-tasty-hunit)))
  306. (home-page "https://github.com/hslua/tasty-lua")
  307. (synopsis "Write tests in Lua, integrate into tasty")
  308. (description "This package gives users the ability to define tasty tests
  309. from Lua.")
  310. (license license:expat)))
  311. (define-public ghc-tasty-th
  312. (package
  313. (name "ghc-tasty-th")
  314. (version "0.1.7")
  315. (source
  316. (origin
  317. (method url-fetch)
  318. (uri (string-append
  319. "https://hackage.haskell.org/package/tasty-th/tasty-th-"
  320. version ".tar.gz"))
  321. (sha256
  322. (base32
  323. "0b2ivrw2257m4cy4rjnkwqlarh83j1y3zywnmaqqqbvy667sqnj3"))))
  324. (build-system haskell-build-system)
  325. (inputs
  326. `(("ghc-haskell-src-exts" ,ghc-haskell-src-exts)
  327. ("ghc-tasty" ,ghc-tasty)
  328. ("ghc-tasty-hunit" ,ghc-tasty-hunit)))
  329. (home-page "https://github.com/bennofs/tasty-th")
  330. (synopsis "Automatically generate tasty TestTrees")
  331. (description
  332. "Tasty-th automatically generates tasty TestTrees from functions of the
  333. current module, using TemplateHaskell. This is a fork the original
  334. test-framework-th package, modified to work with tasty instead of
  335. test-framework.")
  336. (license license:bsd-3)))
  337. (define-public ghc-tasty-rerun
  338. (package
  339. (name "ghc-tasty-rerun")
  340. (version "1.1.18")
  341. (source (origin
  342. (method url-fetch)
  343. (uri (string-append
  344. "https://hackage.haskell.org/package/tasty-rerun/"
  345. "tasty-rerun-" version ".tar.gz"))
  346. (sha256
  347. (base32
  348. "0sccp5zx9v2rx741nbmgd8mzjhy5m4v74hk26d23xz93ph8aqx7s"))))
  349. (build-system haskell-build-system)
  350. (inputs
  351. `(("ghc-optparse-applicative" ,ghc-optparse-applicative)
  352. ("ghc-reducers" ,ghc-reducers)
  353. ("ghc-split" ,ghc-split)
  354. ("ghc-tagged" ,ghc-tagged)
  355. ("ghc-tasty" ,ghc-tasty)))
  356. (home-page "https://github.com/ocharles/tasty-rerun")
  357. (synopsis "Run tests by filtering the test tree")
  358. (description "This package adds the ability to run tests by filtering the
  359. test tree based on the result of a previous test run. You can use this to run
  360. only those tests that failed in the last run, or to only run the tests that have
  361. been added since previous test run.")
  362. (license license:bsd-3)))
  363. (define-public ghc-tasty-expected-failure
  364. (package
  365. (name "ghc-tasty-expected-failure")
  366. (version "0.12.3")
  367. (source
  368. (origin
  369. (method url-fetch)
  370. (uri (string-append "https://hackage.haskell.org/package/"
  371. "tasty-expected-failure/tasty-expected-failure-"
  372. version ".tar.gz"))
  373. (sha256
  374. (base32
  375. "0zlgxs24d54byfhvwdg85xk1572zpjs71bjlxxrxcvralrfcq1yb"))))
  376. (build-system haskell-build-system)
  377. (arguments `(#:tests? #f)) ; TODO: Loops.
  378. ; (native-inputs
  379. ; `(("ghc-tasty-hunit" ,ghc-tasty-hunit)
  380. ; ("ghc-tasty-golden" ,ghc-tasty-golden)
  381. ; ("ghc-hedgehog" ,ghc-hedgehog)
  382. ; ("ghc-tasty-hedgehog" ,ghc-tasty-hedgehog)))
  383. (inputs
  384. `(("ghc-tagged" ,ghc-tagged)
  385. ("ghc-tasty" ,ghc-tasty)
  386. ("ghc-unbounded-delays" ,ghc-unbounded-delays)))
  387. (home-page "https://github.com/nomeata/tasty-expected-failure")
  388. (synopsis "Mark tasty tests as failure expected")
  389. (description
  390. "With the function @code{Test.Tasty.ExpectedFailure.expectFail} in the
  391. provided module @code{Test.Tasty.ExpectedFailure}, you can mark that you
  392. expect test cases to fail, and not to pass. This can be used for test-driven
  393. development.")
  394. (license license:expat)))
  395. (define-public ghc-quickcheck-instances
  396. (package
  397. (name "ghc-quickcheck-instances")
  398. (version "0.3.25.2")
  399. (source
  400. (origin
  401. (method url-fetch)
  402. (uri (string-append
  403. "https://hackage.haskell.org/package/"
  404. "quickcheck-instances/quickcheck-instances-"
  405. version ".tar.gz"))
  406. (sha256
  407. (base32
  408. "0ihqbarl2ddrfgq3mq09lswwn8213qpw13g49qxs5mjkcm6gbk3h"))))
  409. (build-system haskell-build-system)
  410. (arguments
  411. `(#:cabal-revision
  412. ("2" "1lsa3pbg4ljlk29fhm3mdklnx3hwffyga1nr5krbpcyc3ywq8fq8")))
  413. (inputs
  414. `(("ghc-case-insensitive" ,ghc-case-insensitive)
  415. ("ghc-data-fix" ,ghc-data-fix)
  416. ("ghc-hashable" ,ghc-hashable)
  417. ("ghc-integer-logarithms" ,ghc-integer-logarithms)
  418. ("ghc-old-time" ,ghc-old-time)
  419. ("ghc-quickcheck" ,ghc-quickcheck)
  420. ("ghc-scientific" ,ghc-scientific)
  421. ("ghc-splitmix" ,ghc-splitmix)
  422. ("ghc-strict" ,ghc-strict)
  423. ("ghc-tagged" ,ghc-tagged)
  424. ("ghc-these" ,ghc-these)
  425. ("ghc-time-compat" ,ghc-time-compat)
  426. ("ghc-transformers-compat" ,ghc-transformers-compat)
  427. ("ghc-unordered-containers" ,ghc-unordered-containers)
  428. ("ghc-uuid-types" ,ghc-uuid-types)
  429. ("ghc-vector" ,ghc-vector)))
  430. (home-page "https://github.com/aslatter/qc-instances")
  431. (synopsis "Common quickcheck instances")
  432. (description "This package provides QuickCheck instances for types
  433. provided by the Haskell Platform.")
  434. (license license:bsd-3)))
  435. (define-public ghc-quickcheck-unicode
  436. (package
  437. (name "ghc-quickcheck-unicode")
  438. (version "1.0.1.0")
  439. (source
  440. (origin
  441. (method url-fetch)
  442. (uri (string-append
  443. "https://hackage.haskell.org/package/quickcheck-unicode/"
  444. "quickcheck-unicode-" version ".tar.gz"))
  445. (sha256
  446. (base32
  447. "0s43s1bzbg3gwsjgm7fpyksd1339f0m26dlw2famxwyzgvm0a80k"))))
  448. (build-system haskell-build-system)
  449. (inputs `(("ghc-quickcheck" ,ghc-quickcheck)))
  450. (home-page
  451. "https://github.com/bos/quickcheck-unicode")
  452. (synopsis "Generator functions Unicode-related tests")
  453. (description "This package provides generator and shrink functions for
  454. testing Unicode-related software.")
  455. (license license:bsd-3)))
  456. (define-public ghc-quickcheck-io
  457. (package
  458. (name "ghc-quickcheck-io")
  459. (version "0.2.0")
  460. (source
  461. (origin
  462. (method url-fetch)
  463. (uri (string-append
  464. "https://hackage.haskell.org/package/quickcheck-io/quickcheck-io-"
  465. version
  466. ".tar.gz"))
  467. (sha256
  468. (base32
  469. "08k4v7pkgjf30pv5j2dfv1gqv6hclxlniyq2sps8zq4zswcr2xzv"))))
  470. (build-system haskell-build-system)
  471. (inputs
  472. `(("ghc-quickcheck" ,ghc-quickcheck)
  473. ("ghc-hunit" ,ghc-hunit)))
  474. (home-page
  475. "https://github.com/hspec/quickcheck-io#readme")
  476. (synopsis "Use HUnit assertions as QuickCheck properties")
  477. (description "This package provides an orphan instance that allows you to
  478. use HUnit assertions as QuickCheck properties.")
  479. (license license:expat)))
  480. (define-public ghc-quickcheck
  481. (package
  482. (name "ghc-quickcheck")
  483. (version "2.14.2")
  484. (source
  485. (origin
  486. (method url-fetch)
  487. (uri (string-append
  488. "https://hackage.haskell.org/package/QuickCheck/QuickCheck-"
  489. version
  490. ".tar.gz"))
  491. (sha256
  492. (base32
  493. "1wrnrm9sq4s0bly0q58y80g4153q45iglqa34xsi2q3bd62nqyyq"))))
  494. (build-system haskell-build-system)
  495. (inputs
  496. `(("ghc-random" ,ghc-random)
  497. ("ghc-splitmix" ,ghc-splitmix-bootstrap)))
  498. (home-page "https://github.com/nick8325/quickcheck")
  499. (synopsis "Automatic testing of Haskell programs")
  500. (description
  501. "QuickCheck is a library for random testing of program properties. The
  502. programmer provides a specification of the program, in the form of properties
  503. which functions should satisfy, and QuickCheck then tests that the properties
  504. hold in a large number of randomly generated cases. Specifications are
  505. expressed in Haskell, using combinators defined in the QuickCheck library.")
  506. (license license:bsd-3)))
  507. (define-public ghc-quickcheck-assertions
  508. (package
  509. (name "ghc-quickcheck-assertions")
  510. (version "0.3.0")
  511. (source
  512. (origin
  513. (method url-fetch)
  514. (uri (string-append "https://hackage.haskell.org/package/"
  515. "quickcheck-assertions/"
  516. "quickcheck-assertions-" version ".tar.gz"))
  517. (sha256
  518. (base32 "1kyam4cy7qmnizjwjm8jamq43w7f0fs6ljfplwj0ib6wi2kjh0wv"))))
  519. (build-system haskell-build-system)
  520. (native-inputs
  521. `(("ghc-hspec" ,ghc-hspec)))
  522. (inputs
  523. `(("ghc-ieee754" ,ghc-ieee754)
  524. ("ghc-pretty-show" ,ghc-pretty-show)
  525. ("ghc-quickcheck" ,ghc-quickcheck)))
  526. (home-page "https://github.com/s9gf4ult/quickcheck-assertions")
  527. (synopsis "HUnit-like assertions for QuickCheck")
  528. (description
  529. "This Haskell library provides convenient assertions with pretty-printed
  530. failure messages for QuickCheck properties, that are similar to those of
  531. HUnit.")
  532. (license license:lgpl3)))
  533. (define-public ghc-test-framework
  534. (package
  535. (name "ghc-test-framework")
  536. (version "0.8.2.0")
  537. (source
  538. (origin
  539. (method url-fetch)
  540. (uri (string-append "https://hackage.haskell.org/package/test-framework/"
  541. "test-framework-" version ".tar.gz"))
  542. (sha256
  543. (base32
  544. "1hhacrzam6b8f10hyldmjw8pb7frdxh04rfg3farxcxwbnhwgbpm"))))
  545. (build-system haskell-build-system)
  546. (arguments
  547. `(#:tests? #f ; FIXME: Tests do not build.
  548. #:cabal-revision
  549. ("6" "0wbq9wiaag69nsqxwijzhs5y1hb9kbpkp1x65dvx158cxp8i9w9r")))
  550. (native-inputs
  551. `(("ghc-hunit" ,ghc-hunit)
  552. ("ghc-quickcheck" ,ghc-quickcheck)))
  553. (inputs
  554. `(("ghc-ansi-terminal" ,ghc-ansi-terminal)
  555. ("ghc-ansi-wl-pprint" ,ghc-ansi-wl-pprint)
  556. ("ghc-hostname" ,ghc-hostname)
  557. ("ghc-old-locale" ,ghc-old-locale)
  558. ("ghc-random" ,ghc-random)
  559. ("ghc-regex-posix" ,ghc-regex-posix)
  560. ("ghc-xml" ,ghc-xml)
  561. ("ghc-libxml" ,ghc-libxml)
  562. ("ghc-semigroups" ,ghc-semigroups-bootstrap)))
  563. (home-page "https://batterseapower.github.io/test-framework/")
  564. (synopsis "Framework for running and organising tests")
  565. (description
  566. "This package allows tests such as QuickCheck properties and HUnit test
  567. cases to be assembled into test groups, run in parallel (but reported in
  568. deterministic order, to aid diff interpretation) and filtered and controlled
  569. by command line options. All of this comes with colored test output, progress
  570. reporting and test statistics output.")
  571. (license license:bsd-3)))
  572. (define-public ghc-test-framework-hunit
  573. (package
  574. (name "ghc-test-framework-hunit")
  575. (version "0.3.0.2")
  576. (source
  577. (origin
  578. (method url-fetch)
  579. (uri (string-append "https://hackage.haskell.org/package/"
  580. "test-framework-hunit/test-framework-hunit-"
  581. version ".tar.gz"))
  582. (sha256
  583. (base32
  584. "1y0b6vg8nfm43v90lxxcydhi6qlxhfy4vpxbzm5ic2w55bh8xjwm"))))
  585. (build-system haskell-build-system)
  586. (arguments
  587. `(#:cabal-revision
  588. ("3" "0i9mlalv7cl1iq43ld5myrnpszq5rxmd79hk495dcb08rglhgl3z")))
  589. (inputs
  590. `(("ghc-extensible-exceptions" ,ghc-extensible-exceptions)
  591. ("ghc-hunit" ,ghc-hunit)
  592. ("ghc-test-framework" ,ghc-test-framework)))
  593. (home-page "https://batterseapower.github.io/test-framework/")
  594. (synopsis "HUnit support for test-framework")
  595. (description
  596. "This package provides HUnit support for the test-framework package.")
  597. (license license:bsd-3)))
  598. (define-public ghc-test-framework-quickcheck2
  599. (package
  600. (name "ghc-test-framework-quickcheck2")
  601. (version "0.3.0.5")
  602. (source
  603. (origin
  604. (method url-fetch)
  605. (uri (string-append "https://hackage.haskell.org/package/"
  606. "test-framework-quickcheck2/"
  607. "test-framework-quickcheck2-" version ".tar.gz"))
  608. (sha256
  609. (base32
  610. "0ngf9vvby4nrdf1i7dxf5m9jn0g2pkq32w48xdr92n9hxka7ixn9"))))
  611. (build-system haskell-build-system)
  612. (arguments
  613. `(#:cabal-revision
  614. ("3" "0mglqfimla4vvv80mg08aj76zf4993wmngqlirh05h8i9nmgv6lh")))
  615. (inputs
  616. `(("ghc-extensible-exceptions" ,ghc-extensible-exceptions)
  617. ("ghc-quickcheck" ,ghc-quickcheck)
  618. ("ghc-random" ,ghc-random)
  619. ("ghc-test-framework" ,ghc-test-framework)))
  620. (home-page "https://batterseapower.github.io/test-framework/")
  621. (synopsis "QuickCheck2 support for test-framework")
  622. (description
  623. "This package provides QuickCheck2 support for the test-framework
  624. package.")
  625. (license license:bsd-3)))
  626. (define-public ghc-test-framework-smallcheck
  627. (package
  628. (name "ghc-test-framework-smallcheck")
  629. (version "0.2")
  630. (source
  631. (origin
  632. (method url-fetch)
  633. (uri (string-append "https://hackage.haskell.org/package/"
  634. "test-framework-smallcheck/"
  635. "test-framework-smallcheck-" version ".tar.gz"))
  636. (sha256
  637. (base32 "1xpgpk1gp4w7w46b4rhj80fa0bcyz8asj2dcjb5x1c37b7rw90b0"))))
  638. (build-system haskell-build-system)
  639. (inputs
  640. `(("ghc-smallcheck" ,ghc-smallcheck)
  641. ("ghc-test-framework" ,ghc-test-framework)))
  642. (home-page "https://github.com/Bodigrim/smallcheck")
  643. (synopsis "SmallCheck support for test-framework")
  644. (description
  645. "This package lets programmers use SmallCheck properties in Haskell's
  646. test-framework. New projects should use ghc-tasty-smallcheck instead.")
  647. (license license:bsd-3)))
  648. (define-public ghc-test-framework-th
  649. (package
  650. (name "ghc-test-framework-th")
  651. (version "0.2.4")
  652. (source
  653. (origin
  654. (method url-fetch)
  655. (uri (string-append "https://hackage.haskell.org/package/"
  656. "test-framework-th-" version "/"
  657. "test-framework-th-" version ".tar.gz"))
  658. (sha256
  659. (base32
  660. "12lw7yj02jb9s0i7rb98jjam43j2h0gzmnbj9zi933fx7sg0sy4b"))))
  661. (build-system haskell-build-system)
  662. (inputs
  663. `(("ghc-test-framework" ,ghc-test-framework)
  664. ("ghc-language-haskell-extract" ,ghc-language-haskell-extract)
  665. ("ghc-haskell-src-exts" ,ghc-haskell-src-exts)
  666. ("ghc-regex-posix" ,ghc-regex-posix)))
  667. (home-page "https://github.com/finnsson/test-generator")
  668. (synopsis "Auto generate the HUnit- and Quickcheck-bulk-code
  669. using Template Haskell")
  670. (description "This library contains two functions:
  671. @code{defaultMainGenerator} and @code{testGroupGenerator}.
  672. @code{defaultMainGenerator} will extract all functions beginning with
  673. @code{case_}, @code{prop_}, or @code{test_} in the module and put them in a
  674. @code{testGroup}.
  675. @code{testGroupGenerator} is like @code{defaultMainGenerator} but without
  676. @code{defaultMain}. It is useful if you need a function for the testgroup
  677. \(e.g. if you want to be able to call the testgroup from another module).")
  678. (license license:bsd-3)))
  679. (define-public ghc-hunit
  680. (package
  681. (name "ghc-hunit")
  682. (version "1.6.2.0")
  683. (outputs '("out" "static" "doc"))
  684. (source
  685. (origin
  686. (method url-fetch)
  687. (uri (string-append "https://hackage.haskell.org/package/HUnit/"
  688. "HUnit-" version ".tar.gz"))
  689. (sha256
  690. (base32
  691. "1as4sw5y39c3zrmr6sb8zbw74c9gdn4401y0dx45ih7zf6457dxh"))))
  692. (build-system haskell-build-system)
  693. (inputs
  694. ;; We cannot use ghc-call-stack there, because it depends on
  695. ;; ghc-nanospec, which depends on ghc-hunit.
  696. `(("ghc-call-stack" ,ghc-call-stack-boot)))
  697. (home-page "http://hunit.sourceforge.net/")
  698. (synopsis "Unit testing framework for Haskell")
  699. (description
  700. "HUnit is a unit testing framework for Haskell, inspired by the
  701. JUnit tool for Java.")
  702. (license license:bsd-3)))
  703. (define-public hspec-discover
  704. (package
  705. (name "hspec-discover")
  706. (version "2.7.10")
  707. (source
  708. (origin
  709. (method url-fetch)
  710. (uri (string-append "https://hackage.haskell.org/package/"
  711. "hspec-discover/hspec-discover-"
  712. version ".tar.gz"))
  713. (sha256
  714. (base32
  715. "13yzvd3b679skvs1insk4s0wc4zvmz6hs38kc8q0j6vzqq06smqa"))))
  716. (build-system haskell-build-system)
  717. (native-inputs
  718. `(("ghc-quickcheck" ,ghc-quickcheck)
  719. ("ghc-hspec-meta" ,ghc-hspec-meta)))
  720. (home-page "https://hspec.github.io/")
  721. (synopsis "Automatically discover and run Hspec tests")
  722. (description "hspec-discover is a tool which automatically discovers and
  723. runs Hspec tests.")
  724. (license license:expat)))
  725. (define-public ghc-hspec-core
  726. (package
  727. (name "ghc-hspec-core")
  728. (version "2.7.10")
  729. (source
  730. (origin
  731. (method url-fetch)
  732. (uri (string-append "https://hackage.haskell.org/package/hspec-core/"
  733. "hspec-core-" version ".tar.gz"))
  734. (sha256
  735. (base32
  736. "12k9yp5gznrda449ir60d5wv3xl7nnyffkb5mhfc0svw9f8lxlv1"))))
  737. (build-system haskell-build-system)
  738. (arguments `(#:tests? #f)) ; FIXME: testing libraries are missing.
  739. (inputs
  740. `(("ghc-setenv" ,ghc-setenv)
  741. ("ghc-ansi-terminal" ,ghc-ansi-terminal)
  742. ("ghc-clock" ,ghc-clock)
  743. ("ghc-quickcheck-io" ,ghc-quickcheck-io)
  744. ("ghc-hunit" ,ghc-hunit)
  745. ("ghc-quickcheck" ,ghc-quickcheck)
  746. ("ghc-hspec-expectations" ,ghc-hspec-expectations)
  747. ("ghc-silently" ,ghc-silently)
  748. ("ghc-tf-random" ,ghc-tf-random)))
  749. (home-page "https://hspec.github.io/")
  750. (synopsis "Testing framework for Haskell")
  751. (description "This library exposes internal types and functions that can
  752. be used to extend Hspec's functionality.")
  753. (license license:expat)))
  754. (define-public ghc-hspec-meta
  755. (package
  756. (name "ghc-hspec-meta")
  757. (version "2.7.8")
  758. (source
  759. (origin
  760. (method url-fetch)
  761. (uri (string-append "https://hackage.haskell.org/package/hspec-meta/"
  762. "hspec-meta-" version ".tar.gz"))
  763. (sha256
  764. (base32
  765. "0sfj0n2hy1r8ifysgbcmfdygcd7vyzr13ldkcp0l2ml337f8j0si"))))
  766. (build-system haskell-build-system)
  767. (inputs
  768. `(("ghc-quickcheck" ,ghc-quickcheck)
  769. ("ghc-hunit" ,ghc-hunit)
  770. ("ghc-ansi-terminal" ,ghc-ansi-terminal)
  771. ("ghc-clock" ,ghc-clock)
  772. ("ghc-hspec-expectations" ,ghc-hspec-expectations)
  773. ("ghc-setenv" ,ghc-setenv)
  774. ("ghc-random" ,ghc-random)
  775. ("ghc-quickcheck-io" ,ghc-quickcheck-io)))
  776. (home-page "https://hspec.github.io/")
  777. (synopsis "Version of Hspec to test Hspec itself")
  778. (description "This library provides a stable version of Hspec which is
  779. used to test the in-development version of Hspec.")
  780. (license license:expat)))
  781. (define-public ghc-hspec
  782. (package
  783. (name "ghc-hspec")
  784. (version "2.7.10")
  785. (source
  786. (origin
  787. (method url-fetch)
  788. (uri (string-append "https://hackage.haskell.org/package/hspec/"
  789. "hspec-" version ".tar.gz"))
  790. (sha256
  791. (base32
  792. "0z0lwrmrqkglr78n6k2c36n4h68142bh785ys0x4jaibjshvs6rw"))))
  793. (build-system haskell-build-system)
  794. (outputs '("out" "static" "doc"))
  795. (inputs
  796. `(("ghc-hspec-core" ,ghc-hspec-core)
  797. ("hspec-discover" ,hspec-discover)
  798. ("ghc-hspec-expectations" ,ghc-hspec-expectations)
  799. ("ghc-quickcheck" ,ghc-quickcheck)
  800. ("ghc-hunit" ,ghc-hunit)
  801. ("ghc-stringbuilder" ,ghc-stringbuilder)
  802. ("ghc-hspec-meta" ,ghc-hspec-meta)))
  803. (home-page "https://hspec.github.io/")
  804. (synopsis "Testing Framework for Haskell")
  805. (description "This library provides the Hspec testing framework for
  806. Haskell, inspired by the Ruby library RSpec.")
  807. (license license:expat)))
  808. (define-public ghc-hspec-contrib
  809. (package
  810. (name "ghc-hspec-contrib")
  811. (version "0.5.1")
  812. (source (origin
  813. (method url-fetch)
  814. (uri (string-append "https://hackage.haskell.org/package/"
  815. "hspec-contrib/hspec-contrib-"
  816. version ".tar.gz"))
  817. (sha256
  818. (base32
  819. "0hhzxaa3fxz5mk5qcsrnfr98a7bn3szx2ydgr0x9mbqmm1jg06rc"))))
  820. (build-system haskell-build-system)
  821. (inputs
  822. `(("ghc-hspec-core" ,ghc-hspec-core)
  823. ("ghc-hunit" ,ghc-hunit)
  824. ("ghc-hspec" ,ghc-hspec)
  825. ("ghc-quickcheck" ,ghc-quickcheck)))
  826. (native-inputs
  827. `(("hspec-discover" ,hspec-discover)))
  828. (home-page "https://hspec.github.io/")
  829. (synopsis "Contributed functionality for Hspec")
  830. (description
  831. "This package provides contributed Hspec extensions.")
  832. (license license:expat)))
  833. (define-public ghc-hspec-expectations
  834. (package
  835. (name "ghc-hspec-expectations")
  836. (version "0.8.2")
  837. (source
  838. (origin
  839. (method url-fetch)
  840. (uri (string-append "https://hackage.haskell.org/package/"
  841. "hspec-expectations/hspec-expectations-"
  842. version ".tar.gz"))
  843. (sha256
  844. (base32
  845. "1vxl9zazbaapijr6zmcj72j9wf7ka1pirrjbwddwwddg3zm0g5l1"))))
  846. (build-system haskell-build-system)
  847. ;; Tests depend on ghc-nanospec.
  848. (arguments '(#:tests? #f))
  849. (inputs `(("ghc-hunit" ,ghc-hunit)))
  850. (home-page "https://github.com/sol/hspec-expectations")
  851. (synopsis "Catchy combinators for HUnit")
  852. (description "This library provides catchy combinators for HUnit, see
  853. @uref{https://github.com/sol/hspec-expectations#readme, the README}.")
  854. (license license:expat)))
  855. (define-public ghc-nanospec
  856. (package
  857. (name "ghc-nanospec")
  858. (version "0.2.2")
  859. (source
  860. (origin
  861. (method url-fetch)
  862. (uri (string-append "https://hackage.haskell.org/package/"
  863. "nanospec/nanospec-"
  864. version ".tar.gz"))
  865. (sha256
  866. (base32
  867. "1rcmhl9bhyfvanalnf1r86wkx6rq6wdvagnw1h011jcnnb1cq56g"))))
  868. (build-system haskell-build-system)
  869. (inputs
  870. `(("ghc-hspec" ,ghc-hspec)
  871. ("ghc-silently" ,ghc-silently)))
  872. (home-page "https://github.com/hspec/nanospec#readme")
  873. (synopsis "Lightweight implementation of a subset of Hspec's API")
  874. (description
  875. "Nanospec is a lightweight implementation of a subset of Hspec's API with
  876. minimal dependencies.")
  877. (license license:expat)))
  878. (define-public ghc-crypto-cipher-tests
  879. (package
  880. (name "ghc-crypto-cipher-tests")
  881. (version "0.0.11")
  882. (source
  883. (origin
  884. (method url-fetch)
  885. (uri (string-append "https://hackage.haskell.org/package/"
  886. "crypto-cipher-tests-" version "/"
  887. "crypto-cipher-tests-" version ".tar.gz"))
  888. (sha256
  889. (base32
  890. "19wqignlq90qwpam01hnmmrxaxh5lkax9l1l6rlbi4a07nvp1dnz"))))
  891. (build-system haskell-build-system)
  892. (inputs `(("ghc-quickcheck" ,ghc-quickcheck)
  893. ("ghc-hunit" ,ghc-hunit)
  894. ("ghc-test-framework" ,ghc-test-framework)
  895. ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)
  896. ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
  897. ("ghc-byteable" ,ghc-byteable)
  898. ("ghc-securemem" ,ghc-securemem)
  899. ("ghc-crypto-cipher-types" ,ghc-crypto-cipher-types)))
  900. (home-page "https://github.com/vincenthz/hs-crypto-cipher")
  901. (synopsis "Generic cryptography cipher tests for Haskell")
  902. (description " This Haskell package contains generic tests for
  903. cryptographic ciphers, and is used by the test runners of various Haskell
  904. implementations of cryptographic ciphers.")
  905. (license license:bsd-3)))
  906. (define-public ghc-hedgehog
  907. (package
  908. (name "ghc-hedgehog")
  909. (version "1.0.5")
  910. (source
  911. (origin
  912. (method url-fetch)
  913. (uri (string-append
  914. "https://hackage.haskell.org/package/hedgehog/hedgehog-"
  915. version
  916. ".tar.gz"))
  917. (sha256
  918. (base32
  919. "1qsqs8lmxa3wmw228cwi98vvvh9hqbc9d43i1sy2c9igw9xlhfi6"))))
  920. (build-system haskell-build-system)
  921. (inputs
  922. `(("ghc-ansi-terminal" ,ghc-ansi-terminal)
  923. ("ghc-async" ,ghc-async)
  924. ("ghc-concurrent-output" ,ghc-concurrent-output)
  925. ("ghc-erf" ,ghc-erf)
  926. ;("ghc-exceptions" ,ghc-exceptions)
  927. ("ghc-lifted-async" ,ghc-lifted-async)
  928. ("ghc-mmorph" ,ghc-mmorph)
  929. ("ghc-monad-control" ,ghc-monad-control)
  930. ("ghc-pretty-show" ,ghc-pretty-show)
  931. ("ghc-primitive" ,ghc-primitive)
  932. ("ghc-random" ,ghc-random)
  933. ("ghc-resourcet" ,ghc-resourcet)
  934. ("ghc-transformers-base" ,ghc-transformers-base)
  935. ("ghc-wl-pprint-annotated"
  936. ,ghc-wl-pprint-annotated)))
  937. (home-page "https://hedgehog.qa")
  938. (synopsis "Property-based testing in the spirt of QuickCheck")
  939. (description
  940. "Hedgehog is a property-based testing system, in the spirit of
  941. QuickCheck. Hedgehog uses integrated shrinking, so shrinks obey the invariants
  942. of generated values by construction.
  943. To get started quickly, see the examples:
  944. @uref{https://github.com/hedgehogqa/haskell-hedgehog/tree/master/hedgehog-example}")
  945. (license license:bsd-3)))
  946. (define-public cabal-doctest
  947. (package
  948. (name "cabal-doctest")
  949. (version "1.0.8")
  950. (source
  951. (origin
  952. (method url-fetch)
  953. (uri (string-append "https://hackage.haskell.org/package/"
  954. "cabal-doctest/cabal-doctest-"
  955. version ".tar.gz"))
  956. (sha256
  957. (base32
  958. "03if74imlhhk7m56nci5f1wclniwqdmwl4hl177040j1gnlac9i0"))))
  959. (build-system haskell-build-system)
  960. (arguments
  961. `(#:cabal-revision
  962. ("2" "05v1awad3d1wvc763xcgvxm4n6n7bs7byc6s14kdbw35zcaddlcb")))
  963. (home-page "https://github.com/phadej/cabal-doctest")
  964. (synopsis "Setup.hs helper for running doctests")
  965. (description
  966. "To properly work, the @code{doctest} package needs plenty of
  967. configuration. This library provides the common bits for writing custom
  968. @file{Setup.hs} files.")
  969. (license license:bsd-3)))
  970. (define-public ghc-testing-type-modifiers
  971. (package
  972. (name "ghc-testing-type-modifiers")
  973. (version "0.1.0.1")
  974. (source
  975. (origin
  976. (method url-fetch)
  977. (uri (string-append "https://hackage.haskell.org/package/"
  978. "testing-type-modifiers/testing-type-modifiers-"
  979. version ".tar.gz"))
  980. (sha256
  981. (base32
  982. "1wh2n95n39ivv6kbqn42vbzrj8zagsmk6f2al2qj40bg5kgdl2q5"))))
  983. (build-system haskell-build-system)
  984. (home-page "https://hackage.haskell.org/package/testing-type-modifiers")
  985. (synopsis "Data type modifiers for property based testing")
  986. (description "Property based testing libraries such as QuickCheck tend to
  987. include type modifiers. Most of them are used to quantify over subsets of a
  988. type. This library is intended to supply these modifiers to be used by
  989. testing libraries, in an effort to make properties more portable between
  990. testing frameworks.")
  991. (license license:unlicense)))
  992. (define-public ghc-testing-feat
  993. (package
  994. (name "ghc-testing-feat")
  995. (version "1.1.0.0")
  996. (source
  997. (origin
  998. (method url-fetch)
  999. (uri (string-append "https://hackage.haskell.org/package/"
  1000. "testing-feat/testing-feat-" version ".tar.gz"))
  1001. (sha256
  1002. (base32
  1003. "1v2qzzpf1s008g7q6q67glf7vbm1pkpq4rc3ii74f4g6vhfx610r"))))
  1004. (build-system haskell-build-system)
  1005. (inputs
  1006. `(("ghc-quickcheck" ,ghc-quickcheck)
  1007. ("ghc-size-based" ,ghc-size-based)
  1008. ("ghc-testing-type-modifiers" ,ghc-testing-type-modifiers)
  1009. ("ghc-semigroups" ,ghc-semigroups)))
  1010. (home-page "https://github.com/JonasDuregard/testing-feat")
  1011. (synopsis "Functional Enumeration of Algebraic Types")
  1012. (description "Feat (Functional Enumeration of Algebraic Types)
  1013. provides enumerations as functions from natural numbers to
  1014. values (similar to @code{toEnum} but for any algebraic data type). This
  1015. can be used for SmallCheck-style systematic testing, QuickCheck-style
  1016. random testing, and hybrids of the two.")
  1017. (license license:bsd-3)))
  1018. (define-public ghc-inspection-testing
  1019. (package
  1020. (name "ghc-inspection-testing")
  1021. (version "0.4.6.0")
  1022. (source
  1023. (origin
  1024. (method url-fetch)
  1025. (uri (string-append
  1026. "https://hackage.haskell.org/package/inspection-testing/"
  1027. "inspection-testing-" version ".tar.gz"))
  1028. (sha256
  1029. (base32
  1030. "0qz1npyycj4bvyly9xmjbnhw569l52h38gx02rk0r7zhapw83aig"))))
  1031. (build-system haskell-build-system)
  1032. (home-page
  1033. "https://github.com/nomeata/inspection-testing")
  1034. (synopsis "GHC plugin to do inspection testing")
  1035. (description
  1036. "Some carefully crafted libraries make promises to their users beyond
  1037. functionality and performance.
  1038. Examples are: Fusion libraries promise intermediate data structures to be
  1039. eliminated. Generic programming libraries promise that the generic
  1040. implementation is identical to the hand-written one. Some libraries may
  1041. promise allocation-free or branch-free code.
  1042. Conventionally, the modus operandi in all these cases is that the library
  1043. author manually inspects the (intermediate or final) code produced by the
  1044. compiler. This is not only tedious, but makes it very likely that some change,
  1045. either in the library itself or the surrounding eco-system, breaks the
  1046. library's promised without anyone noticing.
  1047. This package provides a disciplined way of specifying such properties, and
  1048. have them checked by the compiler. This way, this checking can be part of the
  1049. regular development cycle and regressions caught early.
  1050. See the documentation in \"Test.Inspection\" or the project webpage for more
  1051. examples and more information.")
  1052. (license license:expat)))
  1053. (define-public ghc-quickcheck-classes-base
  1054. (package
  1055. (name "ghc-quickcheck-classes-base")
  1056. (version "0.6.2.0")
  1057. (source
  1058. (origin
  1059. (method url-fetch)
  1060. (uri (string-append
  1061. "https://hackage.haskell.org/package/quickcheck-classes-base/quickcheck-classes-base-"
  1062. version
  1063. ".tar.gz"))
  1064. (sha256
  1065. (base32 "16c6gq4cqpkwnq1pzkhm6r7mrwk4an50ha5w77bmiia2qkhla6ch"))))
  1066. (build-system haskell-build-system)
  1067. (inputs
  1068. `(("ghc-quickcheck" ,ghc-quickcheck)
  1069. ("ghc-contravariant" ,ghc-contravariant)
  1070. ("ghc-bifunctors" ,ghc-bifunctors)
  1071. ("ghc-semigroups" ,ghc-semigroups)
  1072. ("ghc-fail" ,ghc-fail)
  1073. ("ghc-tagged" ,ghc-tagged)))
  1074. (home-page "https://github.com/andrewthad/quickcheck-classes#readme")
  1075. (synopsis "QuickCheck common typeclasses from `base`")
  1076. (description
  1077. "This libary is a minimal variant of `quickcheck-classes`
  1078. that only provides laws for typeclasses from `base`. The main
  1079. purpose of splitting this out is so that `primitive` can depend
  1080. on `quickcheck-classes-base` in its test suite, avoiding the
  1081. circular dependency that arises if `quickcheck-classes` is used
  1082. instead. . This library provides QuickCheck properties to ensure
  1083. that typeclass instances adhere to the set of laws that they are
  1084. supposed to. There are other libraries that do similar things,
  1085. such as `genvalidity-hspec` and `checkers`. This library differs
  1086. from other solutions by not introducing any new typeclasses that
  1087. the user needs to learn. . /Note:/ on GHC < 8.5, this library
  1088. uses the higher-kinded typeclasses ('Data.Functor.Classes.Show1',
  1089. 'Data.Functor.Classes.Eq1', 'Data.Functor.Classes.Ord1', etc.),
  1090. but on GHC >= 8.5, it uses `-XQuantifiedConstraints` to express
  1091. these constraints more cleanly.")
  1092. (license license:bsd-3)))
  1093. (define-public ghc-doctest-lib
  1094. (package
  1095. (name "ghc-doctest-lib")
  1096. (version "0.1")
  1097. (source
  1098. (origin
  1099. (method url-fetch)
  1100. (uri (string-append
  1101. "https://hackage.haskell.org/package/doctest-lib/doctest-lib-"
  1102. version
  1103. ".tar.gz"))
  1104. (sha256
  1105. (base32 "1vswam0dhw52dihgnzirh18gqs8rj8h6jd7pl6y1mg2f9f9zmih2"))))
  1106. (build-system haskell-build-system)
  1107. (home-page "https://hub.darcs.net/thielema/doctest-lib/")
  1108. (synopsis "Parts of doctest exposed as library")
  1109. (description
  1110. "Parts of doctest exposed as library. For use with the doctest-extract utility.")
  1111. (license license:expat)))
  1112. (define-public ghc-doctest-exitcode-stdio
  1113. (package
  1114. (name "ghc-doctest-exitcode-stdio")
  1115. (version "0.0")
  1116. (source
  1117. (origin
  1118. (method url-fetch)
  1119. (uri (string-append
  1120. "https://hackage.haskell.org/package/doctest-exitcode-stdio/doctest-exitcode-stdio-"
  1121. version
  1122. ".tar.gz"))
  1123. (sha256
  1124. (base32 "1g3c7yrqq2mwqbmvs8vkx1a3cf0p0x74b7fnn344dsk7bsfpgv0x"))))
  1125. (build-system haskell-build-system)
  1126. (inputs
  1127. `(("ghc-doctest-lib" ,ghc-doctest-lib)
  1128. ("ghc-quickcheck" ,ghc-quickcheck)
  1129. ("ghc-semigroups" ,ghc-semigroups)))
  1130. (home-page "https://hub.darcs.net/thielema/doctest-exitcode-stdio/")
  1131. (synopsis "Run Doctests in a @code{Cabal.Test.exitcode-stdio} environment")
  1132. (description
  1133. "This package allows on to run Doctests in a Cabal.Test.exitcode-stdio
  1134. environment.")
  1135. (license license:bsd-3)))
  1136. (define-public ghc-cabal-doctest
  1137. (package
  1138. (name "ghc-cabal-doctest")
  1139. (version "1.0.8")
  1140. (source
  1141. (origin
  1142. (method url-fetch)
  1143. (uri (string-append
  1144. "https://hackage.haskell.org/package/cabal-doctest/cabal-doctest-"
  1145. version
  1146. ".tar.gz"))
  1147. (sha256
  1148. (base32 "03if74imlhhk7m56nci5f1wclniwqdmwl4hl177040j1gnlac9i0"))))
  1149. (build-system haskell-build-system)
  1150. (arguments
  1151. `(#:cabal-revision
  1152. ("2" "05v1awad3d1wvc763xcgvxm4n6n7bs7byc6s14kdbw35zcaddlcb")))
  1153. (home-page "https://github.com/phadej/cabal-doctest")
  1154. (synopsis "@file{Setup.hs} helper for Doctests running")
  1155. (description
  1156. "This package provides helpers for running Doctests in @file{Setup.hs}.")
  1157. (license license:bsd-3)))
  1158. (define-public ghc-tasty-silver
  1159. (package
  1160. (name "ghc-tasty-silver")
  1161. (version "3.2.2")
  1162. (source
  1163. (origin
  1164. (method url-fetch)
  1165. (uri (string-append
  1166. "https://hackage.haskell.org/package/tasty-silver/tasty-silver-"
  1167. version
  1168. ".tar.gz"))
  1169. (sha256
  1170. (base32 "0zsl6nna8ir215qyxhyh2czx4i16hzw1n1m8jw8ym02j6sp6iz13"))))
  1171. (build-system haskell-build-system)
  1172. (inputs
  1173. `(("ghc-ansi-terminal" ,ghc-ansi-terminal)
  1174. ("ghc-async" ,ghc-async)
  1175. ("ghc-optparse-applicative" ,ghc-optparse-applicative)
  1176. ("ghc-process-extras" ,ghc-process-extras)
  1177. ("ghc-regex-tdfa" ,ghc-regex-tdfa)
  1178. ("ghc-tagged" ,ghc-tagged)
  1179. ("ghc-tasty" ,ghc-tasty)
  1180. ("ghc-temporary" ,ghc-temporary)))
  1181. (native-inputs `(("ghc-tasty-hunit" ,ghc-tasty-hunit)))
  1182. (arguments
  1183. `(#:cabal-revision
  1184. ("1" "0mgdk77xz38zc46qbxvss6vnp4yk328zbpw1l0c1n0f5gyf6sbav")))
  1185. (home-page "https://github.com/phile314/tasty-silver")
  1186. (synopsis "Fancy test runner, including support for golden tests")
  1187. (description
  1188. "This package provides a fancy test runner and support for @dfn{golden
  1189. testing}. A golden test is an IO action that writes its result to a file. To
  1190. pass the test, this output file should be identical to the corresponding
  1191. ``golden'' file, which contains the correct result for the test. The test
  1192. runner allows filtering tests using regexes, and to interactively inspect the
  1193. result of golden tests.")
  1194. (license license:expat)))