diff options
author | Wojtek Kosior <koszko@koszko.org> | 2023-12-07 09:58:14 +0100 |
---|---|---|
committer | Wojtek Kosior <koszko@koszko.org> | 2023-12-12 19:18:26 +0100 |
commit | dae06b96848965f7d1b7e2f954d2f8faea50d9cc (patch) | |
tree | 0f30216cb806d32ee28df0224a91f1bbf233b9b3 | |
parent | d307e7dd8ce4d16657f49a4d5e0629212e568386 (diff) | |
download | myra-test-utils-apprentice.tar.gz myra-test-utils-apprentice.zip |
Make `--test-name` optional and start using `TEST-SCRIPT` argument.HEADapprentice
* src/guile/myra-test-utils/driver.scm (define-module): Import
`match:substring`.
(show-help): Display `--test-name` as a non-mandatory option.
(run-test-driver): Use the first non-option argument as the script name to load.
Make test name default to the script name. Allow loading compiled version of
the test script.
-rwxr-xr-x | src/guile/myra-test-utils/driver.scm | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/src/guile/myra-test-utils/driver.scm b/src/guile/myra-test-utils/driver.scm index 0369fe1..8331463 100755 --- a/src/guile/myra-test-utils/driver.scm +++ b/src/guile/myra-test-utils/driver.scm @@ -30,7 +30,7 @@ #:use-module ((ice-9 format) #:select (format)) #:use-module ((ice-9 getopt-long) #:select (getopt-long option-ref)) #:use-module ((ice-9 pretty-print) #:select (pretty-print)) - #:use-module ((ice-9 regex) #:select (string-match)) + #:use-module ((ice-9 regex) #:select (string-match match:substring)) #:use-module ((srfi srfi-1) #:select (filter-map)) #:use-module ((srfi srfi-19) #:prefix s19:) #:use-module ((srfi srfi-26) #:select (cut)) @@ -42,7 +42,7 @@ (define (show-help) (display "Usage: - test-driver --test-name=NAME [--log-file=PATH] [--trs-file=PATH] + test-driver [--test-name=NAME] [--log-file=PATH] [--trs-file=PATH] [--expect-failure={yes|no}] [--color-tests={yes|no}] [--select=REGEXP] [--exclude=REGEXP] [--errors-only={yes|no}] [--enable-hard-errors={yes|no}] [--brief={yes|no}}] @@ -247,7 +247,11 @@ cases based on their names." (let* ((log (and=> (option 'log-file #f) (cut open-file <> "w0"))) (trs (and=> (option 'trs-file #f) (cut open-file <> "wl"))) (out (duplicate-port (current-output-port) "wl")) - (test-name (option 'test-name #f)) + (test-filename (car (option '() #f))) + (match-vec (string-match "([^/]*)\\.(scm|go)$" test-filename)) + (test-filename-base (match:substring match-vec 1)) + (test-dir (canonicalize-path (dirname test-filename))) + (test-name (option 'test-name test-filename)) (select (option 'select #f)) (exclude (option 'exclude #f)) (test-specifiers (filter-map @@ -284,7 +288,11 @@ convenient interactive line editing and input history.\n\n" #:out-port out #:trs-port trs) (s64:test-apply test-specifier (lambda _ - (load-from-path test-name))))) + (set! %load-path + (cons test-dir %load-path)) + (set! %load-compiled-path + (cons test-dir %load-compiled-path)) + (load-from-path test-filename-base))))) (and=> log close-port) (and=> trs close-port) (close-port out)))) |