Index: launch.scm ================================================================== --- launch.scm +++ launch.scm @@ -1378,13 +1378,15 @@ (not (directory-exists? toptest-path))) (begin (debug:print-info 2 *default-log-port* "Creating " toptest-path " and link " lnkpath) (handle-exceptions exn - (begin - (debug:print 0 *default-log-port* "failed to create directory " toptest-path ", exn=" exn) - #f) + (if (directory-exists? toptest-path) ;; it was likely created in parallel + #t + (begin + (debug:print-info 0 *default-log-port* "failed to create directory " toptest-path ", exn=" exn) + #f)) (create-directory toptest-path #t)) (hash-table-set! *toptest-paths* testname toptest-path))))) ;; The toptest path has been created, the link to the test in the linktree has ;; been created. Now, if this is an iterated test the real test dir must be created @@ -1392,14 +1394,16 @@ (begin ;; (let ((lnktarget (conc lnkpath "/" item-path))) (debug:print 2 *default-log-port* "Setting up sub test run area") (debug:print 2 *default-log-port* " - creating run area in " test-path) (handle-exceptions exn - (begin - (debug:print-error 0 *default-log-port* " Failed to create directory " test-path ((condition-property-accessor 'exn 'message) exn) - ", exiting, exn=" exn) - (exit 1)) + (if (directory-exists? test-path) + #t + (begin + (debug:print-error 0 *default-log-port* " Failed to create directory " test-path ((condition-property-accessor 'exn 'message) exn) + ", exiting, exn=" exn) + (exit 1))) (create-directory test-path #t)) (debug:print 2 *default-log-port* " - creating link from: " test-path "\n" " to: " lnktarget)