gnu: Add memtester.

* gnu/packages/hardware.scm (memtester): New public variable.
This commit is contained in:
Tobias Geerinckx-Rice 2018-10-01 16:11:22 +02:00
parent 5eff43804e
commit fb54125114
No known key found for this signature in database
GPG key ID: 0DB0FF884F556D79

View file

@ -116,7 +116,8 @@ (define-public memtest86+
(lambda (file) (lambda (file)
(install-file file doc)) (install-file file doc))
(list "FAQ" (list "FAQ"
"README")))))))) "README"))
#t))))))
(native-inputs (native-inputs
;; Newer GCCs fail with a deluge of "multiple definition of `__foo'" errors. ;; Newer GCCs fail with a deluge of "multiple definition of `__foo'" errors.
`(("gcc" ,gcc-4.9))) `(("gcc" ,gcc-4.9)))
@ -135,6 +136,54 @@ (define-public memtest86+
Memtest86+ cannot currently be used on computers booted with UEFI.") Memtest86+ cannot currently be used on computers booted with UEFI.")
(license license:gpl2))) (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 (define-public msr-tools
(package (package
(name "msr-tools") (name "msr-tools")