guix: emacs-utils: Add ert-number-tests.

* guix/build/utils.scm (ert-number-tests): New variable.
This commit is contained in:
Liliana Marie Prikler 2023-08-19 01:37:20 +02:00
parent 1fcf9c0d7d
commit 50b2db40ea
No known key found for this signature in database
GPG key ID: 442A84B8C70E2F87

View file

@ -40,6 +40,7 @@ (define-module (guix build emacs-utils)
emacs-byte-compile-directory
emacs-compile-directory
emacs-header-parse
ert-number-tests
as-display
emacs-substitute-sexps
@ -183,6 +184,19 @@ (define-syntax replacement-helper
(insert " ")
(insert ,(format #f "~s" replacement))))))
(define (ert-number-tests file test-name)
"Add a numerically increasing suffix to tests of the same name.
This fixes test errors of the pattern \"Test TEST_NAME redefined\"."
(emacs-batch-edit-file file
`(let ((i 0))
(while (re-search-forward ,(string-append "ert-deftest " test-name)
nil t)
(goto-char (match-beginning 0))
(kill-region (match-beginning 0) (match-end 0))
(insert (format "ert-deftest %s-%d" ,test-name i))
(setq i (+ i 1)))
(basic-save-buffer))))
(define-syntax emacs-substitute-sexps
(syntax-rules ()
"Substitute the S-expression immediately following the first occurrence of