summary refs log tree commit diff
diff options
context:
space:
mode:
authorMaxim Cournoyer <maxim.cournoyer@gmail.com>2022-03-03 16:43:14 -0500
committerMaxim Cournoyer <maxim.cournoyer@gmail.com>2022-03-03 22:37:52 -0500
commit0b0b377db8c07ad16d452f715321535eccba7a70 (patch)
treeb18842083523bd2ad128e66888553f8c4c0b024d
parenta001522657a7f960e6c5c903c042557e73c61f4a (diff)
downloadguix-0b0b377db8c07ad16d452f715321535eccba7a70.tar.gz
gnu: Add kdiskmark.
* gnu/packages/benchmark.scm (kdiskmark): New variable.
-rw-r--r--gnu/packages/benchmark.scm49
1 files changed, 48 insertions, 1 deletions
diff --git a/gnu/packages/benchmark.scm b/gnu/packages/benchmark.scm
index 537f6262c4..eb5df3d4c3 100644
--- a/gnu/packages/benchmark.scm
+++ b/gnu/packages/benchmark.scm
@@ -8,7 +8,7 @@
 ;;; Copyright © 2019, 2021 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com>
 ;;; Copyright © 2020 malte Frank Gerdes <malte.f.gerdes@gmail.com>
-;;; Copyright © 2020, 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
+;;; Copyright © 2020, 2021, 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 ;;; Copyright © 2020 Greg Hogan <code@greghogan.com>
 ;;; Copyright © 2021 Arun Isaac <arunisaac@systemreboot.net>
 ;;;
@@ -31,6 +31,7 @@
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix packages)
   #:use-module (guix download)
+  #:use-module (guix gexp)
   #:use-module (guix git-download)
   #:use-module (guix build-system cmake)
   #:use-module (guix build-system gnu)
@@ -38,6 +39,7 @@
   #:use-module (gnu packages)
   #:use-module (gnu packages check)
   #:use-module (gnu packages compression)
+  #:use-module (gnu packages kde-frameworks)
   #:use-module (gnu packages linux)
   #:use-module (gnu packages maths)
   #:use-module (gnu packages mpi)
@@ -47,6 +49,7 @@
   #:use-module (gnu packages python-science)
   #:use-module (gnu packages python-web)
   #:use-module (gnu packages python-xyz)
+  #:use-module (gnu packages qt)
   #:use-module (ice-9 match))
 
 (define-public fio
@@ -383,3 +386,47 @@ and options.  With careful benchmarking, different hardware can be compared.")
         devices.  It only measures the peak metrics that can be achieved using
         vector operations and does not represent a real-world use case.")
         (license license:unlicense))))
+
+(define-public kdiskmark
+  (package
+    (name "kdiskmark")
+    (version "2.3.0")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/JonMagon/KDiskMark")
+                    (commit version)))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "1l4sw05yx70pcnaa64arjc414mgvyz05pn3gz9nc9hga8v2d3rzn"))))
+    (build-system cmake-build-system)
+    (arguments
+     (list
+      #:configure-flags
+      ;; Drop runtime dependency on KDE's KFAuth.
+      #~(list "-DPERFORM_PAGECACHE_CLEARING_USING_KF5AUTH=no")
+      #:tests? #f                       ;no test suite
+      #:phases
+      #~(modify-phases %standard-phases
+          (add-after 'unpack 'patch-paths
+            (lambda* (#:key inputs #:allow-other-keys)
+              (substitute* "src/benchmark.cpp"
+                (("\"fio\"")
+                 (format #f "~s" (search-input-file inputs "bin/fio")))))))))
+    (native-inputs (list extra-cmake-modules qttools))
+    (inputs (list fio qtbase-5))
+    (home-page "https://github.com/JonMagon/KDiskMark")
+    (synopsis "Simple disk benchmark tool")
+    (description "KDiskMark is an HDD and SSD benchmark tool.  KDiskMark
+abstracts away the complexity of the Flexible I/O Tester (@command{fio})
+command via a convenient graphical user interface (GUI) and handles its output
+to provide an easy to view and interpret benchmark result.  The application is
+written in C++ with Qt and doesn't have any runtime KDE dependencies.  Among
+its features are:
+@itemize
+@item Configurable block size, queues, and threads count for each test
+@item Many languages support
+@item Report generation.
+@end itemize")
+    (license license:gpl3+)))