Megatest

Check-in [031fcf1466]
Login
Overview
Comment:re-Fixed crash from empty items list
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | v1.55 | v1.5506
Files: files | file ages | folders
SHA1: 031fcf1466035041c343df9d800f6b7d592e6d6c
User & Date: mrwellan on 2013-06-27 13:06:27
Other Links: branch diff | manifest | tags
Context
2013-07-08
15:37
merged development changes in for release as v1.5507 check-in: 89189a93ab user: mrwellan tags: v1.55
2013-06-28
01:05
Merged v1.55 changes into development check-in: e179e9c7b6 user: matt tags: dev
2013-06-27
13:06
re-Fixed crash from empty items list check-in: 031fcf1466 user: mrwellan tags: v1.55, v1.5506
12:53
re-Fixed crash from empty items list check-in: 7ba7704d24 user: mrwellan tags: v1.55, v1.5506
Changes

Modified runs.scm from [a0ac827331] to [381e7aa17b].

639
640
641
642
643
644
645
646
647
648


649
650
651
652
653
654
655
656
657
658
659
660
661
662

663

664
665
666
667
668
669
670
	 ((and (list? items)     ;; thus we know our items are already calculated
	       (not   itemdat))  ;; and not yet expanded into the list of things to be done
	  (debug:print-info 4 "OUTER COND: (and (list? items)(not itemdat))")
	  ;; Must determine if the items list is valid. Discard the test if it is not.
	  (if (and (list? items)
		   (> (length items) 0)
		   (and (list? (car items))
			(> (length (car items)) 0)))
	      (begin
		(if (debug:debug-mode 1)(pp items))


		(for-each
		 (lambda (my-itemdat)
		   (let* ((new-test-record (let ((newrec (make-tests:testqueue)))
					     (vector-copy! test-record newrec)
					     newrec))
			  (my-item-path (item-list->path my-itemdat)))
		     (if (tests:match test-patts hed my-item-path required: required-tests) ;; (patt-list-match my-item-path item-patts)           ;; yes, we want to process this item, NOTE: Should not need this check here!
			 (let ((newtestname (runs:make-full-test-name hed my-item-path)))    ;; test names are unique on testname/item-path
			   (tests:testqueue-set-items!     new-test-record #f)
			   (tests:testqueue-set-itemdat!   new-test-record my-itemdat)
			   (tests:testqueue-set-item_path! new-test-record my-item-path)
			   (hash-table-set! test-records newtestname new-test-record)
			   (set! tal (append tal (list newtestname))))))) ;; since these are itemized create new test names testname/itempath
		 items))

	      (debug:print-info 0 "Test " (tests:testqueue-get-testname test-record) " is itemized but has no items"))

	  ;; At this point we have possibly added items to tal but all must be handed off to 
	  ;; INNER COND logic. I think loop without rotating the queue 
	  ;; (loop hed tal reg reruns))
	  ;; (let ((newtal (append tal (list hed))))  ;; We should discard hed as it has been expanded into it's items? Yes, but only if this *is* an itemized test
	  ;; (loop (car newtal)(cdr newtal) reg reruns)
	  (if (null? tal)
	      #f







|
<
|
>
>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
>
|
>







639
640
641
642
643
644
645
646

647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
	 ((and (list? items)     ;; thus we know our items are already calculated
	       (not   itemdat))  ;; and not yet expanded into the list of things to be done
	  (debug:print-info 4 "OUTER COND: (and (list? items)(not itemdat))")
	  ;; Must determine if the items list is valid. Discard the test if it is not.
	  (if (and (list? items)
		   (> (length items) 0)
		   (and (list? (car items))
			(> (length (car items)) 0))

		   (debug:debug-mode 1))
	      (pp items))
	  
	  (for-each
	   (lambda (my-itemdat)
	     (let* ((new-test-record (let ((newrec (make-tests:testqueue)))
				       (vector-copy! test-record newrec)
				       newrec))
		    (my-item-path (item-list->path my-itemdat)))
	       (if (tests:match test-patts hed my-item-path required: required-tests) ;; (patt-list-match my-item-path item-patts)           ;; yes, we want to process this item, NOTE: Should not need this check here!
		   (let ((newtestname (runs:make-full-test-name hed my-item-path)))    ;; test names are unique on testname/item-path
		     (tests:testqueue-set-items!     new-test-record #f)
		     (tests:testqueue-set-itemdat!   new-test-record my-itemdat)
		     (tests:testqueue-set-item_path! new-test-record my-item-path)
		     (hash-table-set! test-records newtestname new-test-record)
		     (set! tal (append tal (list newtestname))))))) ;; since these are itemized create new test names testname/itempath
	   items)

	  ;; (debug:print-info 0 "Test " (tests:testqueue-get-testname test-record) " is itemized but has no items")

	  ;; At this point we have possibly added items to tal but all must be handed off to 
	  ;; INNER COND logic. I think loop without rotating the queue 
	  ;; (loop hed tal reg reruns))
	  ;; (let ((newtal (append tal (list hed))))  ;; We should discard hed as it has been expanded into it's items? Yes, but only if this *is* an itemized test
	  ;; (loop (car newtal)(cdr newtal) reg reruns)
	  (if (null? tal)
	      #f