Megatest

Check-in [67e15ae474]
Login
Overview
Comment:Fixed the MT_RUN_AREA_HOME, previous fix did not set the var before parsing .config files.
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | test-specific-db | v1.4604
Files: files | file ages | folders
SHA1: 67e15ae4747c2ab5964c2a4848d3d32602c61bf8
User & Date: mrwellan on 2012-09-28 12:01:27
Other Links: branch diff | manifest | tags
Context
2012-09-28
16:23
Refactored more db stuff to use open-run-close check-in: cc1b5a10b2 user: mrwellan tags: test-specific-db, v1.4605
12:01
Fixed the MT_RUN_AREA_HOME, previous fix did not set the var before parsing .config files. check-in: 67e15ae474 user: mrwellan tags: test-specific-db, v1.4604
2012-09-27
23:30
Switched to OFF for sync and using exception handling on db access check-in: d805adeb13 user: mrwellan tags: test-specific-db, v.14603
Changes

Modified configf.scm from [430ee65b96] to [2510b90f57].

211
212
213
214
215
216
217

218

219
220
221
222
223

224
225
226
227
228
229
230
211
212
213
214
215
216
217
218

219
220
221
222
223
224
225
226
227
228
229
230
231
232







+
-
+





+







								       (config:assoc-safe-add alist var-flag newval))
						      (loop (configf:read-line inp res) curr-section-name var-flag (if lead lead whsp)))
						    (loop (configf:read-line inp res) curr-section-name #f #f))))
	       (else (debug:print 0 "ERROR: problem parsing " path ",\n   \"" inl "\"")
		     (set! var-flag #f)
		     (loop (configf:read-line inp res) curr-section-name #f #f))))))))
  
;; pathenvvar will set the named var to the path of the config
(define (find-and-read-config fname #!key (environ-patt #f)(given-toppath #f))
(define (find-and-read-config fname #!key (environ-patt #f)(given-toppath #f)(pathenvvar #f))
  (let* ((curr-dir   (current-directory))
         (configinfo (find-config fname toppath: given-toppath))
	 (toppath    (car configinfo))
	 (configfile (cadr configinfo)))
    (if toppath (change-directory toppath)) 
    (if (and toppath pathenvvar)(setenv pathenvvar toppath))
    (let ((configdat  (if configfile (read-config configfile #f #t environ-patt: environ-patt) #f))) ;; (make-hash-table))))
      (if toppath (change-directory curr-dir))
      (list configdat toppath configfile fname))))

(define (config-lookup cfgdat section var)
  (if (hash-table? cfgdat)
      (let ((sectdat (hash-table-ref/default cfgdat section '())))

Modified db.scm from [26ed88882a] to [8c6e608c5e].

380
381
382
383
384
385
386
387


388
389
390
391
392
393
394
380
381
382
383
384
385
386

387
388
389
390
391
392
393
394
395







-
+
+







;; meta get and set vars
;;======================================================================

;; returns number if string->number is successful, string otherwise
;; also updates *global-delta*
(define (db:get-var db var)
  (let* ((start-ms (current-milliseconds))
         (throttle (string->number (config-lookup *configdat* "setup" "throttle")))
         (throttle (let ((t  (config-lookup *configdat* "setup" "throttle")))
		     (if t (string->number t) t)))
	 (res      #f))
    (sqlite3:for-each-row
     (lambda (val)
       (set! res val))
     db "SELECT val FROM metadat WHERE var=?;" var)
    ;; convert to number if can
    (if (string? res)

Modified launch.scm from [b831ce6e73] to [1d93c92f83].

344
345
346
347
348
349
350
351


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

351
352
353
354
355
356
357
358
359







-
+
+







  ;; would set values for KEYS in the environment here for better support of env-override but 
  ;; have chicken/egg scenario. need to read megatest.config then read it again. Going to 
  ;; pass on that idea for now
  ;; special case
  (set! *configinfo* (find-and-read-config 
		      (if (args:get-arg "-config")(args:get-arg "-config") "megatest.config")
		      environ-patt: "env-override"
		      given-toppath: (get-environment-variable "MT_RUN_AREA_HOME")))
		      given-toppath: (get-environment-variable "MT_RUN_AREA_HOME")
		      pathenvvar: "MT_RUN_AREA_HOME"))
  (set! *configdat*  (if (car *configinfo*)(car *configinfo*) #f))
  (set! *toppath*    (if (car *configinfo*)(cadr *configinfo*) #f))
  (if *toppath*
      (setenv "MT_RUN_AREA_HOME" *toppath*) ;; to be deprecated
      (debug:print 0 "ERROR: failed to find the top path to your run setup."))
  *toppath*)

Modified tests/fullrun/megatest.config from [c919ec1fdb] to [dbf357b9a9].

1
2
3
4
5
6
7
8
9
10
11

12
13
14
15
16
17
18
1
2
3
4
5
6
7
8
9
10

11
12
13
14
15
16
17
18










-
+







[fields]
sysname TEXT
fsname TEXT
datapath TEXT

# refareas can be searched to find previous runs
# the path points to where megatest.db exists
[refareas]
area1 /tmp/oldarea/megatest

[include config/mt_include_1.config]
[include #{getenv MT_RUN_AREA_HOME}/config/mt_include_1.config]

[setup]
# FULL or 2, NORMAL or 1, OFF or 0
synchronous OFF
# Throttle roughly scales the db access milliseconds to seconds delay
throttle 0.2
# Max retries allows megatest to re-check that a tests status has changed
33
34
35
36
37
38
39

40
41
42
43
44
45
46
47
48
49
50
51
52
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53







+













WACKYVAR  #{system ls > /dev/null}
WACKYVAR2 #{get validvalues state}
WACKYVAR3 #{getenv USER}
WACKYVAR4 #{scheme (+ 5 6 7)}
WACKYVAR5 #{getenv sysname}/#{getenv fsname}/#{getenv datapath}
WACKYVAR6 #{scheme (args:get-arg "-target")}
PREDICTABLE the_ans
MRAH MT_RUN_AREA_HOME=#{getenv MT_RUN_AREA_HOME}

# XTERM   [system xterm]
# RUNDEAD [system exit 56]

## disks are:
## name host:/path/to/area
## -or-
## name /path/to/area
[disks]
disk0 /foobarbazz
[include config/mt_include_2.config]

[include #{getenv USER}_testing.config]