From 38f050193b60ddcbd5bd103e94fd25f2eb13465f Mon Sep 17 00:00:00 2001 From: Zhu Zihao Date: Mon, 5 Jun 2023 00:34:32 +0800 Subject: [PATCH] gnu: Add rapidcheck. * gnu/packages/check.scm (rapidcheck): New variable. --- gnu/packages/check.scm | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) diff --git a/gnu/packages/check.scm b/gnu/packages/check.scm index 0b211f9421..85eeac98a4 100644 --- a/gnu/packages/check.scm +++ b/gnu/packages/check.scm @@ -43,6 +43,7 @@ ;;; Copyright © 2022 jgart ;;; Copyright © 2023 Luis Felipe López Acevedo ;;; Copyright © 2023 Timo Wilken +;;; Copyright © 2023 Zhu Zihao ;;; ;;; This file is part of GNU Guix. ;;; @@ -3146,6 +3147,46 @@ (define-public libfaketime provides a simple way to achieve this.") (license license:gpl2))) +(define-public rapidcheck + (let ((commit "a5724ea5b0b00147109b0605c377f1e54c353ba2") + (revision "0")) + (package + (name "rapidcheck") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/emil-e/rapidcheck") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0f2dmsym8ibnwkaidxmgp73mg0sdniwsyn6ppskh74246h29bbcy")))) + (arguments + (list + #:tests? #f ;require fetching submodules + #:configure-flags #~(list "-DCMAKE_POSITION_INDEPENDENT_CODE=ON") + #:phases + #~(modify-phases %standard-phases + (add-after 'install 'install-extra-headers + (lambda _ + (with-directory-excursion "../source/extras" + (for-each + (lambda (dir) + (let ((dir (string-append dir "/include/rapidcheck/")) + (dest (string-append #$output + "/include/rapidcheck"))) + (copy-recursively dir dest))) + '("boost" "boost_test" "catch" "gmock" "gtest")))))))) + (build-system cmake-build-system) + (home-page "https://github.com/emil-e/rapidcheck") + (synopsis "Property based testing framework for C++") + (description "Rapidcheck is a property based testing framework for C++. +It works by generating random data to try and find a case breaks your given +pre-condition.") + (license license:bsd-2)))) + (define-public umockdev (package (name "umockdev")