1 ;;; GNU Guix --- Functional package management for GNU
2 ;;; Copyright © 2014, 2015 Eric Bavier <bavier@member.fsf.org>
3 ;;; Copyright © 2016 Danny Milosavljevic <dannym@scratchpost.org>
4 ;;; Copyright © 2016 Ben Woodcroft <donttrustben@gmail.com>
5 ;;; Copyright © 2016 Ricardo Wurmus <rekado@elephly.net>
6 ;;; Copyright © 2016 ng0 <ng0@n0.is>
7 ;;; Copyright © 2016, 2017, 2019 Efraim Flashner <efraim@flashner.co.il>
8 ;;; Copyright © 2016, 2017 Alex Sassmannshausen <alex@pompo.co>
9 ;;; Copyright © 2016, 2017 Marius Bakke <mbakke@fastmail.com>
10 ;;; Copyright © 2017 Leo Famulari <leo@famulari.name>
11 ;;; Copyright © 2017 Christopher Baines <mail@cbaines.net>
12 ;;; Copyright © 2017 Petter <petter@mykolab.ch>
13 ;;; Copyright © 2017, 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
14 ;;; Copyright © 2018 Oleg Pykhalov <go.wigust@gmail.com>
15 ;;; Copyright © 2018 Pierre Neidhardt <mail@ambrevar.xyz>
16 ;;; Copyright © 2018 Kei Kebreau <kkebreau@posteo.net>
18 ;;; This file is part of GNU Guix.
20 ;;; GNU Guix is free software; you can redistribute it and/or modify it
21 ;;; under the terms of the GNU General Public License as published by
22 ;;; the Free Software Foundation; either version 3 of the License, or (at
23 ;;; your option) any later version.
25 ;;; GNU Guix is distributed in the hope that it will be useful, but
26 ;;; WITHOUT ANY WARRANTY; without even the implied warranty of
27 ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
28 ;;; GNU General Public License for more details.
30 ;;; You should have received a copy of the GNU General Public License
31 ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
33 (define-module (gnu packages perl-check)
34 #:use-module (guix licenses)
35 #:use-module (gnu packages)
36 #:use-module (gnu packages valgrind)
37 #:use-module (gnu packages web)
38 #:use-module (guix packages)
39 #:use-module (guix download)
40 #:use-module (guix build-system perl)
41 #:use-module (gnu packages perl))
44 ;;; Please: Try to add new module packages in alphabetic order.
48 (define-public perl-mock-config
50 (name "perl-mock-config")
55 (uri (string-append "mirror://cpan/authors/id/R/RU/RURBAN/Mock-Config-"
58 (base32 "06q0xkg5cwdwafzmb9rkaa305ddv7vli9gpm6n9jnkyaaxbk9f55"))))
59 (build-system perl-build-system)
60 (home-page "https://metacpan.org/release/Mock-Config")
61 (synopsis "Temporarily set Config or XSConfig values")
63 "The @code{Mock::Config} Perl module allows temporarily setting and
64 overriding @code{Config} values, even for the readonly @code{XSConfig}
65 implementation as used in cperl. It does not store the mocked overrides
66 lexically, just dynamically.")
67 (license artistic2.0)))
69 (define-public perl-test2-bundle-extended
71 (name "perl-test2-bundle-extended")
76 (uri (string-append "mirror://cpan/authors/id/E/EX/EXODIST/Test2-Suite-"
80 "0hgd6n29qjh1pwqvbglm2kb852yqshmixqqjhsr2kvvibdr58qpf"))))
81 (build-system perl-build-system)
84 (modify-phases %standard-phases
85 (add-after 'unpack 'set-env
86 (lambda _ (setenv "PERL_USE_UNSAFE_INC" "1") #t)))))
88 `(("perl-importer" ,perl-importer)
89 ("perl-term-table" ,perl-term-table)
90 ("perl-sub-info" ,perl-sub-info)))
91 (home-page "https://metacpan.org/pod/Test2::Bundle::Extended")
92 (synopsis "Full set of tools for Test2::Suite")
93 (description "This package provides a rich set of tools, plugins, bundles,
94 etc built upon the Test2 testing library.")
95 (license perl-license)))
97 (define-public perl-test2-plugin-nowarnings
99 (name "perl-test2-plugin-nowarnings")
104 (uri (string-append "mirror://cpan/authors/id/D/DR/DROLSKY/Test2-Plugin-NoWarnings-"
108 "002qk6qsm0l6r2kaxywvc38w0yf0mlavgywq8li076pn6kcw3242"))))
109 (build-system perl-build-system)
111 `(("perl-test2-bundle-extended" ,perl-test2-bundle-extended)))
112 (home-page "https://metacpan.org/release/Test2-Plugin-NoWarnings")
113 (synopsis "Fail if tests warn")
114 (description "Loading this plugin causes your tests to fail if there any
115 warnings while they run. Each warning generates a new failing test and the
116 warning content is outputted via diag.")
117 (license perl-license)))
119 (define-public perl-test-base
121 (name "perl-test-base")
126 (uri (string-append "mirror://cpan/authors/id/I/IN/INGY/"
127 "Test-Base-" version ".tar.gz"))
130 "056hibgg3i2b89mwr76vyxi6ayb3hqjqcwicvn3s5lximsma3517"))))
131 (build-system perl-build-system)
133 `(("perl-algorithm-diff" ,perl-algorithm-diff)
134 ("perl-text-diff" ,perl-text-diff)))
136 `(("perl-spiffy" ,perl-spiffy)
137 ("perl-test-deep" ,perl-test-deep)))
138 (home-page "https://metacpan.org/release/Test-Base")
139 (synopsis "Data-driven testing framework for Perl")
140 (description "Test::Base gives a way to trivially write your own test
141 framework base class. It concentrates on offering reusable data driven
142 patterns, so that you can write tests with a minimum of code.")
143 (license perl-license)))
145 (define-public perl-test-class
147 (name "perl-test-class")
153 "https://cpan.metacpan.org/authors/id/E/ET/ETHER/Test-Class-"
158 "0l0kk5jvxjkic2jkf1r7v41irb344aasnzr3f5ygjgxgiknm9489"))))
159 (build-system perl-build-system)
161 `(("perl-test-exception" ,perl-test-exception)))
163 `(("perl-module-runtime" ,perl-module-runtime)
164 ("perl-mro-compat" ,perl-mro-compat)
165 ("perl-try-tiny" ,perl-try-tiny)))
166 (home-page "https://metacpan.org/release/Test-Class")
167 (synopsis "Easily create test classes in an xUnit/JUnit style")
168 (description "@code{Test::Class} provides a simple way of creating classes
169 and objects to test your code in an xUnit style.
171 Built using @code{Test::Builder}, it was designed to work with other
172 @code{Test::Builder} based modules (@code{Test::More},
173 @code{Test::Differences}, @code{Test::Exception}, etc.).")
174 (license perl-license)))
176 (define-public perl-test-class-most
178 (name "perl-test-class-most")
184 "mirror://cpan/authors/id/O/OV/OVID/Test-Class-Most-"
189 "1zvx9hil0mg0pnb8xfa4m0xgjpvh8s5gnbyprq3xwpdsdgcdwk33"))))
190 (build-system perl-build-system)
192 `(("perl-module-build" ,perl-module-build)))
194 `(("perl-test-class" ,perl-test-class)
195 ("perl-test-most" ,perl-test-most)
196 ("perl-module-runtime" ,perl-module-runtime)
197 ("perl-try-tiny" ,perl-try-tiny)
198 ("perl-mro-compat" ,perl-mro-compat)))
199 (home-page "https://metacpan.org/release/Test-Class-Most")
200 (synopsis "Test classes the easy way")
201 (description "@code{Test::Class::Most} provides some more convenience when
202 using @code{Test::Class}.")
203 (license perl-license)))
205 (define-public perl-test-cleannamespaces
207 (name "perl-test-cleannamespaces")
212 (uri (string-append "mirror://cpan/authors/id/E/ET/ETHER/"
213 "Test-CleanNamespaces-" version ".tar.gz"))
215 (base32 "0yijspncqgmbkkxrh66xx1pliajar05yqhzq6m4nb6p8x1lmb39k"))))
216 (build-system perl-build-system)
218 `(("perl-file-pushd" ,perl-file-pushd)
219 ("perl-test-requires" ,perl-test-requires)
220 ("perl-test-deep" ,perl-test-deep)
221 ("perl-test-warnings" ,perl-test-warnings)
222 ("perl-test-tester" ,perl-test-tester)
223 ("perl-test-needs" ,perl-test-needs)))
225 `(("perl-namespace-clean" ,perl-namespace-clean)
226 ("perl-package-stash" ,perl-package-stash)
227 ("perl-sub-identify" ,perl-sub-identify)
228 ("perl-sub-exporter" ,perl-sub-exporter)
229 ("perl-file-find-rule" ,perl-file-find-rule)
230 ("perl-file-find-rule-perl" ,perl-file-find-rule-perl)))
231 (home-page "https://metacpan.org/release/Test-CleanNamespaces")
232 (synopsis "Check for uncleaned imports")
233 (description "This module lets you check your module's namespaces for
234 imported functions you might have forgotten to remove with
235 namespace::autoclean or namespace::clean and are therefore available to be
236 called as methods, which usually isn't want you want.")
237 (license perl-license)))
239 (define-public perl-test-command
241 (name "perl-test-command")
246 "mirror://cpan/authors/id/D/DA/DANBOO/Test-Command-"
250 "0cwm3c4d49mdrbm6vgh78b3x8mk730l0zg8i7xb9z8bkx9pzr8r8"))))
251 (build-system perl-build-system)
253 `(("perl-module-build" ,perl-module-build)))
254 (home-page "https://github.com/danboo/perl-test-command")
255 (synopsis "Test routines for external commands")
257 "This module provides routines for testing the exit status, standard
258 output and standard error of external commands.")
259 (license perl-license)))
261 (define-public perl-test-cpan-meta
263 (name "perl-test-cpan-meta")
269 "mirror://cpan/authors/id/B/BA/BARBIE/Test-CPAN-Meta-"
274 "1dcdbbdwdyhpldkhjzc9rvzlmb5jbil6fwh2x07nsfdwysf4ynzm"))))
275 (build-system perl-build-system)
277 `(("perl-test-cpan-meta-json" ,perl-test-cpan-meta-json)
278 ("perl-test-pod" ,perl-test-pod)
279 ("perl-test-pod-coverage" ,perl-test-pod-coverage)))
281 "https://metacpan.org/release/Test-CPAN-Meta")
282 (synopsis "Validate your CPAN META.yml files")
284 "This module was written to ensure that a META.yml file meets the
286 (license artistic2.0)))
288 (define-public perl-test-cpan-meta-json
290 (name "perl-test-cpan-meta-json")
296 "mirror://cpan/authors/id/B/BA/BARBIE/Test-CPAN-Meta-JSON-"
301 "1jg9ka50ixwq083wd4k12rhdjq87w0ihb34gd8jjn7gvvyd51b37"))))
302 (build-system perl-build-system)
304 `(("perl-test-pod" ,perl-test-pod)
305 ("perl-test-pod-coverage" ,perl-test-pod-coverage)))
307 `(("perl-json" ,perl-json)))
309 "https://metacpan.org/release/Test-CPAN-Meta-JSON")
310 (synopsis "Validate your CPAN META.json files")
312 "This module was written to ensure that a META.json file meets the
314 (license artistic2.0)))
316 (define-public perl-test-deep
318 (name "perl-test-deep")
322 (uri (string-append "mirror://cpan/authors/id/R/RJ/RJBS/"
323 "Test-Deep-" version ".tar.gz"))
326 "1kdy06r0yg7zwarqglc9163vbfb0sfc4s6ld4pw5q7i9f7mghzi0"))))
327 (build-system perl-build-system)
328 (inputs `(("perl-test-tester" ,perl-test-tester)
329 ("perl-test-nowarnings" ,perl-test-nowarnings)))
330 (synopsis "Flexible deep comparison for the Test::Builder framework")
332 "Test::Deep compares two structures by going through each level, ensuring
333 that the values match, that arrays and hashes have the same elements and that
334 references are blessed into the correct class. It also handles circular data
335 structures without getting caught in an infinite loop.")
336 (home-page "https://metacpan.org/release/Test-Deep")
337 (license gpl1+))) ; or "Artistic License"
339 (define-public perl-test-differences
341 (name "perl-test-differences")
346 (uri (string-append "mirror://cpan/authors/id/D/DC/DCANTRELL/"
347 "Test-Differences-" version ".tar.gz"))
349 (base32 "1nkqr3m4lbzw7fkkzah42aiqlhxapamk6kw7hj90cjwkifsbp3f8"))))
350 (build-system perl-build-system)
352 `(("perl-module-build" ,perl-module-build)))
354 `(("perl-text-diff" ,perl-text-diff)
355 ("perl-capture-tiny" ,perl-capture-tiny)))
356 (home-page "https://metacpan.org/release/Test-Differences")
357 (synopsis "Test strings and data structures and show differences")
358 (description "This module exports three test functions and four diff-style
360 ;; See LICENSE section of Test/Differences.pm, which reads "... GNU public
361 ;; license, any version, ..."
364 (define-public perl-test-directory
366 (name "perl-test-directory")
371 (uri (string-append "mirror://cpan/authors/id/S/SA/SANBEG/"
372 "Test-Directory-" version ".tar.gz"))
375 "1ncql08cizhicbxwd753b4czns8nlcnlw0zfjcfrbdd41x4j6hqr"))))
376 (build-system perl-build-system)
377 (native-inputs `(("perl-test-exception" ,perl-test-exception)))
378 (home-page "https://metacpan.org/release/Test-Directory")
379 (synopsis "Perl extension for maintaining test directories")
380 (description "Testing code can involve making sure that files are created
381 and deleted as expected. Doing this manually can be error prone, as it's easy
382 to forget a file, or miss that some unexpected file was added. This module
383 simplifies maintaining test directories by tracking their status as they are
384 modified or tested with this API, making it simple to test both individual
385 files, as well as to verify that there are no missing or unknown files.")
386 (license perl-license)))
388 (define-public perl-test-distmanifest
390 (name "perl-test-distmanifest")
396 "mirror://cpan/authors/id/E/ET/ETHER/Test-DistManifest-"
399 (base32 "1ifpff5simjslabwy7ac6kdylv4c0b5b39fgpwf9ha16yh6w49ix"))))
400 (build-system perl-build-system)
402 `(("perl-module-build" ,perl-module-build)))
404 `(("perl-module-manifest" ,perl-module-manifest)))
405 (home-page "https://github.com/jawnsy/Test-DistManifest")
406 (synopsis "Author test that validates a package @file{MANIFEST}")
408 "@code{Test::DistManifest} provides a simple method of testing that a
409 @file{MANIFEST} file matches its distribution.")
410 (license perl-license)))
412 (define-public perl-test-eol
414 (name "perl-test-eol")
420 "mirror://cpan/authors/id/E/ET/ETHER/Test-EOL-"
425 "0l3bxpsw0x7j9nclizcp53mnf9wny25dmg2iglfhzgnk0xfpwzwf"))))
426 (build-system perl-build-system)
428 "https://metacpan.org/release/Test-EOL")
430 "Check the correct line endings in your project")
432 "@code{Test::EOL} lets you check for the presence of trailing whitespace
433 and/or windows line endings in your perl code.")
434 (license perl-license)))
436 (define-public perl-test-exception
438 (name "perl-test-exception")
443 (uri (string-append "mirror://cpan/authors/id/E/EX/EXODIST/"
444 "Test-Exception-" version ".tar.gz"))
447 "0cxm7s4bg0xpxa6l6996a6iq3brr4j7p4hssnkc6dxv4fzq16sqm"))))
448 (build-system perl-build-system)
450 `(("perl-module-build" ,perl-module-build)))
452 `(("perl-sub-uplevel" ,perl-sub-uplevel)))
453 (home-page "https://metacpan.org/release/Test-Exception")
454 (synopsis "Test exception based code")
455 (description "This module provides a few convenience methods for testing
456 exception based code. It is built with Test::Builder and plays happily with
457 Test::More and friends.")
458 (license perl-license)))
460 (define-public perl-test-failwarnings
462 (name "perl-test-failwarnings")
468 "mirror://cpan/authors/id/D/DA/DAGOLDEN/Test-FailWarnings-"
472 "0vx9chcp5x8m0chq574p9fnfckh5gl94j7904rh9v17n568fyd6s"))))
473 (build-system perl-build-system)
475 `(("perl-capture-tiny" ,perl-capture-tiny)))
476 (home-page "https://metacpan.org/release/Test-FailWarnings")
477 (synopsis "Add test failures if warnings are caught")
479 "Test::FailWarnings adds test failures if warnings are caught.")
482 (define-public perl-test-fatal
484 (name "perl-test-fatal")
489 (uri (string-append "mirror://cpan/authors/id/R/RJ/RJBS/"
490 "Test-Fatal-" version ".tar.gz"))
493 "1c6bs68mss4q7cyapkv2c0jn66i21050p0faxf3s3417gdffzp5w"))))
494 (build-system perl-build-system)
495 (propagated-inputs `(("perl-try-tiny" ,perl-try-tiny)))
496 (home-page "https://metacpan.org/release/Test-Fatal")
497 (synopsis "Simple helpers for testing code with exceptions")
498 (description "Test::Fatal is an alternative to the popular
499 Test::Exception. It does much less, but should allow greater flexibility in
500 testing exception-throwing code with about the same amount of typing.")
501 (license perl-license)))
503 (define-public perl-test-file-sharedir-dist
505 (name "perl-test-file-sharedir-dist")
510 (uri (string-append "mirror://cpan/authors/id/K/KE/KENTNL/"
511 "Test-File-ShareDir-" version ".tar.gz"))
514 "1bbs6cx69wcinq77gif4i4pmrj8a7lwb92sgvvxzrwmjnk5lfdmk"))))
515 (build-system perl-build-system)
517 `(("perl-class-tiny" ,perl-class-tiny)
518 ("perl-file-copy-recursive" ,perl-file-copy-recursive)
519 ("perl-file-sharedir" ,perl-file-sharedir)
520 ("perl-path-tiny" ,perl-path-tiny)
521 ("perl-scope-guard" ,perl-scope-guard)
522 ("perl-test-fatal" ,perl-test-fatal)))
523 (home-page "https://github.com/kentnl/Test-File-ShareDir")
524 (synopsis "Dist oriented ShareDir tester")
525 (description "This module creates a Fake ShareDir for your modules
527 (license perl-license)))
529 (define-public perl-test-filename
531 (name "perl-test-filename")
537 "mirror://cpan/authors/id/D/DA/DAGOLDEN/Test-Filename-"
541 "1gpw4mjw68gnby8s4cifvbz6g2923xsc189jkw9d27i8qv20qiba"))))
542 (build-system perl-build-system)
544 `(("perl-path-tiny" ,perl-path-tiny)))
545 (home-page "https://metacpan.org/release/Test-Filename")
546 (synopsis "Portable filename comparison")
547 (description "Test::Filename provides functions to convert all path
548 separators automatically.")
551 (define-public perl-test-files
553 (name "perl-test-files")
559 "mirror://cpan/authors/id/P/PH/PHILCROW/Test-Files-"
564 "1zn33yigznq7i1jr4yjr4lxvc6bn7znkbqdzj7slhc146pqapkln"))))
565 (build-system perl-build-system)
567 `(("perl-algorithm-diff" ,perl-algorithm-diff)
568 ("perl-text-diff" ,perl-text-diff)))
569 (home-page "https://metacpan.org/release/Test-Files")
570 (synopsis "Ease software testing with files and directories")
571 (description "This library provides functions to enable testing of files
572 and directories. For instance, the @code{file_ok} helper can test whether the
573 contents of a file is equal to a particular string.")
574 (license perl-license)))
576 (define-public perl-test-harness
578 (name "perl-test-harness")
583 (uri (string-append "mirror://cpan/authors/id/L/LE/LEONT/"
584 "Test-Harness-" version ".tar.gz"))
586 (base32 "0lwfaamhpqia0ks4pcci83xbqz6jhng7acv95qk6wbd8zr70vn8g"))))
587 (build-system perl-build-system)
590 (modify-phases %standard-phases
591 (add-before 'check 'patch-test
592 (lambda* (#:key inputs #:allow-other-keys)
593 ;; This test looks for "#!/usr/bin/perl" in some source.
594 ;; Patch what the test looks for.
595 (substitute* "t/source.t"
597 (string-append "#!" (assoc-ref inputs "perl")
600 (home-page "https://metacpan.org/release/Test-Harness")
601 (synopsis "Run Perl standard test scripts with statistics")
602 (description "Simple test harness which allows tests to be run and results
603 automatically aggregated and output to STDOUT.")
604 (license perl-license)))
606 (define-public perl-test-leaktrace
608 (name "perl-test-leaktrace")
613 (uri (string-append "mirror://cpan/authors/id/L/LE/LEEJO/"
614 "Test-LeakTrace-" version ".tar.gz"))
617 "00z4hcjra5nk700f3fgpy8fs036d7ry7glpn8g3wh7jzj7nrw22z"))))
618 (build-system perl-build-system)
619 (home-page "https://metacpan.org/release/Test-LeakTrace")
620 (synopsis "Traces memory leaks in Perl")
621 (description "Test::LeakTrace provides several functions that trace memory
622 leaks. This module scans arenas, the memory allocation system, so it can
623 detect any leaked SVs in given blocks.")
624 (license perl-license)))
626 (define-public perl-test-longstring
628 (name "perl-test-longstring")
633 (uri (string-append "mirror://cpan/authors/id/R/RG/RGARCIA/"
634 "Test-LongString-" version ".tar.gz"))
637 "0kwp7rfr1i2amz4ckigkv13ah7jr30q6l5k4wk0vxl84myg39i5b"))))
638 (build-system perl-build-system)
639 (home-page "https://metacpan.org/release/Test-LongString")
640 (synopsis "Tests strings for equality, with more helpful failures")
641 (description "This module provides some drop-in replacements for the
642 string comparison functions of Test::More, but which are more suitable when
643 you test against long strings.")
644 (license perl-license)))
646 (define-public perl-test-manifest
648 (name "perl-test-manifest")
652 (uri (string-append "mirror://cpan/authors/id/B/BD/BDFOY/"
653 "Test-Manifest-" version ".tar.gz"))
656 "1n9jscnni24sbp4v5gjlcy3iknfwvmy0731xwvk1c3jq3kbslym4"))))
657 (build-system perl-build-system)
659 `(("perl-test-pod" ,perl-test-pod)
660 ("perl-test-pod-coverage" ,perl-test-pod-coverage)))
661 (home-page "https://metacpan.org/release/Test-Manifest")
662 (synopsis "Interact with a t/test_manifest file")
663 (description "@code{Test::Manifest} overrides the default test file order. Instead of
664 running all of the t/*.t files in ASCII-betical order, it looks in the t/test_manifest
665 file to find out which tests you want to run and the order in which you want to run them.
666 It constructs the right value for the build system to do the right thing.")
667 (license perl-license)))
669 (define-public perl-test-memory-cycle
671 (name "perl-test-memory-cycle")
677 "mirror://cpan/authors/id/P/PE/PETDANCE/Test-Memory-Cycle-"
682 "00ijmgx1r3cxrcs1qa9rb2s4gbm3nsawd90drda89kb4r7yxslwx"))))
683 (build-system perl-build-system)
685 `(("perl-padwalker" ,perl-padwalker)))
687 `(("perl-devel-cycle" ,perl-devel-cycle)))
689 "https://metacpan.org/release/Test-Memory-Cycle")
691 "Verifies code hasn't left circular references")
693 "@code{Test::Memory::Cycle} is built on top of @code{Devel::Cycle} to
694 give you an easy way to check for these circular references.
697 use Test::Memory::Cycle;
699 my $object = new MyObject;
700 # Do stuff with the object.
701 memory_cycle_ok( $object );
703 (license artistic2.0)))
705 (define-public perl-test-mockmodule
707 (name "perl-test-mockmodule")
712 (uri (string-append "mirror://cpan/authors/id/G/GF/GFRANKS/"
713 "Test-MockModule-v" version ".tar.gz"))
715 (base32 "0pggwrlqj6k44qayhbpjqkzry1r626iy2vf30zlf2jdhbjbvlycz"))))
716 (build-system perl-build-system)
718 `(("perl-module-build" ,perl-module-build)
720 ("perl-test-pod" ,perl-test-pod)
721 ("perl-test-pod-coverage" ,perl-test-pod-coverage)
722 ("perl-test-warnings" ,perl-test-warnings)))
724 `(("perl-super" ,perl-super)))
725 (home-page "https://metacpan.org/release/Test-MockModule")
726 (synopsis "Override subroutines in a module for unit testing")
728 "@code{Test::MockModule} lets you temporarily redefine subroutines in other
729 packages for the purposes of unit testing. A @code{Test::MockModule} object is
730 set up to mock subroutines for a given module. The mocked object remembers the
731 original subroutine so it can be easily restored. This happens automatically
732 when all @code{MockModule} objects for the given module go out of scope, or when
733 you @code{unmock()} the subroutine.")
736 (define-public perl-test-mockobject
738 (name "perl-test-mockobject")
739 (version "1.20180705")
743 (uri (string-append "mirror://cpan/authors/id/C/CH/CHROMATIC/"
744 "Test-MockObject-" version ".tar.gz"))
746 (base32 "06250ayzzd90vbvkpxwr9d3nlbbngl1b9nk2qk0ma4aibn6ha5j5"))))
747 (build-system perl-build-system)
749 `(("perl-cgi" ,perl-cgi)
750 ("perl-test-exception" ,perl-test-exception)
751 ("perl-test-warn" ,perl-test-warn)))
753 `(("perl-test-exception" ,perl-test-exception)
754 ("perl-test-warn" ,perl-test-warn)
755 ("perl-universal-can" ,perl-universal-can)
756 ("perl-universal-isa" ,perl-universal-isa)))
757 (home-page "https://metacpan.org/release/Test-MockObject")
758 (synopsis "Emulate troublesome interfaces in Perl")
759 (description "Test::MockObject allows you to create objects that conform
760 to particular interfaces with very little code. You don't have to reimplement
761 the behavior, just the input and the output.")
762 (license perl-license)))
764 (define-public perl-test-mocktime
766 (name "perl-test-mocktime")
771 (uri (string-append "mirror://cpan/authors/id/D/DD/DDICK/"
772 "Test-MockTime-" version ".tar.gz"))
774 (base32 "1y820qsq7yf7r6smy5c6f0mpf2cis2q24vwmpim1svv0n8cf2qrk"))))
776 `(("perl-time-piece" ,perl-time-piece)))
777 (build-system perl-build-system)
778 (home-page "https://metacpan.org/release/Test-MockTime")
779 (synopsis "Replaces actual time with simulated time")
780 (description "This module was created to enable test suites to test code
781 at specific points in time. Specifically it overrides localtime, gmtime and
782 time at compile time and then relies on the user supplying a mock time via
783 set_relative_time, set_absolute_time or set_fixed_time to alter future calls
784 to gmtime,time or localtime.")
785 (license perl-license)))
787 (define-public perl-test-more-utf8
789 (name "perl-test-more-utf8")
795 "mirror://cpan/authors/id/M/MO/MONS/Test-More-UTF8-"
799 "016fs77lmw8xxrcnapvp6wq4hjwgsdfi3l9ylpxgxkcpdarw9wdr"))))
800 (build-system perl-build-system)
801 (home-page "https://metacpan.org/release/Test-More-UTF8")
802 (synopsis "Enhance Test::More for UTF8-based projects")
803 (description "@code{Test::More::UTF8} is a simple extension for the widely
804 used @code{Test::More} module. By default, it will do a @code{binmode
805 @code{:utf8}} on all of @code{Test::Builder}'s output handles thus enabling the
806 easy use flagged strings without warnings like \"Wide character in print
808 (license perl-license)))
810 (define-public perl-test-most
812 (name "perl-test-most")
817 (uri (string-append "mirror://cpan/authors/id/O/OV/OVID/"
818 "Test-Most-" version ".tar.gz"))
821 "0zv5dyzq55r28plffibcr7wd00abap0h2zh4s4p8snaiszsad5wq"))))
822 (build-system perl-build-system)
824 `(("perl-test-differences" ,perl-test-differences)
825 ("perl-test-warn" ,perl-test-warn)
826 ("perl-exception-class" ,perl-exception-class)
827 ("perl-test-deep" ,perl-test-deep)
828 ("perl-test-exception" ,perl-test-exception)))
829 (home-page "https://metacpan.org/release/Test-Most")
830 (synopsis "Most commonly needed test functions and features")
831 (description "This module provides the most commonly used testing
832 functions, along with automatically turning on strict and warning and gives a
833 bit more fine-grained control over test suites.")
834 (license perl-license)))
836 (define-public perl-test-needs
838 (name "perl-test-needs")
844 "mirror://cpan/authors/id/H/HA/HAARG/Test-Needs-"
849 "16gkgpmr9hvkz382iaqd3500269lk2d44fqaw3dsrvc66nc36kss"))))
850 (build-system perl-build-system)
852 "https://metacpan.org/release/Test-Needs")
854 "Skip tests when modules not available")
855 (description "@code{Test::Needs} allows you to skip test scripts if
856 modules are not available. The requested modules will be loaded, and
857 optionally have their versions checked. If the module is missing, the test
858 script will be skipped. Modules that are found but fail to compile will exit
859 with an error rather than skip.
861 If used in a subtest, the remainder of the subtest will be skipped.")
862 (license perl-license)))
864 (define-public perl-test-notabs
866 (name "perl-test-notabs")
872 "mirror://cpan/authors/id/E/ET/ETHER/Test-NoTabs-"
877 "0c306p9qdpa2ycii3c50hml23mwy6bjxpry126g1dw11hyiwcxgv"))))
878 (build-system perl-build-system)
880 "https://metacpan.org/release/Test-NoTabs")
882 "Check the presence of tabs in your project")
884 "@code{Test::NoTabs} lets you check the presence of tabs in your perl
886 (license perl-license)))
888 (define-public perl-test-nowarnings
890 (name "perl-test-nowarnings")
894 (uri (string-append "mirror://cpan/authors/id/A/AD/ADAMK/"
895 "Test-NoWarnings-" version ".tar.gz"))
898 "0v385ch0hzz9naqwdw2az3zdqi15gka76pmiwlgsy6diiijmg2k3"))))
899 (build-system perl-build-system)
900 (inputs `(("perl-test-tester" ,perl-test-tester)))
901 (synopsis "Ensure no warnings are produced while testing")
903 "This modules causes any warnings during testing to be captured and
904 stored. It automatically adds an extra test that will run when your script
905 ends to check that there were no warnings. If there were any warnings, the
906 test will fail and output diagnostics of where, when and what the warning was,
907 including a stack trace of what was going on when it occurred.")
908 (home-page "https://metacpan.org/release/Test-NoWarnings")
911 (define-public perl-test-number-delta
913 (name "perl-test-number-delta")
917 (uri (string-append "mirror://cpan/authors/id/D/DA/DAGOLDEN/"
918 "Test-Number-Delta-" version ".tar.gz"))
921 "0jfhzhpzkc23mkrlbnv085ykpfncmy99hvppbzjnrpvgks8k0m2k"))))
922 (build-system perl-build-system)
923 (home-page "https://metacpan.org/release/Test-Number-Delta")
925 "Compare the difference between numbers against a given tolerance")
927 "At some point or another, most programmers find they need to compare
928 floating-point numbers for equality. The typical idiom is to test if the
929 absolute value of the difference of the numbers is within a desired tolerance,
930 usually called epsilon. This module provides such a function for use with
934 (define-public perl-test-output
936 (name "perl-test-output")
940 (uri (string-append "mirror://cpan/authors/id/B/BD/BDFOY/"
941 "Test-Output-" version ".tar.gz"))
944 "193y1xjvgc1p9pdgdwps2127knvpz9wc1xh6gmr74y3ihmqz7f7q"))))
945 (build-system perl-build-system)
947 `(("perl-capture-tiny" ,perl-capture-tiny)
948 ("perl-test-tester" ,perl-test-tester)
949 ("perl-sub-exporter" ,perl-sub-exporter)))
950 (synopsis "Utilities to test STDOUT and STDERR messages")
952 "Test::Output provides a simple interface for testing output sent to
953 STDOUT or STDERR. A number of different utilities are included to try and be
954 as flexible as possible to the tester.")
955 (home-page "https://metacpan.org/release/Test-Output")
956 (license perl-license)))
958 (define-public perl-test-pod
960 (name "perl-test-pod")
965 (uri (string-append "mirror://cpan/authors/id/E/ET/ETHER/"
966 "Test-Pod-" version ".tar.gz"))
969 "1z75x1pxwp8ajwq9iazlg2c3wd7rdlim08yclpdg32qnc36dpa30"))))
970 (build-system perl-build-system)
971 (native-inputs `(("perl-module-build" ,perl-module-build)))
972 (home-page "https://metacpan.org/release/Test-Pod")
973 (synopsis "Check for POD errors in files")
974 (description "Check POD files for errors or warnings in a test file, using
975 Pod::Simple to do the heavy lifting.")
976 (license perl-license)))
978 (define-public perl-test-pod-coverage
980 (name "perl-test-pod-coverage")
985 (uri (string-append "mirror://cpan/authors/id/N/NE/NEILB/"
986 "Test-Pod-Coverage-" version ".tar.gz"))
989 "1m203mhgfilz7iqc8mxaw4lw02fz391mni3n25sfx7nryylwrja8"))))
990 (build-system perl-build-system)
992 `(("perl-pod-coverage" ,perl-pod-coverage)))
993 (home-page "https://metacpan.org/release/Test-Pod-Coverage")
994 (synopsis "Check for pod coverage")
995 (description "This module adds a test to your Perl distribution which
996 checks for pod coverage of all appropriate files.")
997 (license artistic2.0)))
999 (define-public perl-test-requires
1001 (name "perl-test-requires")
1006 (uri (string-append "mirror://cpan/authors/id/T/TO/TOKUHIROM/"
1007 "Test-Requires-" version ".tar.gz"))
1010 "1d9f481lj12cw1ciil46xq9nq16p6a90nm7yrsalpf8asn8s6s17"))))
1011 (build-system perl-build-system)
1012 (home-page "https://metacpan.org/release/Test-Requires")
1013 (synopsis "Checks to see if the module can be loaded")
1014 (description "Test::Requires checks to see if the module can be loaded.
1015 If this fails, then rather than failing tests this skips all tests.")
1016 (license perl-license)))
1018 (define-public perl-test-requiresinternet
1020 (name "perl-test-requiresinternet")
1026 "mirror://cpan/authors/id/M/MA/MALLEN/Test-RequiresInternet-"
1031 "0gl33vpj9bb78pzyijp884b66sbw6jkh1ci0xki8rmf03hmb79xv"))))
1032 (build-system perl-build-system)
1033 (home-page "https://metacpan.org/release/Test-RequiresInternet")
1034 (synopsis "Easily test network connectivity when running tests")
1036 "This Perl module is intended to easily test network connectivity to
1037 non-local Internet resources before functional tests begin. If the sockets
1038 cannot connect to the specified hosts and ports, the exception is caught and
1039 reported, and the tests skipped.")
1040 (license perl-license)))
1042 (define-public perl-test-roo
1044 (name "perl-test-roo")
1050 "mirror://cpan/authors/id/D/DA/DAGOLDEN/Test-Roo-"
1054 "1mnym49j1lj7gzylma5b6nr4vp75rmgz2v71904v01xmxhy9l4i1"))))
1055 (build-system perl-build-system)
1057 `(("perl-capture-tiny" ,perl-capture-tiny)))
1059 `(("perl-indirect" ,perl-indirect)
1060 ("perl-moo" ,perl-moo)
1061 ("perl-moox-types-mooselike" ,perl-moox-types-mooselike)
1062 ("perl-multidimensional" ,perl-multidimensional)
1063 ("perl-strictures" ,perl-strictures)
1064 ("perl-sub-install" ,perl-sub-install)))
1065 (home-page "https://metacpan.org/release/Test-Roo")
1066 (synopsis "Composable, reusable tests with roles and Moo")
1067 (description "Test::Roo provides composable, reusable tests with roles.")
1070 (define-public perl-test-runvalgrind
1072 (name "perl-test-runvalgrind")
1078 "mirror://cpan/authors/id/S/SH/SHLOMIF/Test-RunValgrind-"
1083 "0cfndkn2k9pcx290wcblwmrwh1ybs0grxjlsrp8fbqqbmmjpb53h"))))
1084 (build-system perl-build-system)
1086 `(("perl-module-build" ,perl-module-build)))
1088 `(("perl-path-tiny" ,perl-path-tiny)
1089 ("perl-test-trap" ,perl-test-trap)
1090 ("valgrind" ,valgrind)))
1091 (home-page "https://metacpan.org/release/Test-RunValgrind")
1092 (synopsis "Tests that an external program is valgrind-clean")
1093 (description "Test::RunValgind checks weather Valgrind does not detect
1094 errors (such as memory leaks) in an arbitrary binary executable.")
1097 (define-public perl-test-script
1099 (name "perl-test-script")
1103 (uri (string-append "mirror://cpan/authors/id/P/PL/PLICEASE/"
1104 "Test-Script-" version ".tar.gz"))
1107 "1msavbi6przkxq3npm90nv925v58iym9jrk677wn46x19whwzwzm"))))
1108 (build-system perl-build-system)
1110 `(("perl-capture-tiny" ,perl-capture-tiny)
1111 ("perl-probe-perl" ,perl-probe-perl)))
1112 (synopsis "Basic cross-platform tests for scripts")
1114 "The intent of the Test::Script module is to provide a series of basic
1115 tests for 80% of the testing you will need to do for scripts in the script (or
1116 bin as is also commonly used) paths of your Perl distribution.")
1117 (home-page "https://metacpan.org/release/Test-Script")
1118 (license perl-license)))
1120 (define-public perl-test-sharedfork
1122 (name "perl-test-sharedfork")
1127 (uri (string-append "mirror://cpan/authors/id/E/EX/EXODIST/"
1128 "Test-SharedFork-" version ".tar.gz"))
1130 (base32 "17y52j20k1bs9dgf4n6rhh9dn4cfxxbnfn2cfs7pb00fc5jyhci9"))))
1131 (build-system perl-build-system)
1133 `(("perl-test-requires" ,perl-test-requires)))
1134 (home-page "https://metacpan.org/release/Test-SharedFork")
1135 (synopsis "Fork test in Perl")
1136 (description "Test::SharedFork is a utility module for Test::Builder. It
1137 makes fork(2) safe to use in test cases.")
1138 (license perl-license)))
1140 (define-public perl-test-simple
1142 (name "perl-test-simple")
1143 (version "1.302162")
1146 (uri (string-append "mirror://cpan/authors/id/E/EX/EXODIST/"
1147 "Test-Simple-" version ".tar.gz"))
1150 "1i0zsgp5ypygsfbl5gdsgnzlqv57bx69yl6sh440cpkk7my1k83k"))))
1151 (build-system perl-build-system)
1152 (synopsis "Basic utilities for writing tests")
1154 "Test::Simple contains basic utilities for writing tests.")
1155 (home-page "https://metacpan.org/release/Test-Simple")
1156 (license perl-license)))
1158 (define-public perl-test-taint
1160 (name "perl-test-taint")
1165 (uri (string-append "mirror://cpan/authors/id/P/PE/PETDANCE/Test-Taint-"
1169 "01rip5d7gdr1c7lq6yczzkqfd0500nfa977ryigylj6jj75526vj"))))
1170 (build-system perl-build-system)
1171 (home-page "https://metacpan.org/release/Test-Taint")
1172 (synopsis "Checks for taintedness of variables")
1173 (description "Tainted data is data that comes from an unsafe source, such
1174 as the command line, or, in the case of web apps, any @code{GET} or
1175 @code{POST} transactions. Read the @code{perlsec} man page for details on why
1176 tainted data is bad, and how to untaint the data.
1178 When you're writing unit tests for code that deals with tainted data, you'll
1179 want to have a way to provide tainted data for your routines to handle, and
1180 easy ways to check and report on the taintedness of your data, in standard
1181 @code{Test::More} style.")
1182 (license perl-license)))
1184 (define-public perl-test-tester
1186 (name "perl-test-tester")
1190 (uri (string-append "mirror://cpan/authors/id/F/FD/FDALY/"
1191 "Test-Tester-" version ".tar.gz"))
1194 "0m9n28z09kq455r5nydj1bnr85lvmbfpcbjdkjfbpmfb5xgciiyk"))))
1195 (build-system perl-build-system)
1196 (synopsis "Simplify running Test::Builder tests")
1198 "Test::Tester allows testing of test modules based on Test::Builder with
1199 a minimum of effort.")
1200 (home-page "https://metacpan.org/release/FDALY/Test-Tester-0.109")
1201 (license perl-license)))
1203 (define-public perl-test-perltidy
1205 (name "perl-test-perltidy")
1206 (version "20130104")
1211 "mirror://cpan/authors/id/L/LA/LARRYL/Test-PerlTidy-"
1215 "1j5rsb4km9rzcbd1ljavj8vm42bmilji40v2jj2k87l1ykrxj59z"))))
1216 (build-system perl-build-system)
1218 `(("perl-file-finder" ,perl-file-finder)
1219 ("perl-file-slurp" ,perl-file-slurp)
1220 ("perltidy" ,perltidy)
1221 ("perl-text-diff" ,perl-text-diff)))
1222 (home-page "https://metacpan.org/release/Test-PerlTidy")
1223 (synopsis "Check that all your Perl files are tidy")
1225 "Using @code{Test::PerlTidy}, any file ending in .pl, .pm, .t or .PL will
1226 cause a test fail unless it is exactly as @code{perltidy} would like it to be.")
1227 (license perl-license)))
1229 (define-public perl-test-trap
1231 (name "perl-test-trap")
1236 (uri (string-append "mirror://cpan/authors/id/E/EB/EBHANSSEN/"
1237 "Test-Trap-v" version ".tar.gz"))
1239 (base32 "1qjs2080kcc66s4d7499br5lw2qmhr9gxky4xsl6vjdn6dpna10b"))))
1240 (build-system perl-build-system)
1242 `(("perl-module-build" ,perl-module-build)
1243 ("perl-test-simple" ,perl-test-simple)))
1245 `(("perl-test-tester" ,perl-test-tester)
1246 ("perl-data-dump" ,perl-data-dump)))
1247 (home-page "https://metacpan.org/release/Test-Trap")
1248 (synopsis "Trap exit codes, exceptions, output, and so on")
1249 (description "This module is primarily (but not exclusively) for use in
1250 test scripts: A block eval configurable and extensible but by default trapping
1251 STDOUT, STDERR, warnings, exceptions, would-be exit codes, and return values
1252 from boxed blocks of test code.")
1253 (license perl-license)))
1255 (define-public perl-test-utf8
1257 (name "perl-test-utf8")
1262 (uri (string-append "mirror://cpan/authors/id/M/MA/MARKF/"
1263 "Test-utf8-" version ".tar.gz"))
1266 "0yhvf735v334qqvp9zg7i66qyk6r4cbk5s2psv93d3fdd4bindzg"))))
1267 (build-system perl-build-system)
1269 `(("perl-module-install" ,perl-module-install)))
1270 (home-page "https://metacpan.org/release/Test-utf8")
1271 (synopsis "UTF-8 testing in Perl")
1272 (description "This module is a collection of tests useful for dealing with
1273 UTF-8 strings in Perl. This module has two types of tests: The validity tests
1274 check if a string is valid and not corrupt, whereas the characteristics tests
1275 will check that string has a given set of characteristics.")
1276 (license perl-license)))
1278 (define-public perl-test-warn
1280 (name "perl-test-warn")
1285 (uri (string-append "mirror://cpan/authors/id/C/CH/CHORNY/"
1286 "Test-Warn-" version ".tar.gz"))
1289 "0haf2ii7br5z0psmkvlvmx2z2q9qz1c70gx0969r378qjidmb5w1"))))
1290 (build-system perl-build-system)
1292 `(("perl-sub-uplevel" ,perl-sub-uplevel)))
1293 (home-page "https://metacpan.org/release/Test-Warn")
1294 (synopsis "Perl extension to test methods for warnings")
1295 (description "This module provides a few convenience methods for testing
1296 warning based code.")
1297 (license perl-license)))
1299 (define-public perl-test-warnings
1301 (name "perl-test-warnings")
1306 (uri (string-append "mirror://cpan/authors/id/E/ET/ETHER/"
1307 "Test-Warnings-" version ".tar.gz"))
1310 "024srkwjckp15dxkni9lb1hc8bg4xwc52zz0iich8rv1nnqnhaxf"))))
1311 (build-system perl-build-system)
1312 (home-page "https://metacpan.org/release/Test-Warnings")
1313 (synopsis "Test for warnings and the lack of them")
1314 (description "This module is intended to be used as a drop-in replacement
1315 for Test::NoWarnings. It also adds an extra test, but runs this test before
1316 done_testing calculates the test count, rather than after. It does this by
1317 hooking into done_testing as well as via an END block. You can declare a
1318 plan, or not, and things will still Just Work.")
1319 (license perl-license)))
1321 (define-public perl-test-without-module
1323 (name "perl-test-without-module")
1328 (uri (string-append "mirror://cpan/authors/id/C/CO/CORION/"
1329 "Test-Without-Module-" version ".tar.gz"))
1332 "0955ib9cz1naz7a2v6lx78kj29q7ihmdn51im6wd1im669yfp6lf"))))
1333 (build-system perl-build-system)
1334 (home-page "https://metacpan.org/release/Test-Without-Module")
1335 (synopsis "Test fallback behaviour in absence of modules")
1336 (description "This module allows you to deliberately hide modules from a
1337 program even though they are installed. This is mostly useful for testing
1338 modules that have a fallback when a certain dependency module is not
1340 (license perl-license)))
1342 (define-public perl-test-writevariants
1344 (name "perl-test-writevariants")
1349 (uri (string-append "mirror://cpan/authors/id/R/RE/REHSACK/"
1350 "Test-WriteVariants-" version ".tar.gz"))
1352 (base32 "11v4j3607bydxsqy2ylx9w6qr3qxcalfx3mdc4q4ccqmxsyw4jb3"))))
1353 (build-system perl-build-system)
1355 `(("perl-test-most" ,perl-test-most)
1356 ("perl-test-directory" ,perl-test-directory)))
1358 `(("perl-data-tumbler" ,perl-data-tumbler)
1359 ("perl-file-homedir" ,perl-file-homedir)
1360 ("perl-module-pluggable" ,perl-module-pluggable)
1361 ("perl-module-runtime" ,perl-module-runtime)))
1362 (home-page "https://metacpan.org/release/Test-WriteVariants")
1363 (synopsis "Dynamic generation of tests")
1364 (description "The Test::WriteVariants module provides for the dynamic
1365 generation of tests in nested combinations of contexts.")
1366 (license perl-license))) ; see LICENSE
1368 (define-public perl-test-yaml
1370 (name "perl-test-yaml")
1375 (uri (string-append "mirror://cpan/authors/id/T/TI/TINITA/"
1376 "Test-YAML-" version ".tar.gz"))
1378 (base32 "0pwrrnwi1qaiy3c5522vy0kzncxc9g02r4b056wqqaa69w1hsc0z"))))
1379 (build-system perl-build-system)
1381 `(("perl-test-base" ,perl-test-base)))
1382 (home-page "https://metacpan.org/release/Test-YAML")
1383 (synopsis "Testing module for YAML implementations")
1384 (description "Test::YAML is a subclass of Test::Base with YAML specific
1386 (license perl-license)))
1388 (define-public perl-test-trailingspace
1390 (name "perl-test-trailingspace")
1396 "mirror://cpan/authors/id/S/SH/SHLOMIF/Test-TrailingSpace-"
1401 "0w2rvsksv7cmf80v632xm2rwxrv933kzz97839yhwynvg9s7b252"))))
1402 (build-system perl-build-system)
1404 `(("perl-module-build" ,perl-module-build)
1405 ("perl-file-find-object" ,perl-file-find-object)
1406 ("perl-class-xsaccessor" ,perl-class-xsaccessor)))
1408 `(("perl-file-find-object-rule" ,perl-file-find-object-rule)
1409 ("perl-text-glob" ,perl-text-glob)
1410 ("perl-number-compare" ,perl-number-compare)))
1412 "https://metacpan.org/release/Test-TrailingSpace")
1414 "Test for trailing space in Perl source files")
1415 (description "Test::TrailingSpace tests for trailing spaces
1416 in Perl source files.")