Megatest

Check-in [7c04317658]
Login
Overview
Comment:Add unit as target from top dir.
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | v1.65
Files: files | file ages | folders
SHA1: 7c04317658e9e33cc13113d833b0dff1c92c134e
User & Date: mrwellan on 2019-09-16 16:19:33
Other Links: branch diff | manifest | tags
Context
2019-09-19
14:52
update to pgdb sync to have publish time check-in: 8f2462ead6 user: pjhatwal tags: v1.65
2019-09-16
16:49
Merged in v1.65 Leaf check-in: 3e30a98977 user: mrwellan tags: v1.65-code-cleanup-new
16:37
Merged stuff from v1.65 Closed-Leaf check-in: aa7059651c user: mrwellan tags: v1.65-code-cleanup
16:19
Add unit as target from top dir. check-in: 7c04317658 user: mrwellan tags: v1.65
2019-09-05
15:29
Added some initial checks at the beginning of all-rmt.scm to gate the more complex tests from simple problems. check-in: 20a8d29b9b user: mrwellan tags: v1.65
Changes

Modified Makefile from [faa6114119] to [065958ca05].

420
421
422
423
424
425
426



420
421
422
423
424
425
426
427
428
429







+
+
+

viewmanual:
	arora docs/manual/megatest_manual.html

targets:
	@grep : Makefile | perl -ne '/^([A-Za-z0-9_-]+):/ && print "$$1\n"'


unit :
	cd tests;make unit

Modified runs.scm from [ce693176ff] to [ad75a6f8e3].

357
358
359
360
361
362
363




364
365
366
367
368
369
370
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374







+
+
+
+







	      (system (conc run-post-hook " >> " actual-logf " 2>&1"))
	      (debug:print-info 0 *default-log-port* "post-hook \"" run-post-hook "\" took " (- (current-seconds) start-time) " seconds to run."))))))

;; return #t when all items in waitors-upon list are represented in test-patt, #f otherwise.
(define (runs:testpatts-mention-waitors-upon? test-patt waitors-upon)
  (null? (tests:filter-test-names-not-matched waitors-upon test-patt)))

;;======================================================================
;; runs:run-tests is called from megatest.scm and itself
;;======================================================================
;;
;;  test-names: Comma separated patterns same as test-patts but used in selection 
;;              of tests to run. The item portions are not respected.
;;              FIXME: error out if /patt specified
;;            
(define (runs:run-tests target runname test-patts user flags #!key (run-count 1)) ;; test-names
  (let* ((keys               (keys:config-get-fields *configdat*))
	 (keyvals            (keys:target->keyval keys target))
733
734
735
736
737
738
739




740
741
742
743
744
745
746
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754







+
+
+
+







;;    => review of a previously seen test is higher priority of never visited test
;; reg - list of previously visited tests
;; tal - list of never visited tests
;;   prefer next hed to be from reg than tal.

(define runs:nothing-left-in-queue-count 0)

;;======================================================================
;; runs:expand-items is called by runs:run-tests-queue
;;======================================================================
;;
;; return value of runs:expand-items is passed back to runs-tests-queue and is fed to named loop with this signature:
;;    (let loop ((hed         (car sorted-test-names))
;;	         (tal         (cdr sorted-test-names))
;;	         (reg         '()) ;; registered, put these at the head of tal 
;;	         (reruns      '()))
(define (runs:expand-items hed tal reg reruns regfull newtal jobgroup max-concurrent-jobs run-id waitons item-path testmode test-record can-run-more items runname tconfig reglen test-registry test-records itemmaps)
  (let* ((loop-list       (list hed tal reg reruns))
1313
1314
1315
1316
1317
1318
1319




1320
1321
1322
1323
1324
1325
1326
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338







+
+
+
+







    (runs:gendat-inc-results-last-update-set! *runs:general-data* (- curr-sec 10))))

;; every time though the loop increment the test/itempatt val.
;; when the min is > max-allowed and none running then force exit
;;
(define *max-tries-hash* (make-hash-table))

;;======================================================================
;; runs:run-tests-queue is called by runs:run-tests
;;======================================================================
;;
;; test-records is a hash table testname:item_path => vector < testname testconfig waitons priority items-info ... >
(define (runs:run-tests-queue run-id runname test-records keyvals flags test-patts required-tests reglen-in all-tests-registry)
  ;; 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 *default-log-port* "test-records: " test-records ", flags: " (hash-table->alist flags))

  ;; Do mark-and-find clean up of db before starting runing of quue
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1394
1395
1396
1397
1398
1399
1400


1401
1402
1403
1404
1405
1406
1407







-
-







    (set! max-retries (if (and max-retries (string->number max-retries))(string->number max-retries) 100))

    (let loop ((hed         (car sorted-test-names))
               (tal         (cdr sorted-test-names))
	       (reg         '()) ;; registered, put these at the head of tal 
	       (reruns      '()))

      
      
      (runs:incremental-print-results run-id)

      (if (not (null? reruns))(debug:print-info 4 *default-log-port* "reruns=" reruns))

      ;; Here we mark any old defunct tests as incomplete. Do this every fifteen minutes
      ;; moving this to a parallel thread and just run it once.
      ;;