Index: launch.scm ================================================================== --- launch.scm +++ launch.scm @@ -404,11 +404,11 @@ ))))) ;; then, if runscript ran ok (or did not get called) ;; do all the ezsteps (if any) (if ezsteps (let* ((testconfig ;; (read-config (conc work-area "/testconfig") #f #t environ-patt: "pre-launch-env-vars")) ;; FIXME??? is allow-system ok here? - (tests:get-testconfig test-name tconfigreg #t)) ;; 'return-procs))) + (tests:get-testconfig test-name tconfigreg #t force-create: #t)) ;; 'return-procs))) (ezstepslst (hash-table-ref/default testconfig "ezsteps" '()))) (hash-table-set! *testconfigs* test-name testconfig) ;; cached for lazy reads later ... (if (not (file-exists? ".ezsteps"))(create-directory ".ezsteps")) ;; if ezsteps was defined then we are sure to have at least one step but check anyway (if (not (> (length ezstepslst) 0)) @@ -856,11 +856,11 @@ )) (let* ((tregistry (tests:get-all)) (item-path (let ((ip (item-list->path itemdat))) (alist->env-vars (list (list "MT_ITEMPATH" ip))) ip)) - (tconfig (or (tests:get-testconfig test-name tregistry #t) + (tconfig (or (tests:get-testconfig test-name tregistry #t force-create: #t) test-conf)) ;; force re-read now that all vars are set (useshell (let ((ush (config-lookup *configdat* "jobtools" "useshell"))) (if ush (if (equal? ush "no") ;; must use "no" to NOT use shell #f Index: tests.scm ================================================================== --- tests.scm +++ tests.scm @@ -728,18 +728,20 @@ (getenv "MT_TEST_NAME") "/" (if (or (getenv "MT_ITEMPATH") (not (string=? "" (getenv "MT_ITEMPATH")))) (conc "/" (getenv "MT_ITEMPATH")))))) -(define (tests:get-testconfig test-name test-registry system-allowed) +(define (tests:get-testconfig test-name test-registry system-allowed #!key (force-create #f)) (let* ((test-path (hash-table-ref/default test-registry test-name (conc *toppath* "/tests/" test-name))) (test-configf (conc test-path "/testconfig")) (testexists (and (file-exists? test-configf)(file-read-access? test-configf))) (cache-path (tests:get-test-path-from-environment)) - (cache-exists (and cache-path (file-exists? (conc cache-path "/.testconfig")))) + (cache-exists (and cache-path + (not force-create) ;; if force-create then pretend there is no cache to read + (file-exists? (conc cache-path "/.testconfig")))) (cache-file (conc cache-path "/.testconfig")) (tcfg (if testexists (or (and cache-exists (handle-exceptions exn