diff options
author | Liliana Marie Prikler <liliana.prikler@gmail.com> | 2025-03-02 11:48:36 +0100 |
---|---|---|
committer | Liliana Marie Prikler <liliana.prikler@gmail.com> | 2025-06-15 16:56:45 +0200 |
commit | d1ac3f19474cda57a080a6a0b17298c6f68537e2 (patch) | |
tree | ed596da5e72682c2391be3b39d89a17bc709624e /guix | |
parent | 3455034376cdb73ca4913749e2fe43ddf6fc7bf5 (diff) |
build-system: emacs: Guess test framework.
* guix/build/emacs-build-system (check-command): New variable.
(check): Use it.
* guix/build-system/emacs.scm (emacs-build)[test-command]: Set to #f.
Diffstat (limited to 'guix')
-rw-r--r-- | guix/build-system/emacs.scm | 2 | ||||
-rw-r--r-- | guix/build/emacs-build-system.scm | 35 |
2 files changed, 24 insertions, 13 deletions
diff --git a/guix/build-system/emacs.scm b/guix/build-system/emacs.scm index 2ec08fe878..fc165c21d7 100644 --- a/guix/build-system/emacs.scm +++ b/guix/build-system/emacs.scm @@ -84,7 +84,7 @@ #:key source (tests? (not (%current-target-system))) (parallel-tests? #t) - (test-command ''("make" "check")) + (test-command #f) ; inferred in emacs-build-system (phases '%standard-phases) (outputs '("out")) (include (quote %default-include)) diff --git a/guix/build/emacs-build-system.scm b/guix/build/emacs-build-system.scm index aa083c6409..ff35547968 100644 --- a/guix/build/emacs-build-system.scm +++ b/guix/build/emacs-build-system.scm @@ -223,23 +223,34 @@ locations in the store in '.el' files." (let ((name (store-directory->elpa-name-version (assoc-ref outputs "out")))) (and=> (find-root-library-file name) write-pkg-file))) -(define* (check #:key tests? (test-command '("make" "check")) +(define (check-command test-command) + (cond + (test-command test-command) + ((which "buttercup") '("buttercup" "-L" ".")) + ((which "ert-runner") '("ert-runner")) + ((file-exists? "Makefile") '("make" "check")) + (else #f))) + +(define* (check #:key tests? test-command (parallel-tests? #t) #:allow-other-keys) "Run the tests by invoking TEST-COMMAND. When TEST-COMMAND uses make and PARALLEL-TESTS is #t, the tests are run in parallel. PARALLEL-TESTS? is ignored when using a non-make TEST-COMMAND." - (match-let (((test-program . args) test-command)) - (let ((using-make? (string=? test-program "make"))) - (if tests? - (apply invoke test-program - `(,@args - ,@(if (and using-make? parallel-tests?) - `("-j" ,(number->string (parallel-job-count))) - '()))) - (begin - (format #t "test suite not run~%") - #t))))) + (match (and tests? (check-command test-command)) + ((test-program . args) + (let ((using-make? (string=? test-program "make"))) + (apply invoke test-program + `(,@args + ,@(if (and using-make? parallel-tests?) + `("-j" ,(number->string (parallel-job-count))) + '()))))) + (#f + (if tests? + (begin + (display "warning: test system not found.\n") + (display "note: this will be an error in the future.\n")) + (display "test suite not run\n"))))) (define* (install #:key outputs (include %default-include) |