Megatest

Check-in [adea88835b]
Login
Overview
Comment:Couple more tweaks to -runstep
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA1: adea88835b33da0656877ae2e01f228779628910
User & Date: mrwellan on 2011-05-06 14:33:13
Other Links: manifest | tags
Context
2011-05-07
13:20
Fixed redir snippet for bash check-in: 6696dc330f user: matt tags: trunk
2011-05-06
14:33
Couple more tweaks to -runstep check-in: adea88835b user: mrwellan tags: trunk
12:22
Partial checkin for fixes to -runstep check-in: 0add4d5d70 user: mrwellan tags: trunk
Changes

Modified megatest.scm from [7b8d24e9fd] to [786c6b8984].

437
438
439
440
441
442
443

444

445
446
447
448
449
450
451
437
438
439
440
441
442
443
444

445
446
447
448
449
450
451
452







+
-
+







(if (or (args:get-arg "-setlog")       ;; since setting up is so costly lets piggyback on -test-status
	(args:get-arg "-test-status")
	(args:get-arg "-runstep"))
    (if (not (getenv "MT_CMDINFO"))
	(begin
	  (print "ERROR: MT_CMDINFO env var not set, commands -test-status, -runstep and -setlog must be called *inside* a megatest environment!")
	  (exit 5))
	(let* ((startingdir (current-directory))
	(let* ((cmdinfo   (read (open-input-string (base64:base64-decode (getenv "MT_CMDINFO")))))
	       (cmdinfo   (read (open-input-string (base64:base64-decode (getenv "MT_CMDINFO")))))
	       (testpath  (assoc/default 'testpath  cmdinfo))
	       (test-name (assoc/default 'test-name cmdinfo))
	       (runscript (assoc/default 'runscript cmdinfo))
	       (db-host   (assoc/default 'db-host   cmdinfo))
	       (run-id    (assoc/default 'run-id    cmdinfo))
	       (itemdat   (assoc/default 'itemdat   cmdinfo))
	       (db        #f)
469
470
471
472
473
474
475

476
477


478
479
480
481
482
483
484
485
486
487



488
489
490
491
492
493
494




495
496
497
498
499
500
501
502







503
504
505
506
507
508
509
470
471
472
473
474
475
476
477


478
479
480
481
482
483
484
485
486



487
488
489
490
491
492
493
494


495
496
497
498
499
500
501





502
503
504
505
506
507
508
509
510
511
512
513
514
515







+
-
-
+
+







-
-
-
+
+
+





-
-
+
+
+
+



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







			(exit 6)))))
	  (if (args:get-arg "-runstep")
	      (if (null? remargs)
		  (begin
		    (print "ERROR: nothing specified to run!")
		    (sqlite3:finalize! db)
		    (exit 6))
		  (let* ((stepname   (args:get-arg "-runstep"))
		  (let* ((logprofile (args:get-arg "-logpro"))
			 (logfile    (conc test-name ".log"))
			 (logprofile (args:get-arg "-logpro"))
			 (logfile    (conc stepname ".log"))
			 (cmd        (if (null? remargs) #f (car remargs)))
			 (params     (if cmd (cdr remargs) '()))
			 (exitstat   #f)
			 (shell      (last (string-split (get-environment-variable "SHELL") "/")))
			 (redir      (case (string->symbol shell)
				       ((tcsh csh ksh)    ">&")
				       ((zsh bash sh ash) "2>&1")))
			 (fullcmd    (string-intersperse 
				      (cons cmd (list params redir logfile))
				      " ")))
			 (fullcmd    (conc "(" (string-intersperse 
						(cons cmd params) " ")
					   ") " redir " " logfile)))
		    ;; mark the start of the test
		    (test-set-status! db run-id test-name "start" "n/a" itemdat (args:get-arg "-m"))
		    ;; close the db
		    (sqlite3:finalize! db)
		    ;; run the test step
		    (print "INFO: Running " fullcmd)
		    (set! exitstat (process-run fullcmd)) ;; cmd params))
		    (print "INFO: Running \"" fullcmd "\"")
		    (change-directory startingdir)
		    (set! exitstat (system fullcmd)) ;; cmd params))
		    (change-directory testpath)
		    ;; re-open the db
		    (set! db (open-db)) 
		    ;; run logpro if applicable ;; (process-run "ls" (list "/foo" "2>&1" "blah.log"))
		    (if logpro
			(let ((htmllogfile (conc test-name ".html"))
			      (cmd         (string-intersperse (list "logpro" logpro logfile "<" logfile ">" (conc test-name "_logpro.log")) " ")))
			  (print "INFO: running " cmd)
			  (set! exitstat (process-run cmd))
		    (if logprofile
			(let* ((htmllogfile (conc stepname ".html"))
			       (cmd         (string-intersperse (list "logpro" logprofile htmllogfile "<" logfile ">" (conc stepname "_logpro.log")) " ")))
			  (print "INFO: running \"" cmd "\"")
			  (change-directory startingdir)
			  (set! exitstat (system cmd))
			  (change-directory testpath)
			  (test-set-log! db run-id test-name itemdat logfile)))
		    (test-set-status! db run-id test-name "end" exitstat itemdat (args:get-arg "-m"))
		    (sqlite3:finalize! db)
		    (exit exitstat)
		    ;; open the db
		;; mark the end of the test
		)))

Added tests/tests/runfirst/wasting_time.logpro version [26a59d97ac].


1
+
;; put stuff here