Index: launch.scm ================================================================== --- launch.scm +++ launch.scm @@ -80,11 +80,12 @@ (define (launch:runstep ezstep run-id test-id exit-info m tal testconfig) (let* ((stepname (car ezstep)) ;; do stuff to run the step (stepinfo (cadr ezstep)) (stepparts (string-match (regexp "^(\\{([^\\}]*)\\}\\s*|)(.*)$") stepinfo)) - (stepparms (list-ref stepparts 2)) ;; for future use, {VAR=1,2,3}, run step for each + (stepparms (list-ref stepparts 2)) ;; for future use, {VAR=1,2,3}, run step for each + (paramparts (string-split (stepcmd (list-ref stepparts 3)) (script "") ; "#!/bin/bash\n") ;; yep, we depend on bin/bash FIXME!!!\ (logpro-file (conc stepname ".logpro")) (html-file (conc stepname ".html")) (dat-file (conc stepname ".dat")) @@ -333,15 +334,18 @@ (runname (configf:lookup testconfig "subrun" "runname")) (contour (configf:lookup testconfig "subrun" "contour")) (testpatt (configf:lookup testconfig "subrun" "testpatt")) (mode-patt (configf:lookup testconfig "subrun" "mode-patt")) (tag-expr (configf:lookup testconfig "subrun" "tag-expr")) + (compact-stem (string-substitute "[/*]" "_" (conc target "-" runname "-" (or testpatt mode-patt tag-expr)))) + (log-file (conc compact-stem ".log")) (mt-cmd (conc "megatest -run -target " target " -runname " runname (if testpatt (conc " -testpatt " testpatt) "") (if mode-patt (conc " -modepatt " mode-patt) "") - (if tag-expr (conc " -tag-expr" tag-expr) "")))) + (if tag-expr (conc " -tag-expr" tag-expr) "") + " -log " log-file))) ;; change directory to runarea, create it if needed, we do NOT create the directory (if runarea (if (directory-exists? runarea) (change-directory runarea) (begin @@ -348,12 +352,14 @@ (debug:print 0 *default-log-port* "ERROR: for sub-megatest run the runarea \"" runarea "\" does not exist! EXITING.") (exit 1))) (let ((subrun (conc *toppath* "/subrun") #t)) (create-directory subrun) (change-directory subrun))) - ;; by this point we are in the right place to run the subrun - + ;; by this point we are in the right place to run the subrun and we have a Megatest command to run + ;; (filter (lambda (x)(string-match "MT_.*" (car x))) (get-environment-variables)) + (common:without-vars mt-cmd "^MT_.*") + ))) (define (launch:monitor-job run-id test-id item-path fullrunscript ezsteps test-name tconfigreg exit-info m work-area runtlim misc-flags) (let* ((update-period (string->number (or (configf:lookup *configdat* "setup" "test-stats-update-period") "30"))) (start-seconds (current-seconds))