1 ;;; GNU Guix --- Functional package management for GNU
2 ;;; Copyright © 2016, 2017 Andy Patterson <ajpatter@uwaterloo.ca>
3 ;;; Copyright © 2018, 2020 Efraim Flashner <efraim@flashner.co.il>
4 ;;; Copyright © 2018, 2019, 2020, 2021, 2022 Pierre Neidhardt <mail@ambrevar.xyz>
5 ;;; Copyright © 2018 Pierre Langlois <pierre.langlois@gmx.com>
6 ;;; Copyright © 2019 Tobias Geerinckx-Rice <me@tobias.gr>
7 ;;; Copyright © 2019, 2020 Katherine Cox-Buday <cox.katherine.e@gmail.com>
8 ;;; Copyright © 2019, 2020, 2021, 2022 Guillaume Le Vaillant <glv@posteo.net>
9 ;;; Copyright © 2021 Sharlatan Hellseher <sharlatanus@gmail.com>
10 ;;; Copyright © 2021 Charles Jackson <charles.b.jackson@protonmail.com>
11 ;;; Copyright © 2022 jgart <jgart@dismail.de>
13 ;;; This file is part of GNU Guix.
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.
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.
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/>.
28 ;;; This module only contains Common Lisp libraries related to code testing
31 (define-module (gnu packages lisp-check)
32 #:use-module (gnu packages)
33 #:use-module ((guix licenses) #:prefix license:)
34 #:use-module (gnu packages lisp-xyz)
35 #:use-module (guix packages)
36 #:use-module (guix git-download)
37 #:use-module (guix build-system asdf))
39 (define-public sbcl-1am
40 (let ((commit "8b1da94eca4613fd8a20bdf63f0e609e379b0ba5"))
43 (version (git-version "0.0" "1" commit))
48 (url "https://github.com/lmj/1am")
50 (file-name (git-file-name name version))
53 "05ss4nz1jb9kb796295482b62w5cj29msfj8zis33sp2rw2vmv2g"))))
54 (build-system asdf-build-system/sbcl)
55 (home-page "https://github.com/lmj/1am")
56 (synopsis "Minimal testing framework for Common Lisp")
57 (description "A minimal testing framework for Common Lisp.")
58 (license license:expat))))
61 (sbcl-package->cl-source-package sbcl-1am))
63 (define-public ecl-1am
64 (sbcl-package->ecl-package sbcl-1am))
66 (define-public sbcl-check-it
67 (let ((commit "b79c9103665be3976915b56b570038f03486e62f"))
69 (name "sbcl-check-it")
70 (version (git-version "0.1.0" "1" commit))
75 (url "https://github.com/DalekBaldwin/check-it/")
77 (file-name (git-file-name name version))
79 (base32 "1kbjwpniffdpv003igmlz5r0vy65m7wpfnhg54fhwirp1227hgg7"))))
80 (build-system asdf-build-system/sbcl)
82 (list sbcl-alexandria sbcl-closer-mop sbcl-optima))
85 (home-page "https://github.com/arclanguage/Clamp")
86 (synopsis "Randomized specification-based testing for Common Lisp")
88 "This is a randomized property-based testing library for Common Lisp.
89 Rather than being a full-fledged general test framework in its own right, it's
90 designed to embed randomized tests in whatever framework you like.")
91 (license license:llgpl))))
93 (define-public cl-check-it
94 (sbcl-package->cl-source-package sbcl-check-it))
96 (define-public ecl-check-it
97 (sbcl-package->ecl-package sbcl-check-it))
99 (define-public sbcl-checkl
100 (let ((commit "80328800d047fef9b6e32dfe6bdc98396aee3cc9")
104 (version (git-version "0.0.0" revision commit))
109 (url "https://github.com/rpav/CheckL")
111 (file-name (git-file-name name version))
113 (base32 "0bpisihx1gay44xmyr1dmhlwh00j0zzi04rp9fy35i95l2r4xdlx"))))
114 (build-system asdf-build-system/sbcl)
116 ;; Error while trying to load definition for system checkl-test from
117 ;; pathname [...]/checkl-test.asd: The function CHECKL:DEFINE-TEST-OP
124 (home-page "https://github.com/rpav/CheckL/")
125 (synopsis "Dynamic testing for Common Lisp")
127 "CheckL lets you write tests dynamically, it checks resulting values
128 against the last run.")
129 ;; The author specifies both LLGPL and "BSD", but the "BSD" license
130 ;; isn't specified anywhere, so I don't know which kind. LLGPL is the
131 ;; stronger of the two and so I think only listing this should suffice.
132 (license license:llgpl))))
134 (define-public cl-checkl
135 (sbcl-package->cl-source-package sbcl-checkl))
137 (define-public ecl-checkl
138 (sbcl-package->ecl-package sbcl-checkl))
140 (define-public sbcl-cl-mock
141 ;; .asd version only got updated recently, despired the old GitHug "1.0.1" release.
142 (let ((commit "7988dca2093358911b67597a2cd1570c785dfe76"))
144 (name "sbcl-cl-mock")
145 (version (git-version "1.0.1" "1" commit))
150 (url "https://github.com/Ferada/cl-mock/")
152 (file-name (git-file-name name version))
154 (base32 "0f40wikcf783jx26ip0nnhwjjfjvjiw7njqsqrb6kaphc8bgw0i1"))))
155 (build-system asdf-build-system/sbcl)
157 (list sbcl-alexandria sbcl-closer-mop sbcl-trivia))
160 (home-page "https://github.com/Ferada/cl-mock")
161 (synopsis "Mocking functions for Common Lisp testing")
163 "This small library provides a way to replace the actual implementation
164 of either regular or generic functions with mocks.")
165 (license license:agpl3))))
167 (define-public ecl-cl-mock
168 (sbcl-package->ecl-package sbcl-cl-mock))
170 (define-public cl-mock
171 (sbcl-package->cl-source-package sbcl-cl-mock))
173 (define-public sbcl-cl-quickcheck
174 (let ((commit "807b2792a30c883a2fbecea8e7db355b50ba662f")
177 (name "sbcl-cl-quickcheck")
178 (version (git-version "0.0.4" revision commit))
183 (url "https://github.com/mcandre/cl-quickcheck")
185 (file-name (git-file-name name version))
188 "165lhypq5xkcys6hvzb3jq7ywnmqvzaflda29qk2cbs3ggas4767"))))
189 (build-system asdf-build-system/sbcl)
191 "Common Lisp port of the QuickCheck unit test framework")
193 "Common Lisp port of the QuickCheck unit test framework")
194 (home-page "https://github.com/mcandre/cl-quickcheck")
196 (license license:expat))))
198 (define-public cl-quickcheck
199 (sbcl-package->cl-source-package sbcl-cl-quickcheck))
201 (define-public ecl-cl-quickcheck
202 (sbcl-package->ecl-package sbcl-cl-quickcheck))
204 (define-public sbcl-clunit
205 (let ((commit "6f6d72873f0e1207f037470105969384f8380628")
209 (version (git-version "0.2.3" revision commit))
214 (url "https://github.com/tgutu/clunit")
216 (file-name (git-file-name name version))
219 "1idf2xnqzlhi8rbrqmzpmb3i1l6pbdzhhajkmhwbp6qjkmxa4h85"))))
220 (build-system asdf-build-system/sbcl)
221 (synopsis "CLUnit is a Common Lisp unit testing framework")
223 "CLUnit is a Common Lisp unit testing framework. It is designed
224 to be easy to use so that you can quickly start testing. CLUnit
225 provides a rich set of features aimed at improving your unit testing
227 (home-page "https://tgutu.github.io/clunit/")
229 (license license:expat))))
231 (define-public cl-clunit
232 (sbcl-package->cl-source-package sbcl-clunit))
234 (define-public ecl-clunit
235 (sbcl-package->ecl-package sbcl-clunit))
237 (define-public sbcl-clunit2
238 (let ((commit "5e28343734eb9b7aee39306a614af92c1062d50b")
241 (name "sbcl-clunit2")
242 (version (git-version "0.2.4" revision commit))
247 (url "https://notabug.org/cage/clunit2.git")
249 (file-name (git-file-name name version))
251 (base32 "1ngiapfki6nm8a555mzhb5p7ch79i3w665za5bmb5j7q34fy80vw"))))
252 (build-system asdf-build-system/sbcl)
253 (synopsis "Unit testing framework for Common Lisp")
255 "CLUnit is a Common Lisp unit testing framework. It is designed to be
256 easy to use so that you can quickly start testing.")
257 (home-page "https://notabug.org/cage/clunit2")
258 (license license:expat))))
260 (define-public cl-clunit2
261 (sbcl-package->cl-source-package sbcl-clunit2))
263 (define-public ecl-clunit2
264 (sbcl-package->ecl-package sbcl-clunit2))
266 (define-public sbcl-eos
267 (let ((commit "b4413bccc4d142cbe1bf49516c3a0a22c9d99243")
271 (version (git-version "0.0.0" revision commit))
276 (url "https://github.com/adlai/Eos")
279 (base32 "1afllvmlnx97yzz404gycl3pa3kwx427k3hrbf37rpmjlv47knhk"))
280 (file-name (git-file-name "eos" version))))
281 (build-system asdf-build-system/sbcl)
282 (synopsis "Unit Testing for Common Lisp")
284 "Eos was a unit testing library for Common Lisp.
285 It began as a fork of FiveAM; however, FiveAM development has continued, while
286 that of Eos has not. Thus, Eos is now deprecated in favor of FiveAM.")
287 (home-page "https://github.com/adlai/Eos")
288 (license license:expat))))
290 (define-public cl-eos
291 (sbcl-package->cl-source-package sbcl-eos))
293 (define-public ecl-eos
294 (sbcl-package->ecl-package sbcl-eos))
296 (define-public sbcl-fiasco
297 (let ((commit "bb47d2fef4eb24cc16badc1c9a73d73c3a7e18f5")
301 (version (git-version "0.0.1" revision commit))
306 (url "https://github.com/joaotavora/fiasco")
308 (file-name (git-file-name "fiasco" version))
311 "1k8i2kq57201bvy3zfpsxld530hd104dgbglxigqb6i408c1a7aw"))))
312 (build-system asdf-build-system/sbcl)
314 (list sbcl-alexandria sbcl-trivial-gray-streams))
315 (synopsis "Simple and powerful test framework for Common Lisp")
316 (description "A Common Lisp test framework that treasures your failures,
317 logical continuation of Stefil. It focuses on interactive debugging.")
318 (home-page "https://github.com/joaotavora/fiasco")
319 ;; LICENCE specifies this is public-domain unless the legislation
320 ;; doesn't allow or recognize it. In that case it falls back to a
321 ;; permissive licence.
322 (license (list license:public-domain
323 (license:x11-style "file://LICENCE"))))))
325 (define-public cl-fiasco
326 (sbcl-package->cl-source-package sbcl-fiasco))
328 (define-public ecl-fiasco
329 (sbcl-package->ecl-package sbcl-fiasco))
331 (define-public sbcl-fiveam
339 (url "https://github.com/sionescu/fiveam")
340 (commit (string-append "v" version))))
341 (file-name (git-file-name "fiveam" version))
343 (base32 "04mh5plmlb15jbq3dkd8b9jl1dmbbg4hnd3k7859vpf6s12k5p4j"))))
345 (list sbcl-alexandria sbcl-net.didierverna.asdf-flv
346 sbcl-trivial-backtrace))
347 (build-system asdf-build-system/sbcl)
348 (synopsis "Common Lisp testing framework")
349 (description "FiveAM is a simple (as far as writing and running tests
350 goes) regression testing framework. It has been designed with Common Lisp's
351 interactive development model in mind.")
352 (home-page "https://common-lisp.net/project/fiveam/")
353 (license license:bsd-3)))
355 (define-public cl-fiveam
356 (sbcl-package->cl-source-package sbcl-fiveam))
358 (define-public ecl-fiveam
359 (sbcl-package->ecl-package sbcl-fiveam))
361 (define-public sbcl-hamcrest
362 (let ((commit "a54553e59a70dc5a539b683e79bfcdb0e8bae5c8")
365 (name "sbcl-hamcrest")
371 (url "https://github.com/40ants/cl-hamcrest")
374 (base32 "181nnb2fjbsdqjqdvwg2x9n1jjalkfzszwdgqcap4py2q63q1kxj"))
375 (file-name (git-file-name "cl-hamcrest" commit))))
376 (build-system asdf-build-system/sbcl)
384 (home-page "https://40ants.com/cl-hamcrest/")
385 (synopsis "Make CL unit tests more readable")
387 "@code{cl-hamcrest} is an implementation of the Hamcrest idea in
388 Common Lisp. It simplifes unit tests and makes them more readable.
389 Hamcrest uses the idea of pattern-matching, to construct matchers from
390 different pieces and to apply them to the data.")
391 (license license:bsd-3))))
393 (define-public cl-hamcrest
394 (sbcl-package->cl-source-package sbcl-hamcrest))
396 (define-public ecl-cl-hamcrest
397 (sbcl-package->ecl-package sbcl-hamcrest))
399 (define-public sbcl-hu.dwim.stefil
400 (let ((commit "414902c6f575818c39a8a156b8b61b1adfa73dad"))
402 (name "sbcl-hu.dwim.stefil")
403 (version (git-version "0.0.0" "2" commit))
409 (url "https://github.com/hu-dwim/hu.dwim.stefil")
412 (base32 "14izmjjim590rh74swrssavdmdznj2z8vhqixy780sjhpcr5pmkc"))
413 (file-name (git-file-name "hu.dwim.stefil" version))))
414 (build-system asdf-build-system/sbcl)
416 (list sbcl-hu.dwim.asdf))
418 (list sbcl-alexandria))
419 (home-page "http://dwim.hu/project/hu.dwim.stefil")
420 (synopsis "Simple test framework")
421 (description "Stefil is a simple test framework for Common Lisp,
422 with a focus on interactive development.")
423 (license license:public-domain))))
425 (define-public cl-hu.dwim.stefil
426 (sbcl-package->cl-source-package sbcl-hu.dwim.stefil))
428 (define-public ecl-hu.dwim.stefil
429 (sbcl-package->ecl-package sbcl-hu.dwim.stefil))
431 (define-public sbcl-kaputt
432 (let ((commit "f26c9b0f8219fe61d86249198ef85174eecafc10")
436 (version (git-version "0.0.0" revision commit))
441 (url "https://github.com/foretspaisibles/cl-kaputt")
443 (file-name (git-file-name "kaputt" version))
445 (base32 "10a78032vnf12kjjpfmq9ign38cad237ycyq37dwnx922nxjjaj4"))))
446 (build-system asdf-build-system/sbcl)
448 (list sbcl-cl-ppcre))
449 (home-page "https://github.com/foretspaisibles/cl-kaputt")
450 (synopsis "Simple interactive test framework for Common Lisp")
452 "KAPUTT is a test framework for Common Lisp that focuses on the
456 @item KAPUTT is simple, it only defines three abstractions testcase, assertion
457 and protocol and does not add any artefact on the backtrace when errors occur.
459 @item KAPUTT is extensible, it is possible to add problem-specific assertions
460 to make test code more informative.
462 @item KAPUTT fits well interactive development.
464 (license license:cecill-b))))
466 (define-public ecl-kaputt
467 (sbcl-package->ecl-package sbcl-kaputt))
469 (define-public cl-kaputt
470 (sbcl-package->cl-source-package sbcl-kaputt))
472 (define-public sbcl-lift
473 (let ((commit "2594160d6ca3a77d8750110dfa63214256aab852")
477 (version (git-version "1.7.1" revision commit))
482 (url "https://github.com/gwkkwg/lift")
485 (base32 "01xvz9sl5l5lai4h9dabmcjnm659wf5zllaxqbs55lffskp6jwq3"))
486 (file-name (git-file-name "lift" version))
487 (modules '((guix build utils)))
489 ;; Don't keep the bundled website
491 (delete-file-recursively "website")
493 (build-system asdf-build-system/sbcl)
495 ;; The tests require a debugger, but we run with the debugger disabled.
497 (synopsis "LIsp Framework for Testing")
499 "The LIsp Framework for Testing (LIFT) is a unit and system test tool for LISP.
500 Though inspired by SUnit and JUnit, it's built with Lisp in mind. In LIFT,
501 testcases are organized into hierarchical testsuites each of which can have
502 its own fixture. When run, a testcase can succeed, fail, or error. LIFT
503 supports randomized testing, benchmarking, profiling, and reporting.")
504 (home-page "https://github.com/gwkkwg/lift")
505 (license license:expat))))
507 (define-public cl-lift
508 (sbcl-package->cl-source-package sbcl-lift))
510 (define-public ecl-lift
511 (sbcl-package->ecl-package sbcl-lift))
513 (define-public sbcl-lisp-unit
514 (let ((commit "89653a232626b67400bf9a941f9b367da38d3815"))
516 (name "sbcl-lisp-unit")
517 (version (git-version "0.0.0" "1" commit))
522 (url "https://github.com/OdonataResearchLLC/lisp-unit")
526 "0p6gdmgr7p383nvd66c9y9fp2bjk4jx1lpa5p09g43hr9y9pp9ry"))
527 (file-name (git-file-name "lisp-unit" version))))
528 (build-system asdf-build-system/sbcl)
529 (synopsis "Common Lisp Test framework inspired by JUnit to be simple of use")
531 "@command{lisp-unit} is a Common Lisp library that supports unit
532 testing. It is an extension of the library written by Chris Riesbeck.")
533 (home-page "https://github.com/OdonataResearchLLC/lisp-unit")
534 (license license:expat))))
536 (define-public cl-lisp-unit
537 (sbcl-package->cl-source-package sbcl-lisp-unit))
539 (define-public ecl-lisp-unit
540 (sbcl-package->ecl-package sbcl-lisp-unit))
542 (define-public sbcl-lisp-unit2
543 ;; There is a cyclical dependency between symbol-munger and lisp-unit2.
544 ;; See https://github.com/AccelerationNet/symbol-munger/issues/4
545 (let ((commit "fb9721524d1e4e73abb223ee036d74ce14a5505c")
548 (name "sbcl-lisp-unit2")
549 (version (git-version "0.2.0" revision commit))
554 (url "https://github.com/AccelerationNet/lisp-unit2")
556 (file-name (git-file-name name version))
559 "1rsqy8y0jqll6xn9a593848f5wvd5ribv4csry1ly0hmdhfnqzlp"))))
560 (build-system asdf-build-system/sbcl)
562 (list sbcl-alexandria sbcl-cl-interpol sbcl-iterate
564 (synopsis "Test Framework for Common Lisp")
566 "LISP-UNIT2 is a Common Lisp library that supports unit testing in the
567 style of JUnit for Java. It is a new version of the lisp-unit library written
569 (home-page "https://github.com/AccelerationNet/lisp-unit2")
570 (license license:expat))))
572 (define-public cl-lisp-unit2
573 (sbcl-package->cl-source-package sbcl-lisp-unit2))
575 (define-public ecl-lisp-unit2
576 (sbcl-package->ecl-package sbcl-lisp-unit2))
578 (define-public sbcl-nst
579 (let ((commit "6c0990f594abcf5887e8d80f1035e3b60454b61b")
583 (version (git-version "4.1.2" revision commit))
588 (url "https://github.com/jphmrst/cl-nst")
590 (file-name (git-file-name "nst" version))
592 (base32 "1hf3r6pqbnd9vsd1i24qmz928kia72hdgmiafiwb6jw1hmj3r6ga"))))
593 (build-system asdf-build-system/sbcl)
595 (list sbcl-closer-mop sbcl-org-sampler))
596 (home-page "https://github.com/jphmrst/cl-nst")
597 (synopsis "Unit testing for Common Lisp")
599 "NST is a unit/regression testing system for Common Lisp.")
600 (license license:llgpl))))
602 (define-public ecl-nst
603 (sbcl-package->ecl-package sbcl-nst))
605 (define-public cl-nst
606 (sbcl-package->cl-source-package sbcl-nst))
608 (define-public sbcl-parachute
609 (let ((commit "86563473dc23fb1277d35a3ad2c911a6c8e5b0da")
612 (name "sbcl-parachute")
613 (version (git-version "1.1.1" revision commit))
619 (url "https://github.com/Shinmera/parachute")
621 (file-name (git-file-name name version))
624 "026crl465xqh3fnskfd4c1sxa9c33dfy702cf3l5apbjyj1dg20n"))))
625 (build-system asdf-build-system/sbcl)
627 (list sbcl-documentation-utils sbcl-form-fiddle))
628 (synopsis "Extensible and cross-compatible testing framework for Common Lisp")
630 "Parachute is a simple-to-use and extensible testing framework.
631 In Parachute, things are organised as a bunch of named tests within a package.
632 Each test can contain a bunch of test forms that make up its body.")
633 (home-page "https://shinmera.github.io/parachute/")
634 (license license:zlib))))
636 (define-public cl-parachute
637 (sbcl-package->cl-source-package sbcl-parachute))
639 (define-public ecl-parachute
640 (sbcl-package->ecl-package sbcl-parachute))
642 (define-public sbcl-prove
643 (let ((commit "5d71f02795b89e36f34e8c7d50e69b67ec6ca2de")
647 (version (git-version "1.0.0" revision commit))
652 (url "https://github.com/fukamachi/prove")
655 (base32 "0ca6ha3zhmckq3ad9lxm6sbg4i0hg3m81xhan4dkxd3x9898jzpc"))
656 (file-name (git-file-name "prove" version))))
657 (build-system asdf-build-system/sbcl)
659 (list sbcl-alexandria sbcl-cl-colors sbcl-cl-ppcre
661 (synopsis "Yet another unit testing framework for Common Lisp")
663 "This project was originally called @command{cl-test-more}.
664 @command{prove} is yet another unit testing framework for Common Lisp. The
665 advantages of @command{prove} are:
668 @item Various simple functions for testing and informative error messages
669 @item ASDF integration
670 @item Extensible test reporters
671 @item Colorizes the report if it's available (note for SLIME)
672 @item Reports test durations
674 (home-page "https://github.com/fukamachi/prove")
675 (license license:expat))))
677 (define-public cl-prove
678 (sbcl-package->cl-source-package sbcl-prove))
680 (define-public ecl-prove
681 (sbcl-package->ecl-package sbcl-prove))
683 (define-public sbcl-ptester
684 (let ((commit "fe69fde54f4bce00ce577feb918796c293fc7253")
687 (name "sbcl-ptester")
688 (version (git-version "2.1.3" revision commit))
693 (url "http://git.kpe.io/ptester.git")
695 (file-name (git-file-name name version))
697 (base32 "1l0lfl7cdnr2qf4zh38hi4llxg22c49zkm639bdkmvlkzwj3ndwf"))
698 (modules '((guix build utils)))
700 ;; The useless bundled debian folder drags `make' into the closure.
702 (delete-file-recursively "debian")
704 (build-system asdf-build-system/sbcl)
705 (home-page "http://quickdocs.org/ptester/")
706 (synopsis "Portable test harness package")
708 "@command{ptester} is a portable testing framework based on Franz's
710 (license license:llgpl))))
712 (define-public cl-ptester
713 (sbcl-package->cl-source-package sbcl-ptester))
715 (define-public ecl-ptester
716 (sbcl-package->ecl-package sbcl-ptester))
718 (define-public sbcl-rove
726 (url "https://github.com/fukamachi/rove")
727 (commit "f3695db08203bf26f3b861dc22ac0f4257d3ec21")))
728 (file-name (git-file-name name version))
731 "07ala4l2fncxf540fzxj3h5mhi9i4wqllhj0rqk8m2ljl5zbz89q"))))
732 (build-system asdf-build-system/sbcl)
734 (list sbcl-bordeaux-threads sbcl-dissect sbcl-trivial-gray-streams))
735 (home-page "https://github.com/fukamachi/rove")
737 "Yet another common lisp testing library")
739 "Rove is a unit testing framework for Common Lisp applications.
740 This is intended to be a successor of Prove.")
741 (license license:bsd-3)))
743 (define-public cl-rove
744 (sbcl-package->cl-source-package sbcl-rove))
746 (define-public ecl-rove
747 (sbcl-package->ecl-package sbcl-rove))
749 (define-public sbcl-rt
750 (let ((commit "a6a7503a0b47953bc7579c90f02a6dba1f6e4c5a")
754 (version (git-version "1990.12.19" revision commit))
759 (url "http://git.kpe.io/rt.git")
761 (file-name (git-file-name name version))
763 (base32 "13si2rrxaagbr0bkvg6sqicxxpyshabx6ad6byc9n2ik5ysna69b"))
764 (modules '((guix build utils)))
766 ;; The useless bundled debian folder drags `make' into the closure.
768 (delete-file-recursively "debian")
770 (build-system asdf-build-system/sbcl)
771 (synopsis "MIT Regression Tester")
773 "RT provides a framework for writing regression test suites.")
774 (home-page "https://www.cliki.net/rt")
775 (license license:expat))))
778 (sbcl-package->cl-source-package sbcl-rt))
780 (define-public ecl-rt
781 (sbcl-package->ecl-package sbcl-rt))
783 (define-public sbcl-should-test
784 (let ((commit "48facb9f9c07aeceb71fc0c48ce17fd7d54a09d4")
787 (name "sbcl-should-test")
788 (version (git-version "1.0.0" revision commit))
793 (url "https://github.com/vseloved/should-test")
795 (file-name (git-file-name "should-test" version))
797 (base32 "1fqqa7lhf28qg60ji9libkylkcy747x576qpjn1y7c945j2fxmnm"))))
798 (build-system asdf-build-system/sbcl)
800 (list sbcl-cl-ppcre sbcl-local-time sbcl-osicat sbcl-rutils))
801 (home-page "https://github.com/vseloved/should-test")
802 (synopsis "Minimal yet feature-rich Common Lisp test framework")
804 "SHOULD-TEST is a methodology-agnostic and non-opinionated Common Lisp
805 test framework, i.e. it doesn't care what kind of test approach you'd like to
807 (license license:expat))))
809 (define-public cl-should-test
810 (sbcl-package->cl-source-package sbcl-should-test))
812 (define-public ecl-should-test
813 (sbcl-package->ecl-package sbcl-should-test))
815 (define-public sbcl-stefil
816 (let ((commit "0398548ec95dceb50fc2c2c03e5fb0ce49b86c7a")
820 (version (git-version "0.1" revision commit))
825 (url "https://gitlab.common-lisp.net/stefil/stefil.git")
827 (file-name (git-file-name name version))
830 "0bqz64q2szzhf91zyqyssmvrz7da6442rs01808pf3wrdq28bclh"))))
831 (build-system asdf-build-system/sbcl)
833 `(("alexandria" ,sbcl-alexandria)
834 ("iterate" ,sbcl-iterate)
835 ("metabang-bind" ,sbcl-metabang-bind)
836 ("swank" ,sbcl-slime-swank)))
839 (modify-phases %standard-phases
840 (add-after 'unpack 'drop-unnecessary-dependency
842 (substitute* "package.lisp"
843 ((":stefil-system") ""))
845 (home-page "https://common-lisp.net/project/stefil/index-old.shtml")
846 (synopsis "Simple test framework")
848 "Stefil is a simple test framework for Common Lisp, with a focus on
849 interactive development.")
850 (license license:public-domain))))
852 (define-public cl-stefil
853 (sbcl-package->cl-source-package sbcl-stefil))
855 (define-public ecl-stefil
856 (sbcl-package->ecl-package sbcl-stefil))
858 (define-public sbcl-try
859 (let ((commit "a1fffad2ca328b3855f629b633ab1daaeec929c2")
863 (version (git-version "0.0.1" revision commit))
868 (url "https://github.com/melisgl/try")
870 (file-name (git-file-name "cl-try" version))
872 (base32 "03dm2i2y4wiyzz9d25zdxm6gdglnvwali0ylp0rfwpk6wf29sj09"))))
873 (build-system asdf-build-system/sbcl)
875 (list sbcl-cl-ppcre))
877 (list sbcl-alexandria
881 sbcl-trivial-gray-streams))
883 `(;; FIXME: Get tests to work
885 (home-page "https://github.com/melisgl/try")
886 (synopsis "Common Lisp test framework")
888 "@code{Try} is a library for unit testing with equal support for
889 interactive and non-interactive workflows. Tests are functions, and almost
890 everything else is a condition, whose types feature prominently in
892 (license license:expat))))
894 (define-public cl-try
895 (sbcl-package->cl-source-package sbcl-try))
897 (define-public ecl-try
898 (sbcl-package->ecl-package sbcl-try))
900 (define-public sbcl-unit-test
901 (let ((commit "266afaf4ac091fe0e8803bac2ae72d238144e735")
904 (name "sbcl-unit-test")
905 (version (git-version "0.0.0" revision commit))
910 (url "https://github.com/hanshuebner/unit-test")
912 (file-name (git-file-name "unit-test" version))
914 (base32 "11hpksz56iqkv7jw25p2a8r3n9dj922fyarn16d98589g6hdskj9"))))
915 (build-system asdf-build-system/sbcl)
916 (home-page "https://github.com/hanshuebner/unit-test")
917 (synopsis "Unit-testing framework for Common Lisp")
918 (description "This is a unit-testing framework for Common Lisp.")
919 (license license:unlicense))))
921 (define-public ecl-unit-test
922 (sbcl-package->ecl-package sbcl-unit-test))
924 (define-public cl-unit-test
925 (sbcl-package->cl-source-package sbcl-unit-test))
927 (define-public sbcl-xlunit
928 (let ((commit "3805d34b1d8dc77f7e0ee527a2490194292dd0fc")
932 (version (git-version "0.6.3" revision commit))
937 (url "http://git.kpe.io/xlunit.git")
939 (file-name (git-file-name name version))
942 "0argfmp9nghs4sihyj3f8ch9qfib2b7ll07v5m9ziajgzsfl5xw3"))
943 (modules '((guix build utils)))
945 ;; The useless bundled debian folder drags `make' into the closure.
947 (delete-file-recursively "debian")
949 (build-system asdf-build-system/sbcl)
952 (modify-phases %standard-phases
953 (add-after 'unpack 'fix-tests
955 (substitute* "xlunit.asd"
958 (synopsis "Unit testing package for Common Lisp")
960 "The XLUnit package is a toolkit for building test suites. It is based
961 on the XPTest package by Craig Brozensky and the JUnit package by Kent Beck.")
962 (home-page "http://quickdocs.org/xlunit/")
963 (license license:bsd-3))))
965 (define-public cl-xlunit
966 (sbcl-package->cl-source-package sbcl-xlunit))
968 (define-public ecl-xlunit
969 (sbcl-package->ecl-package sbcl-xlunit))