Megatest

Diff
Login

Differences From Artifact [a20a5610e0]:

To Artifact [7ddd024109]:


1314
1315
1316
1317
1318
1319
1320









1321

1322
1323
1324
1325
1326
1327
1328
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329

1330
1331
1332
1333
1334
1335
1336
1337







+
+
+
+
+
+
+
+
+
-
+







;; 1. look though disks list for disk with most space
;; 2. create run dir on disk, path name is meaningful
;; 3. create link from run dir to megatest runs area 
;; 4. remotely run the test on allocated host
;;    - could be ssh to host from hosts table (update regularly with load)
;;    - could be netbatch
;;      (launch-test db (cadr status) test-conf))

(define (launch-test . args)
  (let ((child-pid (process-fork)))
    (if (zero? child-pid)
        (begin
          (set! *common:local-force-server* 'always)
          (apply launch-test-inner args))
        #t)))

(define (launch-test test-id run-id run-info keyvals runname test-conf test-name test-path itemdat params)
(define (launch-test-inner test-id run-id run-info keyvals runname test-conf test-name test-path itemdat params)
  (mutex-lock! *launch-setup-mutex*) ;; setting variables and processing the testconfig is NOT thread-safe, reuse the launch-setup mutex
  (let* ( ;; (lock-key        (conc "test-" test-id))
	;; (got-lock        (let loop ((lock        (rmt:no-sync-get-lock lock-key))
	;; 			     (expire-time (+ (current-seconds) 15))) ;; give up on getting the lock and steal it after 15 seconds
	;; 		    (if (car lock)
	;; 			#t
	;; 			(if (> (current-seconds) expire-time)