Megatest

Check-in [a944a39310]
Login
Overview
Comment:Added configuration control for max-retries
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | test-specific-db
Files: files | file ages | folders
SHA1: a944a393107a7e32dc1641417976d235c6496c38
User & Date: matt on 2012-09-27 10:30:46
Other Links: branch diff | manifest | tags
Context
2012-09-27
12:41
Fixed wrong ordering on maxretries if not defined check-in: ccfbba74c4 user: matt tags: test-specific-db
10:30
Added configuration control for max-retries check-in: a944a39310 user: matt tags: test-specific-db
09:30
Bumped version check-in: 45a92d8798 user: matt tags: test-specific-db
Changes

Modified runs.scm from [ac403afd49] to [8808e6f240].

288
289
290
291
292
293
294
295



296
297
298
299
300
301
302
288
289
290
291
292
293
294

295
296
297
298
299
300
301
302
303
304







-
+
+
+







(define (runs:run-tests-queue run-id runname test-records keyvallst flags)
    ;; At this point the list of parent tests is expanded 
    ;; NB// Should expand items here and then insert into the run queue.
  (debug:print 5 "test-records: " test-records ", keyvallst: " keyvallst " flags: " (hash-table->alist flags))
  (let ((sorted-test-names (tests:sort-by-priority-and-waiton test-records))
	(item-patts        (hash-table-ref/default flags "-itempatt" #f))
	(test-registery    (make-hash-table))
	(num-retries        0))
	(num-retries        0)
	(max-retries       (config-lookup *configdat* "setup" "maxretries")))
    (if (and max-retries (string->number max-retries))(set! max-retries (string->number max-retries)) 100)
    (if (not (null? sorted-test-names))
	(let loop ((hed         (car sorted-test-names))
		   (tal         (cdr sorted-test-names))
		   (reruns      '()))
	  (if (not (null? reruns))(debug:print 4 "INFO: reruns=" reruns))
	  (let* ((test-record (hash-table-ref test-records hed))
		 (test-name   (tests:testqueue-get-testname test-record))
505
506
507
508
509
510
511
512

513
514
515
516
517
518
519
507
508
509
510
511
512
513

514
515
516
517
518
519
520
521







-
+







		(if (not *runremote*)(exit)) ;; 
		#f) ;; return a #f as a hint that we are done
	      ;; Here we need to check that all the tests remaining to be run are eligible to run
	      ;; and are not blocked by failed
	      (let* ((newlst (open-run-close tests:filter-non-runnable #f run-id tal test-records)) ;; i.e. not FAIL, WAIVED, INCOMPLETE, PASS, KILLED,
		     (junked (lset-difference equal? tal newlst)))
		(debug:print 4 "INFO: full drop through, if reruns is less than 100 we will force retry them: " reruns)
		(if (< num-retries 100)
		(if (< num-retries max-retries)
		    (set! newlst (append reruns newlst)))
		(set! num-retries (+ num-retries 1))
		(thread-sleep! *global-delta*)
		(if (not (null? newlst))
		    ;; since reruns have been tacked on to newlst create new reruns from junked
		    (loop (car newlst)(cdr newlst)(delete-duplicates junked)))))))))

Modified tests/fullrun/megatest.config from [f619762d30] to [ad0623f776].

11
12
13
14
15
16
17



18
19
20
21
22
23
24
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27







+
+
+







[include config/mt_include_1.config]

[setup]
# FULL or 2, NORMAL or 1, OFF or 0
synchronous OFF
# Throttle roughly scales the db access milliseconds to seconds delay
throttle 0.02
# Max retries allows megatest to re-check that a tests status has changed
# as tests can have transient FAIL status occasionally
maxretries 200

[validvalues]
state start end 
status pass fail n/a 0 1 running

# These are set before all tests, override them 
# in the testconfig [pre-launch-env-overrides] section