~ chicken-core (chicken-5) c646d9fce514aac08b773126cb89b9878f19a597
commit c646d9fce514aac08b773126cb89b9878f19a597 Author: felix <felix@call-with-current-continuation.org> AuthorDate: Wed Mar 1 14:39:29 2017 +0100 Commit: felix <felix@call-with-current-continuation.org> CommitDate: Wed Mar 1 14:39:29 2017 +0100 chicken-install: only run tests for explicitly named eggs, exit immediately if tests fail diff --git a/chicken-install.scm b/chicken-install.scm index f3d6d2a8..5b4a7148 100644 --- a/chicken-install.scm +++ b/chicken-install.scm @@ -76,6 +76,7 @@ (define no-install #f) (define list-versions-only #f) (define canonical-eggs '()) +(define tested-eggs '()) (define dependencies '()) (define checked-eggs '()) (define run-tests #f) @@ -86,7 +87,6 @@ (define sudo-program (or (get-environment-variable "SUDO") "sudo")) (define update-module-db #f) (define purge-mode #f) -(define tests-failed #f) (define keepfiles #f) (define print-repository #f) @@ -787,7 +787,9 @@ (unless no-install (print " installing " name) (run-script dir iscript platform sudo: sudo-install)) - (when run-tests (test-egg egg platform))))) + (when (and (member name tested-eggs) + (not (test-egg egg platform))) + (exit 2))))) (when target-extension (let-values (((build install info) (compile-egg-info info platform 'target))) (let ((bscript (make-pathname dir name @@ -944,6 +946,8 @@ (map (lambda (fname) (list (pathname-file fname) (current-directory) #f)) files)) + (when run-tests + (set! tested-eggs (map car canonical-eggs))) (retrieve-eggs '()) (unless retrieve-only (install-eggs))))) (else @@ -951,9 +955,10 @@ (cond (list-versions-only (list-egg-versions eggs)) ;;XXX other actions... (else + (when run-tests + (set! tested-eggs (map (o car canonical) eggs))) (retrieve-eggs eggs) - (unless retrieve-only (install-eggs))))))) - (when tests-failed (exit 2))) + (unless retrieve-only (install-eggs)))))))) (define (usage code) (print #<<EOFTrap