Subject: Re: bug#53057: [PATCH] gnu: Add stress-ng.

From: Maxim Cournoyer <[email-masked]>
Date: Thu, 06 Jan 2022 23:39:09 -0500

Hi Tobias,

How timely! :-)

Tobias Geerinckx-Rice <[email-masked]> writes:

> * gnu/packages/admin.scm (stress-ng): New public variable.
> ---
>  gnu/packages/admin.scm | 67 ++++++++++++++++++++++++++++++++++++++++++
>  1 file changed, 67 insertions(+)
>
> diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm
> index d45857150f..6e180ec80a 100644
> --- a/gnu/packages/admin.scm
> +++ b/gnu/packages/admin.scm
> @@ -2260,6 +2260,73 @@ (define-public stress
>  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")
> +                   (string-append "MANDIR=" #$output "/share/man")
> +                   (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)
> +                   (when tests?
> +                     (substitute* "debian/tests/fast-test-all"
> +                       (("EXCLUDE=\"" exclude=)
> +                        (string-append exclude=
> +                                       ;; Fails if host kernel denies ptracing.
> +                                       "ptrace ")))
> +                     (invoke "make" "fast-test-all"
> +                             "-j" (number->string (parallel-job-count)))))))))

This looks good and works good too!  My only comment is that this should
honor parallel-tests?.  Reusing the check phase but overriding the
test-target argument should do it:

modified   gnu/packages/admin.scm
@@ -2289,15 +2289,15 @@ (define-public stress-ng
                (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)
+                 (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 ")))
-                     (invoke "make" "fast-test-all"
-                             "-j" (number->string (parallel-job-count)))))))))
+                                       "ptrace "))))
+                   (apply (assoc-ref %standard-phases 'check)
+                          `(,@args #:test-target "fast-test-all")))))))
     (inputs
      (list keyutils
            kmod

Otherwise, LGTM!  Feel free to push with such adjustment.

Thank you!

Maxim