[PATCH] gnu: Add munit.

  • Open
  • quality assurance status badge
Details
One participant
  • Wamm K. D
Owner
unassigned
Submitted by
Wamm K. D
Severity
normal
W
W
Wamm K. D wrote on 26 Nov 2023 10:19
(address . guix-patches@gnu.org)(name . Wamm K. D)(address . jaft.r@outlook.com)
BY5PR07MB7029B33C3C4BEC6F9CE0CE3299BEA@BY5PR07MB7029.namprd07.prod.outlook.com
While the library is incredibly simple, – for some reason – the most
important file of the package gets skipped by =meson-build-system=.

To compensate for this, I've added a phase that just manually copies
the file over but let me know if there's a more appropriate way to
handle this.

* gnu/packages/check.scm (munit): New variable.
---
gnu/packages/check.scm | 52 ++++++++++++++++++++++++++++++++++++++++++
1 file changed, 52 insertions(+)

Toggle diff (69 lines)
diff --git a/gnu/packages/check.scm b/gnu/packages/check.scm
index 1f5b886977..ca6d8fe3be 100644
--- a/gnu/packages/check.scm
+++ b/gnu/packages/check.scm
@@ -47,6 +47,7 @@
;;; Copyright © 2023 Bruno Victal <mirai@makinata.eu>
;;; Copyright © 2023 Reza Housseini <reza@housseini.me>
;;; Copyright © 2023 Hilton Chain <hako@ultrarare.space>
+;;; Copyright © 2023 Wamm K. D. <jaft.r@outlook.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -3648,3 +3649,54 @@ (define-public subunit
command line filters to process a subunit stream and language bindings for
Python, C, C++ and shell. Bindings are easy to write for other languages.")
(license (list license:asl2.0 license:bsd-3)))) ;user can pick
+
+(define-public munit
+ ;; A ton of commits have been made since the last version tag was done (in 2016)
+ (let ((version "0.2.0")
+ (commit "fbbdf1467eb0d04a6ee465def2e529e4c87f2118")
+ (revision "0"))
+ (package
+ (name "munit")
+ (version (git-version version revision commit))
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url (string-append "https://github.com/nemequ/" name "/"))
+ (commit commit)))
+ (sha256
+ (base32 "13725v4pps2bpndniksa58nqi9gvx0f0900k0rqvp95bxw5z8vda"))))
+ (build-system meson-build-system)
+ (arguments
+ (list
+ #:phases #~(modify-phases %standard-phases
+ (add-after 'install 'install-lib
+ (lambda _
+ (copy-file "libmunit.so"
+ (string-append #$output
+ "/lib/libmunit.so")))))))
+ (synopsis "Unit testing framework for C")
+ (description "µnit is a unit testing framework. Prioritizing a small
+size, it has no dependencies beyond @code{libc}.
+
+Features include:
+@itemize @bullet
+@item
+Assertion macros for nice error messages
+@item
+Reproducible cross-platform random number generation, including support for
+supplying a seed via CLI
+@item
+Timing of both wall-clock and CPU time
+@item
+Parameterized tests
+@item
+Nested test suites
+@item
+Flexible CLI
+@item
+Forking (except on Windows)
+@item
+Hiding output of successful tests
+@end itemize")
+ (home-page "https://nemequ.github.io/munit/")
+ (license license:expat))))
--
2.41.0
?