Megatest

Check-in [5c3fd5b583]
Login
Overview
Comment:env-overrides now carry over into the test environment. change to toppath before reading of megatest.config so any evaluated relative paths consistently start at toppath
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA1: 5c3fd5b583f655f03c8d18e888942770ceec44b8
User & Date: mrwellan on 2011-05-25 08:53:49
Other Links: manifest | tags
Context
2011-05-31
12:20
Added mtutils.csh check-in: f412143bd2 user: mrwellan tags: trunk
2011-05-25
08:53
env-overrides now carry over into the test environment. change to toppath before reading of megatest.config so any evaluated relative paths consistently start at toppath check-in: 5c3fd5b583 user: mrwellan tags: trunk
2011-05-23
23:35
Moved setting of various env vars to earlier point in time so they are available when the testconfig file is read. This means you can use MT_RUNNAME, MT_TEST_NAME etc. in [system .../some/script] calls check-in: b5bfe140e0 user: matt tags: trunk, v1.08
Changes

Modified configf.scm from [9312ee9e64] to [55fe90e96b].

68
69
70
71
72
73
74

75

76
77
78
79





80
81
82
83
84
85
86
68
69
70
71
72
73
74
75

76
77



78
79
80
81
82
83
84
85
86
87
88
89







+
-
+

-
-
-
+
+
+
+
+







								 (config:assoc-safe-add alist key val))
								 ;; (append alist (list (list key val))))
						(loop (read-line inp) curr-section-name)))
	       (else (print "ERROR: Should not get here,\n   \"" inl "\"")
		     (loop (read-line inp) curr-section-name))))))))
  
(define (find-and-read-config fname)
  (let* ((curr-dir   (current-directory))
  (let* ((configinfo (find-config fname))
         (configinfo (find-config fname))
	 (toppath    (car configinfo))
	 (configfile (cadr configinfo))
	 (configdat  (if configfile (read-config configfile) #f))) ;; (make-hash-table))))
    (list configdat toppath configfile fname)))
	 (configfile (cadr configinfo)))
    (if toppath (change-directory toppath)) 
    (let ((configdat  (if configfile (read-config configfile) #f))) ;; (make-hash-table))))
      (if toppath (change-directory curr-dir))
      (list configdat toppath configfile fname))))

(define (config-lookup cfgdat section var)
  (let ((sectdat (hash-table-ref/default cfgdat section '())))
    (if (null? sectdat)
	#f
	(let ((match (assoc var sectdat)))
	  (if match

Modified launch.scm from [f989eab76a] to [9d7ec25b1f].

107
108
109
110
111
112
113

114
115
116
117
118
119
120
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121







+







;; 2. create run dir on disk, path name is meaningful
;; 3. create link from run dir to megatest runs area 
;; 4. remotely run the test on allocated host
;;    - could be ssh to host from hosts table (update regularly with load)
;;    - could be netbatch
;;      (launch-test db (cadr status) test-conf))
(define (launch-test db run-id test-conf keyvallst test-name test-path itemdat)
  (change-directory *toppath*)
  (let ((launcher   (config-lookup *configdat* "jobtools"     "launcher"))
	(runscript  (config-lookup test-conf   "setup"        "runscript"))
	(diskspace  (config-lookup test-conf   "requirements" "diskspace"))
	(memory     (config-lookup test-conf   "requirements" "memory"))
	(hosts      (config-lookup *configdat* "jobtools"     "workhosts"))
	(remote-megatest (config-lookup *configdat* "setup" "executable"))
	(local-megatest  (car (argv)))
143
144
145
146
147
148
149

150
151
152
153
154
155
156
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158







+







				      (write (list (list 'testpath  test-path)
						   (list 'work-area work-area)
						   (list 'test-name test-name) 
						   (list 'runscript runscript) 
						   (list 'run-id    run-id   )
						   (list 'itemdat   itemdat  )
						   (list 'megatest  remote-megatest)
						   (list 'env-ovrd  (hash-table-ref/default *configdat* "env-override" '()))
						   (list 'runname   (args:get-arg ":runname"))
						   (list 'mt-bindir-path mt-bindir-path))))))) ;; (string-intersperse keyvallst " "))))
    (change-directory work-area) ;; so that log files from the launch process don't clutter the test dir
    (cond
     ((and launcher hosts) ;; must be using ssh hostname
      (set! fullcmd (append launcher (car hosts)(list remote-megatest "-execute" cmdparms))))
     (launcher

Modified megatest.scm from [1b697bd36b] to [93b8d4ec24].

317
318
319
320
321
322
323

324
325
326
327
328
329
330
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331







+







	  (let* ((testpath  (assoc/default 'testpath  cmdinfo))
		 (work-area (assoc/default 'work-area 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))
		 (env-ovrd  (assoc/default 'env-ovrd  cmdinfo))
		 (runname   (assoc/default 'runname   cmdinfo))
		 (megatest  (assoc/default 'megatest  cmdinfo))
		 (mt-bindir-path (assoc/default 'mt-bindir-path cmdinfo))
		 (fullrunscript (conc testpath "/" runscript))
		 (db        #f))
	    (print "Exectuing " test-name " on " (get-host-name))
	    (change-directory testpath)
342
343
344
345
346
347
348


349
350
351
352
353
354
355
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358







+
+







	    ;; now can find our db
	    (set! db (open-db))
	    (change-directory work-area) 
	    (let ((runconfigf (conc  *toppath* "/runconfigs.config")))
	      (if (file-exists? runconfigf)
		  (setup-env-defaults db runconfigf run-id)
		  (print "WARNING: You do not have a run config file: " runconfigf)))
            ;; environment overrides are done *before* the remaining critical envars.
            (alist->env-vars env-ovrd)
	    (set-megatest-env-vars db run-id)
	    (set-item-env-vars itemdat)
            (save-environment-as-files "megatest")
	    (test-set-meta-info db run-id test-name itemdat)
	    (test-set-status! db run-id test-name "REMOTEHOSTSTART" "n/a" itemdat (args:get-arg "-m"))
	    (if (args:get-arg "-xterm")
		(set! fullrunscript "xterm")

Modified tests/megatest.config from [2e6fd74c6d] to [9b99a9353f].

22
23
24
25
26
27
28
29


30
31
32
33
34
35
36
22
23
24
25
26
27
28

29
30
31
32
33
34
35
36
37







-
+
+







[validvalues]
state start end completed
status pass fail n/a

# These are set before all tests, override them 
# in the testconfig [pre-launch-env-overrides] section
[env-override]
SPECIAL_ENV_VARS overide them here - seen only by the test launcher
SPECIAL_ENV_VARS overide them here - should be seen at launch and in the runs
TESTVAR [system realpath .]

## disks are:
## name host:/path/to/area
## -or-
## name /path/to/area
[disks]
1 /tmp