guix-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

03/10: gnu: Add memtester.


From: Tobias Geerinckx-Rice
Subject: 03/10: gnu: Add memtester.
Date: Wed, 3 Oct 2018 22:21:26 -0400 (EDT)

nckx pushed a commit to branch master
in repository guix.

commit fb5412511479c19b3e4c884e9cc65e652ea923e2
Author: Tobias Geerinckx-Rice <address@hidden>
Date:   Mon Oct 1 16:11:22 2018 +0200

    gnu: Add memtester.
    
    * gnu/packages/hardware.scm (memtester): New public variable.
---
 gnu/packages/hardware.scm | 51 ++++++++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 50 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/hardware.scm b/gnu/packages/hardware.scm
index 62f6316..02ab9e2 100644
--- a/gnu/packages/hardware.scm
+++ b/gnu/packages/hardware.scm
@@ -116,7 +116,8 @@ calibrated, and restored when the calibration is applied.")
                 (lambda (file)
                   (install-file file doc))
                 (list "FAQ"
-                      "README"))))))))
+                      "README"))
+               #t))))))
     (native-inputs
      ;; Newer GCCs fail with a deluge of "multiple definition of `__foo'" 
errors.
      `(("gcc" ,gcc-4.9)))
@@ -135,6 +136,54 @@ can scan as much of your RAM as possible for hardware 
defects.
 Memtest86+ cannot currently be used on computers booted with UEFI.")
     (license license:gpl2)))
 
+(define-public memtester
+  (package
+    (name "memtester")
+    (version "4.3.0")
+    (source
+     (origin
+       (method url-fetch)
+       ;; Even the latest release is available under 'old-versions/'.
+       (uri (string-append "http://pyropus.ca/software/memtester/old-versions/";
+                           "memtester-" version ".tar.gz"))
+       (sha256
+        (base32 "127xymmyzb9r6dxqrwd69v7gf8csv8kv7fjvagbglf3wfgyy5pzr"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:make-flags
+       (list "CC=gcc")
+       #:phases
+       (modify-phases %standard-phases
+         (replace 'configure
+           ;; This is a home-brewed configuration system where the cc/ld 
command
+           ;; lines are stored in one-line files.
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out")))
+               (substitute* (list "conf-cc" "conf-ld")
+                 (("^cc") "gcc"))
+               (substitute* "Makefile"
+                 (("(INSTALLPATH.*=).*" _ assignment)
+                  (string-append assignment out)))
+               #t)))
+         (replace 'check
+           ;; There is no test suite. Test some RAM for a single iteration.
+           (lambda _
+             (invoke "./memtester" "64K" "1"))))))
+    (home-page "http://pyropus.ca/software/memtester/";)
+    (synopsis "User-space memory subsystem tester")
+    (description
+     "Memtester stress-tests the memory subsystem of your operating system and
+computer.  It repeatedly writes different patterns to all memory locations,
+reads them back again, and verifies whether the result is the same as what was
+written.  This can help debug even intermittent and non-deterministic errors.
+
+Memtester runs entirely in user space.  This means that you don't need to 
reboot
+to test your memory, but also that it's not possible to test all of the RAM
+installed in the system.
+
+It can also be told to test memory starting at a particular physical address.")
+    (license license:gpl2)))
+
 (define-public msr-tools
   (package
     (name "msr-tools")



reply via email to

[Prev in Thread] Current Thread [Next in Thread]