X-Git-Url: https://git.hcoop.net/jackhill/guix/guix.git/blobdiff_plain/cf3d1763ede1a329c2bc932c84591ab594bb6c96..cd773f118573aad42c1e10dd77061fd3d1279189:/gnu/packages/check.scm diff --git a/gnu/packages/check.scm b/gnu/packages/check.scm index dab0bd39c3..fa14ac1544 100644 --- a/gnu/packages/check.scm +++ b/gnu/packages/check.scm @@ -16,17 +16,17 @@ ;;; Copyright © 2016 Troy Sankey ;;; Copyright © 2016 Lukas Gradl ;;; Copyright © 2016 Hartmut Goebel -;;; Copyright © 2016, 2017, 2018, 2019 Tobias Geerinckx-Rice +;;; Copyright © 2016, 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice ;;; Copyright © 2017 Julien Lepiller ;;; Copyright © 2017 Thomas Danckaert ;;; Copyright © 2017, 2018 Arun Isaac ;;; Copyright © 2017 Frederick M. Muriithi -;;; Copyright © 2017 Mathieu Othacehe +;;; Copyright © 2017, 2019 Mathieu Othacehe ;;; Copyright © 2017, 2019 Kei Kebreau ;;; Copyright © 2017 ng0 ;;; Copyright © 2015, 2017, 2018 Ricardo Wurmus -;;; Copyright © 2016, 2017, 2018 Marius Bakke -;;; Copyright © 2017, 2018 Ludovic Courtès +;;; Copyright © 2016, 2017, 2018, 2019, 2020 Marius Bakke +;;; Copyright © 2017, 2018, 2020 Ludovic Courtès ;;; Copyright © 2018 Fis Trivial ;;; Copyright © 2019 Pierre Langlois ;;; Copyright © 2019 Chris Marusich @@ -78,7 +78,7 @@ (define-public check (package (name "check") - (version "0.12.0") + (version "0.14.0") (source (origin (method url-fetch) @@ -86,7 +86,7 @@ version "/check-" version ".tar.gz")) (sha256 (base32 - "0d22h8xshmbpl9hba9ch3xj8vb9ybm5akpsbbh7yj07fic4h2hj6")))) + "02zkfiyklckmivrfvdsrlzvzphkdsgjrz3igncw05dv5pshhq3xx")))) (build-system gnu-build-system) (home-page "https://libcheck.github.io/check/") (synopsis "Unit test framework for C") @@ -99,6 +99,19 @@ faults or other signals. The output from unit tests can be used within source code editors and IDEs.") (license license:lgpl2.1+))) +;; Some packages require this older version. Removed once no longer needed. +(define-public check-0.12 + (package/inherit + check + (version "0.12.0") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/libcheck/check/releases" + "/download/" version "/check-" version ".tar.gz")) + (sha256 + (base32 + "0d22h8xshmbpl9hba9ch3xj8vb9ybm5akpsbbh7yj07fic4h2hj6")))))) + (define-public cunit (package (name "cunit") @@ -196,7 +209,7 @@ supervised tests.") multi-paradigm automated test framework for C++ and Objective-C.") (license license:boost1.0))) -(define-public catch-framework2 +(define-public catch-framework2-1 (package (name "catch2") (version "1.12.2") @@ -216,6 +229,28 @@ multi-paradigm automated test framework for C++ and Objective-C.") a multi-paradigm automated test framework for C++ and Objective-C.") (license license:boost1.0))) +(define-public catch-framework2 + (package + (name "catch2") + (version "2.1.2") + (home-page "https://github.com/catchorg/Catch2") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/catchorg/Catch2") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "14vcckqmbydjsg40ngi6iv999zimysh2l7fmrqj1d7xl990qz233")))) + (build-system cmake-build-system) + (inputs + `(("python" ,python-wrapper))) + (synopsis "Automated test framework for C++ and Objective-C") + (description "Catch2 stands for C++ Automated Test Cases in Headers and is +a multi-paradigm automated test framework for C++ and Objective-C.") + (license license:boost1.0))) + (define-public cmdtest (package (name "cmdtest") @@ -264,7 +299,7 @@ problem, and shows the differences.") (define-public cmocka (package (name "cmocka") - (version "1.1.3") + (version "1.1.5") (source (origin (method url-fetch) (uri (string-append "https://cmocka.org/files/" @@ -272,7 +307,7 @@ problem, and shows the differences.") version ".tar.xz")) (sha256 (base32 - "1bxzzafjlwzgldcb07hjnlnqvh88wh21r2kw7z8f704w5bvvrsj3")))) + "1dm8pdvkyfa8dsbz9bpq7wwgixjij4sii9bbn5sgvqjm5ljdik7h")))) (build-system cmake-build-system) (arguments `(#:tests? #f)) ; no test target @@ -288,7 +323,7 @@ format.") (define-public cppcheck (package (name "cppcheck") - (version "1.87") + (version "1.90") (source (origin (method git-fetch) (uri (git-reference @@ -296,7 +331,7 @@ format.") (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "1xiy54rz99nzbpwj35jiyssd2nc6k5k0lw5ml6nh2qnmbfkl8swl")))) + (base32 "0h7ir2x0k005fm586dxmaphgv5cyz25k3k4sh02p7zb78gzx398h")))) (build-system cmake-build-system) (arguments '(#:configure-flags '("-DBUILD_TESTS=ON"))) @@ -354,6 +389,25 @@ a CxxTest testing library, it employs no advanced features of C++ (e.g. RTTI) and it supports a very flexible form of test discovery.") (license license:lgpl3+))) +(define-public doctest + (package + (name "doctest") + (version "2.3.6") + (home-page "https://github.com/onqtam/doctest") + (source (origin + (method git-fetch) + (uri (git-reference (url home-page) (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "070gkwffi73i2p0azga9yxj8km32bp8bw4jvkvz1vzlpavyii5kn")))) + (build-system cmake-build-system) + (synopsis "C++ test framework") + (description + "doctest is a single-header testing framework for C++11 and later. It +has been designed to be fast, light and unintrusive.") + (license license:expat))) + (define-public go-gopkg.in-check.v1 (let ((commit "788fd78401277ebd861206a03c884797c6ec5541") (revision "1")) @@ -464,7 +518,7 @@ test coverage and has a web user interface that will refresh automatically.") (define-public googletest (package (name "googletest") - (version "1.8.1") + (version "1.10.0") (source (origin (method git-fetch) @@ -473,12 +527,12 @@ test coverage and has a web user interface that will refresh automatically.") (commit (string-append "release-" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "0270msj6n7mggh4xqqjp54kswbl7mkcc8px1p5dqdpmw5ngh9fzk")))) + (base32 "1zbmab9295scgg4z2vclgfgjchfjailjnvzc6f5x9jvlsdi3dpwz")))) (build-system cmake-build-system) (arguments `(#:configure-flags '("-DBUILD_SHARED_LIBS=ON"))) (native-inputs - `(("python-2" ,python-2))) + `(("python" ,python-wrapper))) (home-page "https://github.com/google/googletest/") (synopsis "Test discovery and XUnit test framework") (description "Google Test features an XUnit test framework, automated test @@ -486,6 +540,20 @@ discovery, death tests, assertions, parameterized tests and XML test report generation.") (license license:bsd-3))) +(define-public googletest-1.8 + (package/inherit + googletest + (version "1.8.1") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/google/googletest.git") + (commit (string-append "release-" version)))) + (file-name (git-file-name "googletest" version)) + (sha256 + (base32 + "0270msj6n7mggh4xqqjp54kswbl7mkcc8px1p5dqdpmw5ngh9fzk")))))) + (define-public cpputest (package (name "cpputest") @@ -512,25 +580,43 @@ but it works for any C/C++ project.") (define-public python-parameterized (package (name "python-parameterized") - (version "0.6.1") + (version "0.7.1") (source (origin (method url-fetch) (uri (pypi-uri "parameterized" version)) (sha256 (base32 - "1qj1939shm48d9ql6fm1nrdy4p7sdyj8clz1szh5swwpf1qqxxfa")))) + "1vapry9lyfb2mlpgk2wh9079hzxzq5120bsczncxxay663mdp53a")))) (build-system python-build-system) - (arguments '(#:tests? #f)) ; there are no tests + (arguments + '(#:phases (modify-phases %standard-phases + (replace 'check + (lambda* (#:key tests? #:allow-other-keys) + (if tests? + (invoke "nosetests" "-v") + (format #t "test suite not run~%")) + #t))))) + (native-inputs + `(("python-mock" ,python-mock) + ("python-nose" ,python-nose))) (home-page "https://github.com/wolever/parameterized") (synopsis "Parameterized testing with any Python test framework") (description "Parameterized is a Python library that aims to fix parameterized testing for every Python test framework. It supports nose, py.test, and unittest.") + (properties `((python2-variant . ,(delay python2-parameterized)))) (license license:bsd-2))) (define-public python2-parameterized - (package-with-python2 python-parameterized)) + (let ((base (package-with-python2 (strip-python2-variant + python-parameterized)))) + (package/inherit + base + (source + (origin + (inherit (package-source base)) + (patches (search-patches "python2-parameterized-docstring-test.patch"))))))) (define-public python-minimock (package @@ -620,14 +706,14 @@ have been used.") (define-public python-nose2 (package (name "python-nose2") - (version "0.6.5") + (version "0.9.2") (source (origin (method url-fetch) (uri (pypi-uri "nose2" version)) (sha256 (base32 - "1x4zjq1zlyrh8b9ba0cmafd3w94pxhid408kibyjd3s6h1lap6s7")))) + "0pmbb6nk31yhgh4zkcblzxsznml7f7pf5q1ihgrwvbxv4mwzfql7")))) (build-system python-build-system) (arguments `(#:tests? #f)) ; 'module' object has no attribute 'collector' (propagated-inputs @@ -670,7 +756,7 @@ interfaces and processes.") (propagated-inputs `(("python-six" ,python-six) ("python-traceback2" ,python-traceback2))) - (home-page "http://pypi.python.org/pypi/unittest2") + (home-page "https://pypi.org/project/unittest2/") (synopsis "Python unit testing library") (description "Unittest2 is a replacement for the unittest module in the Python @@ -816,6 +902,22 @@ supports coverage of subprocesses.") (define-public python2-pytest-runner (package-with-python2 python-pytest-runner)) +;; python-bleach 3.1.0 requires this ancient version of pytest-runner. +;; Remove once no longer needed. +(define-public python-pytest-runner-2 + (package/inherit + python-pytest-runner + (version "2.12.2") + (source (origin + (method url-fetch) + (uri (pypi-uri "pytest-runner" version)) + (sha256 + (base32 + "11ivjj9hfphkv4yfb2g74av4yy86y8gcbf7gbif0p1hcdfnxg3w6")))))) + +(define-public python2-pytest-runner-2 + (package-with-python2 python-pytest-runner-2)) + (define-public python-pytest-mock (package (name "python-pytest-mock") @@ -937,7 +1039,8 @@ timeout has been exceeded.") (build-system python-build-system) (native-inputs `(("python-pytest" ,python-pytest))) - (home-page "http://pythonpaste.org/scripttest/") + (home-page (string-append "https://web.archive.org/web/20161029233413/" + "http://pythonpaste.org/scripttest/")) (synopsis "Python library to test command-line scripts") (description "Scripttest is a Python helper library for testing interactive command-line applications. With it you can run a script in a @@ -1338,8 +1441,6 @@ C/C++, R, and more, and uploads it to the @code{codecov.io} service.") #:modules ((guix build python-build-system) (guix build utils) (srfi srfi-1)) - #:imported-modules (,@%python-build-system-modules - (srfi srfi-1)) #:phases (modify-phases %standard-phases (delete 'install) @@ -1439,7 +1540,7 @@ the last py.test invocation.") (synopsis "Py.test plugin to test server connections locally") (description "Pytest-localserver is a plugin for the pytest testing framework which enables you to test server connections locally.") - (home-page "https://pypi.python.org/pypi/pytest-localserver") + (home-page "https://pypi.org/project/pytest-localserver/") (license license:expat))) (define-public python-pytest-xprocess @@ -1668,19 +1769,22 @@ unit tests and failing them if the unit test module does not exercise all statements in the module it tests.") (license license:gpl3+))) +;; Further releases, up to 2.4.3, have failing unit tests. See: +;; https://github.com/PyCQA/pylint/issues/3198. (define-public python-pylint (package (name "python-pylint") - (version "1.7.2") + (version "2.3.1") (source (origin - (method url-fetch) - (uri (string-append - "https://github.com/PyCQA/pylint/archive/pylint-" - version ".tar.gz")) + (method git-fetch) + (uri (git-reference + (url "https://github.com/PyCQA/pylint") + (commit (string-append "pylint-" version)))) + (file-name (git-file-name name version)) (sha256 (base32 - "0mzn1czhf1mgr2wiqfihb274sja02h899b85kywdpivppa9nwrmp")))) + "17vvzbcqmkhr4icq5p3737nbiiyj1y3g1pa08n9mb1bsnvxmqq0z")))) (build-system python-build-system) (native-inputs `(("python-pytest" ,python-pytest) @@ -1691,22 +1795,6 @@ statements in the module it tests.") ("python-isort" ,python-isort) ("python-mccabe" ,python-mccabe) ("python-six" ,python-six))) - (arguments - `(#:phases - (modify-phases %standard-phases - (replace 'check - (lambda _ - ;; Somehow, tests for python2-pylint - ;; fail if run from the build directory - (let ((work "/tmp/work")) - (mkdir-p work) - (setenv "PYTHONPATH" - (string-append (getenv "PYTHONPATH") ":" work)) - (copy-recursively "." work) - (with-directory-excursion "/tmp" - (invoke "python" "-m" "unittest" "discover" - "-s" (string-append work "/pylint/test") - "-p" "*test_*.py")))))))) (home-page "https://github.com/PyCQA/pylint") (synopsis "Python source code analyzer which looks for coding standard errors") @@ -1721,10 +1809,42 @@ possible to write plugins to add your own checks.") (properties `((python2-variant . ,(delay python2-pylint)))) (license license:gpl2+))) +;; Python2 is not supported anymore by Pylint. See: +;; https://github.com/PyCQA/pylint/issues/1763. (define-public python2-pylint (let ((pylint (package-with-python2 - (strip-python2-variant python-pylint)))) + (strip-python2-variant python-pylint)))) (package (inherit pylint) + (version "1.9.5") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/PyCQA/pylint") + (commit (string-append "pylint-" version)))) + (file-name (git-file-name (package-name pylint) version)) + (sha256 + (base32 + "02a89d8a47s7nfiv1ady3j0sg2sbyja3np145brarfp5x9qxz9x2")))) + (arguments + `(,@(package-arguments pylint) + #:phases + (modify-phases %standard-phases + (replace 'check + (lambda _ + ;; Somehow, tests fail if run from the build directory. + (let ((work "/tmp/work")) + (mkdir-p work) + (setenv "PYTHONPATH" + (string-append (getenv "PYTHONPATH") ":" work)) + (copy-recursively "." work) + (with-directory-excursion "/tmp" + (invoke "python" "-m" "unittest" "discover" + "-s" (string-append work "/pylint/test") + "-p" "*test_*.py")))))))) + (native-inputs + `(("python2-futures" ,python2-futures) + ,@(package-native-inputs pylint))) (propagated-inputs `(("python2-backports-functools-lru-cache" ,python2-backports-functools-lru-cache) @@ -1874,7 +1994,7 @@ especially -cover-package.") (base32 "0y8d0zwiqar51kxj8lzmkvwc3b8kazb04gk5zcb4nzg5k68zmhq5")))) (build-system python-build-system) - (home-page "http://pypi.python.org/pypi/discover/") + (home-page "https://pypi.org/project/discover/") (synopsis "Python test discovery for unittest") (description @@ -1908,7 +2028,15 @@ backported from Python 2.7 for Python 2.4+.") ("python-parse" ,python-parse) ("python-parse-type" ,python-parse-type))) (arguments - '(#:test-target "behave_test")) + '(#:test-target "behave_test" + #:phases + (modify-phases %standard-phases + (add-before 'check 'fix-library-loading + (lambda _ + ;; Otherwise, tests fail with no module named 'path' + (setenv "PYTHONPATH" (string-append (getenv "PYTHONPATH") ":" + (getcwd) "/tasks/_vendor")) + #t))))) (home-page "https://github.com/behave/behave") (synopsis "Python behavior-driven development") (description @@ -1988,6 +2116,32 @@ JSON APIs with Behave.") (define-public python2-rednose (package-with-python2 python-rednose)) +(define-public python-nose-random + (package + (name "python-nose-random") + (version "1.0.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/fzumstein/nose-random") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1dvip61r2frjv35mv6mmfjc07402z73pjbndfp3mhxyjn2zhksw2")))) + (build-system python-build-system) + (native-inputs + `(("python-nose" ,python-nose))) + (home-page "https://github.com/fzumstein/nose-random") + (synopsis "Nose plugin to facilitate randomized unit testing with +Python") + (description "Python nose-random is designed to facilitate +Monte-Carlo style unit testing. The idea is to improve testing by +running your code against a large number of randomly generated input +scenarios.") + (license license:expat))) + (define-public python-nose-randomly (package (name "python-nose-randomly") @@ -2195,7 +2349,7 @@ portable to just about any platform.") (define-public libfaketime (package (name "libfaketime") - (version "0.9.7") + (version "0.9.8") (home-page "https://github.com/wolfcw/libfaketime") (source (origin (method git-fetch) @@ -2204,7 +2358,7 @@ portable to just about any platform.") (commit (string-append "v" version)))) (sha256 (base32 - "1cin1pqwpsswcv7amiwijirvcg3x1zf2l00s1x84nxc5602fzr5c")) + "1mfdl82ppgbdvy1ny8mb7xii7p0g7awvn4bn36jb8v4r545slmjc")) (file-name (git-file-name name version)))) (build-system gnu-build-system) (arguments @@ -2275,10 +2429,42 @@ program or test suite under a test bed with the previously recorded devices loaded.") (license license:lgpl2.1+))) +(define-public virtest + ;; No releases yet, so we take the commit that "vc" expects. + (let ((commit "f7d03ef39fceba168745bd29e1b20af6e7971e04") + (revision "0")) + (package + (name "virtest") + (version (git-version "0.0" revision commit)) + (home-page "https://github.com/mattkretz/virtest") + (source (origin + (method git-fetch) + (uri (git-reference (url home-page) (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "07pjyb0mk7y2w1dg1bhl26nb7416xa1mw16ifj6mmps5y6aq054l")))) + (build-system cmake-build-system) + (arguments + `(#:phases (modify-phases %standard-phases + (add-after 'unpack 'adjust-install-directory + (lambda _ + ;; Vc is the only consumer of this library, and expects + ;; to find it in "virtest/vir/" instead of "vir/vir/". + (substitute* "CMakeLists.txt" + (("DESTINATION include/vir") + "DESTINATION include/virtest")) + #t))))) + (synopsis "Header-only test framework") + (description + "@code{virtest} is a small header-only test framework for C++. It +grew out of the @dfn{Vc} project.") + (license license:bsd-3)))) + (define-public python-pyfakefs (package (name "python-pyfakefs") - (version "3.5.8") + (version "3.7.1") (source (origin (method url-fetch) ;; We use the PyPI URL because there is no proper release @@ -2287,7 +2473,7 @@ loaded.") (uri (pypi-uri "pyfakefs" version)) (sha256 (base32 - "0qb9jp0bqhc0dv0rn805fv99029fvx135f3bvka6scfkcl6jgllc")) + "1cp2yw96fa2qkgi39xa3nlr3inf8wb5rgh9kdq53256ca2r8pdhy")) (patches (search-patches "python-pyfakefs-remove-bad-test.patch")) (file-name (string-append name "-" version ".tar.gz"))))