Megatest

Check-in [19393196c4]
Login
Overview
Comment:Changed the propagate-exit-code option to be a boolean, under setup
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | v1.65 | v1.6587
Files: files | file ages | folders
SHA1: 19393196c4b2fd9d4161fd436929935a4dd1dd42
User & Date: mmgraham on 2021-07-22 14:34:11
Other Links: branch diff | manifest | tags
Context
2021-10-20
20:31
Fixed bug where subrun would never end due to runwait where the subrun is part of the current run (i.e. it waits forever for itself to end). check-in: 9ecc1c4e98 user: matt tags: v1.65
2021-07-22
14:34
Changed the propagate-exit-code option to be a boolean, under setup check-in: 19393196c4 user: mmgraham tags: v1.65, v1.6587
2021-07-14
12:02
changed version to 1.6587 check-in: c9265361eb user: mmgraham tags: v1.65
Changes

Modified launch.scm from [127322d5d4] to [231cf28235].

660
661
662
663
664
665
666
667




668
669
670
671
672
673

674
675
676
677
678
679
680
660
661
662
663
664
665
666

667
668
669
670
671
672
673
674
675

676
677
678
679
680
681
682
683







-
+
+
+
+





-
+







		 (runit        (lambda ()
				 (launch:manage-steps run-id test-id item-path fullrunscript ezsteps subrun test-name tconfigreg exit-info m)))
		 (monitorjob   (lambda ()
				 (launch:monitor-job  run-id test-id item-path fullrunscript ezsteps test-name tconfigreg exit-info m work-area runtlim misc-flags)))
		 (th1          (make-thread monitorjob "monitor job"))
		 (th2          (make-thread runit "run job"))
                 (tconfig         (tests:get-testconfig test-name item-path tconfigreg #t))
                 (propagate-exit-code (configf:lookup tconfig   "requirements" "propagate-exit-code")))
                 (propagate-exit-code (configf:lookup *configdat* "setup" "propagate-exit-code"))
                 (propagate-status-list '("FAIL" "KILLED" "ABORT" "DEAD" "CHECK" "SKIP" "WAIVED"))
                 (test-status "not set")
                 )
	    (set! job-thread th2)
	    (thread-start! th1)
	    (thread-start! th2)
	    (thread-join! th2)
	    (debug:print-info 0 *default-log-port* "Megatest execute of test " test-name ", item path " item-path " complete. Notifying the db ...")
            (debug:print-info 0 *default-log-port* "exit-info = " exit-info)
            (debug:print-info 2 *default-log-port* "exit-info = " exit-info)
	    (hash-table-set! misc-flags 'keep-going #f)
	    (thread-join! th1)
	    (thread-sleep! 1)       ;; givbe thread th1 a chance to be done TODO: Verify this is needed. At 0.1 I was getting fail to stop, increased to total of 1.1 sec.
	    (mutex-lock! m)
	    (let* ((item-path (item-list->path itemdat))
		   ;; only state and status needed - use lazy routine
		   (testinfo  (rmt:get-testinfo-state-status run-id test-id)))
721
722
723
724
725
726
727
728
729
730











731
732
733
734
735
736
737
724
725
726
727
728
729
730



731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748







-
-
-
+
+
+
+
+
+
+
+
+
+
+







	      (rmt:update-run-stats run-id (rmt:get-raw-run-stats run-id))) ;; end of let*

	    (mutex-unlock! m)
            (launch:end-of-run-check run-id )
	    (debug:print 2 *default-log-port* "Output from running " fullrunscript ", pid " (launch:einf-pid exit-info) " in work area " 
			 work-area ":\n====\n exit code " (launch:einf-exit-code exit-info) "\n" "====\n")

            ;; If the propagate-exit-code option has been set in the testconfig, and the test status matches the list, set the exit code to 1.
            (if (and propagate-exit-code (member (db:test-get-status (rmt:get-testinfo-state-status run-id test-id)) (string-split propagate-exit-code ",")))
                (set! *globalexitstatus* 1))

            (set! test-status (db:test-get-status (rmt:get-testinfo-state-status run-id test-id)))

            ;; If the propagate-exit-code option has been set in the megatest config, and the test status matches the list, set the exit code to 1.

            (if (and propagate-exit-code (string=? propagate-exit-code "yes") (member test-status propagate-status-list))
               (begin
                (debug:print 1 *default-log-port* "Setting exit status to 1 because of test status of " test-status) 
                (set! *globalexitstatus* 1)
               )
            )

	    (if (not (launch:einf-exit-status exit-info))
		(exit 4))))
        )))

;; Spec for End of test
;; At end of each test call, after marking self as COMPLETED do run-state-status-rollup