Megatest

Check-in [c4fa1b9705]
Login
Overview
Comment:fixed problem with infinite loop during testpatt elaboration with % suffix
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | v1.64-elena-issues
Files: files | file ages | folders
SHA1: c4fa1b97052e48c0a69c5fc86d31de3335ee270b
User & Date: bjbarcla on 2017-11-16 15:42:25
Other Links: branch diff | manifest | tags
Context
2017-11-22
13:07
fixed problem where rerunning one item of a test kicked off all items Leaf check-in: 538dd190e2 user: bjbarcla tags: v1.64-elena-issues
2017-11-16
15:42
fixed problem with infinite loop during testpatt elaboration with % suffix check-in: c4fa1b9705 user: bjbarcla tags: v1.64-elena-issues
2017-11-15
11:59
fixed issue where on deleting item, toplevel status changed to REMOVING check-in: 126270785d user: bjbarcla tags: v1.64-elena-issues
Changes

Modified runs.scm from [c461b3bc6e] to [62ff3f02f9].

306
307
308
309
310
311
312
313
314
315
316
317
318
319

320
321
322
323
324
325
326
306
307
308
309
310
311
312







313
314
315
316
317
318
319
320







-
-
-
-
-
-
-
+







		  (debug:print 0 *default-log-port* "ERROR: failed to run post-hook " run-post-hook ", check the log " log-file))
	      (debug:print-info 0 *default-log-port* "running run-post-hook: \"" run-post-hook "\", log is " actual-logf)
	      (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)
  (let* ((tests-in-testpatt
          (map
           (lambda (test-patt-item)
             (car (string-split test-patt-item "/")))
           (string-split test-patt ",")))
         (waitors-upon-not-mentioned (lset-difference equal? waitors-upon tests-in-testpatt)))
    (null? waitors-upon-not-mentioned)))
  (null? (tests:filter-test-names-not-matched waitors-upon test-patt)))

;;  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*))
422
423
424
425
426
427
428


429
430
431
432
433
434
435
436
437
416
417
418
419
420
421
422
423
424
425

426
427
428
429
430
431
432







+
+

-








    ;; NEW STRATEGY HERE:
    ;; 1. fill required tests with test-patts
    ;; 2. scan testconfigs and if waitons, itemwait, itempatt calc prior test test-patt
    ;; 3. repeat until all deps propagated
    
    ;; any tests with direct mention in test-patts can be added to required
    ;;(set! required-tests     (lset-intersection equal? (string-split test-patts ",") all-test-names))
    (set! required-tests     (tests:filter-test-names all-test-names test-patts))
    ;;
    (set! required-tests     (lset-intersection equal? (string-split test-patts ",") all-test-names))
    ;; (set! required-tests     (lset-intersection equal? test-names all-test-names))
    
    ;; look up all tests matching the comma separated list of globs in
    ;; test-patts (using % as wildcard)

    ;; (set! test-names (delete-duplicates (tests:get-valid-tests *toppath* test-patts)))
    (debug:print-info 0 *default-log-port* "tests search path: " (string-intersperse (tests:get-tests-search-path *configdat*) " "))

Modified tests.scm from [ccdf018a4e] to [25c6f6e06b].

70
71
72
73
74
75
76







77
78
79
80
81
82
83
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90







+
+
+
+
+
+
+







			  (if (and (not (hash-table-ref/default test-registry tname #f))
				   (common:file-exists? tconfig))
			      (hash-table-set! test-registry tname test-path))))
		      (glob (conc hed "/*"))))
	(if (null? tal)
	    test-registry
	    (loop (car tal)(cdr tal))))))

(define (tests:filter-test-names-not-matched test-names test-patts)
  (delete-duplicates
   (filter (lambda (testname)
	     (not (tests:match test-patts testname #f)))
	   test-names)))


(define (tests:filter-test-names test-names test-patts)
  (delete-duplicates
   (filter (lambda (testname)
	     (tests:match test-patts testname #f))
	   test-names)))