Index: subrun.scm ================================================================== --- subrun.scm +++ subrun.scm @@ -85,17 +85,14 @@ (configf:write-alist testconfig "testconfig.subrun"))) (define (subrun:set-state-status test-run-dir state status new-state-status) (if (and (not (subrun:subrun-removed? test-run-dir)) (subrun:subrun-test-initialized? test-run-dir)) - (let* ((action-switches-str - (conc "-set-state-status "new-state-status - (if state (conc " -state "state) "") - (if status (conc " -status "status) ""))) - (log-prefix (conc "set-state-status="new-state-status - (if state (conc ":state="state) "") - (if status (conc "+status="status) ""))) + (let* ((log-prefix (subrun:sanitize-path + (conc "set-state-status="new-state-status + (if state (conc ":state="(state) "") + (if status (conc "+status="status) ""))))) (submt-result (subrun:exec-sub-megatest test-run-dir action-switches-str log-prefix))) submt-result))) (define (subrun:remove-subrun test-run-dir keep-records ) @@ -122,10 +119,16 @@ (run-wait #t) (cmd (conc "megatest -run "switches" " (if run-wait "-run-wait " "")))) cmd)) + +(define (subrun:sanitize-path inpath) + (let* ((insane-pattern (irregex "[^[a-zA-Z0-9_\\-]"))) + (regex#string-substitute insane-pattern "_" inpath #t))) + +(subrun:sanitize-path "a/b/c-d/e*f") (define (subrun:get-runarea test-run-dir) (if (subrun:subrun-test-initialized? test-run-dir) (let* ((info-alist (subrun:selector+log-alist test-run-dir @@ -167,19 +170,19 @@ ;; define compact-stem for logfile (target (alist-ref "-target" switch-alist-pre equal? #f)) ;; want data-structures alist-ref, not alist-lib alist-ref (runname (alist-ref "-runname" switch-alist-pre equal? #f)) - (compact-stem (string-substitute "[/*]" "_" - (conc - target - "-" - runname - "-" (or testpatt mode-patt tag-expr "NO-TESTPATT")))) + (compact-stem (subrun:sanitize-path + (conc + target + "-" + runname + "-" (or testpatt mode-patt tag-expr "NO-TESTPATT")))) (logfile (conc test-run-dir "/" - (or log-prefix "") + (or (subrun:sanitize-path log-prefix) "") (if log-prefix "-" "") compact-stem ".log")) ;; swap out testpatt with modified test-patt and add -log (switch-alist (cons