me
/
guix
Archived
1
0
Fork 0

gnu: Add stress-ng.

* gnu/packages/admin.scm (stress-ng): New public variable.
master
Tobias Geerinckx-Rice 2022-01-06 18:54:58 +01:00
parent e3e10fdda1
commit 046322189b
No known key found for this signature in database
GPG Key ID: 0DB0FF884F556D79
1 changed files with 68 additions and 0 deletions

View File

@ -2260,6 +2260,74 @@ the classes of bugs which only or more frequently manifest themselves when the
system is under heavy load.")
(license license:gpl2+)))
(define-public stress-ng
(package
(name "stress-ng")
(version "0.13.10")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/ColinIanKing/stress-ng")
(commit (string-append "V" version))))
(file-name (git-file-name name version))
(sha256
(base32 "1z9vjn2131iv3pwrh04z6r5ygi1qgad5bi3jhghcvc3v1b4k5ran"))))
(build-system gnu-build-system)
(arguments
(list #:make-flags
#~(list (string-append "CC=" #$(cc-for-target))
(string-append "BINDIR=" #$output "/bin")
;; XXX Really: MAN1DIR, or man pages won't be found.
(string-append "MANDIR=" #$output "/share/man/man1")
(string-append "JOBDIR=" #$output
"/share/stress-ng/example-jobs")
(string-append "BASHDIR=" #$output
"/share/bash-completion/completions"))
#:test-target "lite-test"
#:phases
#~(modify-phases %standard-phases
(delete 'configure) ; no configure script
(add-after 'check 'check-a-little-harder
;; XXX Guix supports only one #:test-target. Run more tests.
(lambda* (#:key tests? #:allow-other-keys #:rest args)
(when tests?
(substitute* "debian/tests/fast-test-all"
(("EXCLUDE=\"" exclude=)
(string-append exclude=
;; Fails if host kernel denies ptracing.
"ptrace ")))
(apply (assoc-ref %standard-phases 'check)
`(,@args #:test-target "fast-test-all"))))))))
(inputs
(list keyutils
kmod
libaio
libbsd
libcap
libgcrypt
zlib))
(home-page "https://github.com/ColinIanKing/stress-ng")
(synopsis "Load and stress-test a computer system in various ways")
(description
"stress-ng stress-tests a computer system by exercising both physical
subsystems as operating system kernel interfaces. It can stress the CPU, cache,
disk, memory, socket and pipe I/O, scheduling, and much more, in various
selectable ways. This can trip hardware issues such as thermal overruns as well
as operating system bugs that occur only when a system is being thrashed hard.
You can also measure test throughput rates, which can be useful to observe
performance changes across different operating system releases or types of
hardware. However, stress-ng is not a benchmark. Use it with caution: some of
the tests can make poorly designed hardware run dangerously hot or make the
whole system lock up.
Compared to its inspiration, @command{stress}, @command{stress-ng} offers many
additional options such as the number of bogo operations to run, execution
metrics, verification of memory and computational operations, and considerably
more stress mechanisms.")
(license license:gpl2+)))
(define-public detox
(package
(name "detox")