Subject: [PATCH] gnu: Add benchexec.

From: Liliana Marie Prikler <[email-masked]>
Date: Mon, 29 Jul 2024 10:29:37 +0200

* gnu/packages/benchmark.scm (python-benchexec, benchexec): New variable.
---
 gnu/packages/benchmark.scm | 41 ++++++++++++++++++++++++++++++++++++++
 1 file changed, 41 insertions(+)

diff --git a/gnu/packages/benchmark.scm b/gnu/packages/benchmark.scm
index bfc70c5d3d..207bd8b949 100644
--- a/gnu/packages/benchmark.scm
+++ b/gnu/packages/benchmark.scm
@@ -38,6 +38,7 @@ (define-module (gnu packages benchmark)
   #:use-module (guix build-system cmake)
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system python)
+  #:use-module (guix build-system pyproject)
   #:use-module (guix build-system meson)
   #:use-module (gnu packages)
   #:use-module (gnu packages autotools)
@@ -394,6 +395,46 @@ (define-public phoronix-test-suite
 setup against another one.")
     (license license:gpl3+)))
 
+(define-public python-benchexec
+  (package
+    (name "python-benchexec")
+    (version "3.24")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/sosy-lab/benchexec")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "14yllwinbvifrin29vbm9ibjzswri0isvc6476ygf0whlg90z24j"))))
+    (build-system pyproject-build-system)
+    (arguments
+     (list
+      #:test-flags #~(list "--exclude=runexecutor")
+      #:phases
+      #~(modify-phases %standard-phases
+          (add-before 'check 'skip-failing-tests
+            (lambda _
+              (delete-file-recursively "benchexec/test_integration"))))))
+    (propagated-inputs (list python-pyyaml))
+    (native-inputs (list coreutils python-lxml python-nose ))
+    (home-page "https://github.com/sosy-lab/benchexec/")
+    (synopsis "Framework for Reliable Benchmarking")
+    (description
+     "BenchExec is a framework for reliable benchmarking, which takes care
+of important low-level details for accurate, precise, and reproducible
+measurements.  In particular, it makes use of cgroups, kernel namespaces,
+and overlay filesystems to restrict interference of the executed tool
+with the benchmarking host.")
+    (license license:asl2.0)))
+
+(define-public benchexec
+  (package/inherit python-benchexec
+    (name "benchexec")
+    (inputs (package-propagated-inputs python-benchexec))
+    (propagated-inputs (list))))
+
 (define-public python-locust
   (package
     (name "python-locust")

base-commit: 46a64c7fdd057283063aae6df058579bb07c4b6a
-- 
2.45.2