Index: db.scm ================================================================== --- db.scm +++ db.scm @@ -881,10 +881,16 @@ (define (db:test-set-rundir! db run-id test-name item-path rundir) (sqlite3:execute db "UPDATE tests SET rundir=? WHERE run_id=? AND testname=? AND item_path=?;" rundir run-id test-name item-path)) + +(define (db:test-set-rundir-by-test-id! db test-id rundir) + (sqlite3:execute + db + "UPDATE tests SET rundir=? WHERE id=?" + rundir test-id)) ;; (define (db:test-get-rundir-from-test-id db test-id) (let ((res (hash-table-ref/default *test-paths* test-id #f))) (if res Index: launch.scm ================================================================== --- launch.scm +++ launch.scm @@ -413,11 +413,11 @@ (lnkbase (conc linktree "/" target "/" runname)) (lnkpath (conc lnkbase "/" testname)) (lnkpathf (conc lnkpath (if not-iterated "" "/") item-path))) ;; Update the rundir path in the test record for all - (db:test-set-rundir! db run-id testname item-path lnkpathf) + (db:test-set-rundir-by-test-id! db test-id lnkpathf) (debug:print 2 "INFO:\n lnkbase=" lnkbase "\n lnkpath=" lnkpath "\n toptest-path=" toptest-path "\n test-path=" test-path) (if (not (file-exists? linktree)) (begin (debug:print 0 "WARNING: linktree did not exist! Creating it now at " linktree) Index: runs.scm ================================================================== --- runs.scm +++ runs.scm @@ -415,12 +415,12 @@ (loop (car newtal)(cdr newtal) reruns)) ((and have-resources (or (null? prereqs-not-met) (and (eq? testmode 'toplevel) (null? non-completed)))) - ;; no loop here, just drop though and use the loop at the bottom (run:test run-id runname keyvallst test-record flags #f) + (thread-sleep! *global-delta*) (if (not (null? tal)) (loop (car tal)(cdr tal) reruns))) (else ;; must be we have unmet prerequisites (debug:print 4 "FAILS: " fails) ;; If one or more of the prereqs-not-met are FAIL then we can issue