Megatest

Check-in [44cb016122]
Login
Overview
Comment:Fixed ticket b05bb6c4
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | v1.60
Files: files | file ages | folders
SHA1: 44cb0161224b0dd57badf3aab8ce59bb3dfb23d0
User & Date: matt on 2015-08-27 23:08:41
Other Links: branch diff | manifest | tags
Context
2015-08-27
23:47
Allow overriding num reruns from config, added to docs check-in: 8c4b1ebbb6 user: matt tags: v1.60
23:08
Fixed ticket b05bb6c4 check-in: 44cb016122 user: matt tags: v1.60
2015-08-26
23:38
Fixed itemmap calls where handling empty string. Tidied up sharedata a little check-in: cf289757be user: matt tags: v1.60
Changes

Modified db.scm from [a5f6d84421] to [5b045adee9].

2240
2241
2242
2243
2244
2245
2246
2247
2248
2249
2250






2251
2252
2253
2254
2255
2256
2257
2258
2259
2260
2261

2262
2263


2264
2265
2266
2267
2268
2269
2270
2240
2241
2242
2243
2244
2245
2246




2247
2248
2249
2250
2251
2252
2253
2254
2255
2256
2257
2258
2259
2260
2261
2262
2263
2264


2265
2266
2267
2268
2269
2270
2271
2272
2273







-
-
-
-
+
+
+
+
+
+











+
-
-
+
+







	  (sqlite3:execute db "DELETE FROM tests WHERE state='DELETED' AND event_time<?;" targtime))))
     run-ids)))

;; set tests with state currstate and status currstatus to newstate and newstatus
;; use currstate = #f and or currstatus = #f to apply to any state or status respectively
;; WARNING: SQL injection risk. NB// See new but not yet used "faster" version below
;;
		;;  AND NOT (item_path='' AND testname in (SELECT DISTINCT testname FROM tests WHERE testname=? AND item_path != ''));")))
		;;(debug:print 0 "QRY: " qry)
		;; (db:delay-if-busy)

;;  AND NOT (item_path='' AND testname in (SELECT DISTINCT testname FROM tests WHERE testname=? AND item_path != ''));")))
;;  (debug:print 0 "QRY: " qry)
;;  (db:delay-if-busy)
;;
;; NB// This call only operates on toplevel tests. Consider replacing it with more general call
;;
(define (db:set-tests-state-status dbstruct run-id testnames currstate currstatus newstate newstatus)
  (for-each (lambda (testname)
	      (let ((qry (conc "UPDATE tests SET state=?,status=? WHERE "
			       (if currstate  (conc "state='" currstate "' AND ") "")
			       (if currstatus (conc "status='" currstatus "' AND ") "")
			       " run_id=? AND testname LIKE ?;")))
		(db:with-db
		 dbstruct
		 run-id
		 #t
		 (lambda (db)
		   (let ((test-id (db:get-test-id dbstruct run-id testname "")))
		   (sqlite3:execute db qry newstate newstatus run-id testname)
		   (mt:process-triggers run-id test-id newstate newstatus)
		     (sqlite3:execute db qry newstate newstatus run-id testname)
		     (if test-id (mt:process-triggers run-id test-id newstate newstatus)))
		   ))))
	    testnames))

;; speed up for common cases with a little logic
;; NB// Ultimately this will be deprecated in deference to mt:test-set-state-status-by-id
;;
(define (db:test-set-state-status-by-id dbstruct run-id test-id newstate newstatus newcomment)

Modified tests/fullrun/megatest.config from [cdb8d4e3fb] to [007216e935].

143
144
145
146
147
148
149
150

151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166

167
168
169
170


171
172
173
174
175
176
177
178
179
180
181
182
143
144
145
146
147
148
149

150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165

166
167
168


169
170
171
172
173
174

175
176
177
178
179
180
181







-
+















-
+


-
-
+
+




-








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

[server]

# force use of server always
required yes
# required yes

# Use http instead of direct filesystem access
transport http
# transport fs
# transport nmsg

synchronous 0

# If the server can't be started on this port it will try the next port until
# it succeeds
port 9080

# This server will keep running this number of hours after last access. 
# Three minutes is 0.05 hours
# timeout 0.025
timeout 0.061
timeout 0.01

# faststart; unless no, start server but proceed with writes until server started
faststart no
# faststart yes
# faststart no
faststart yes

# Start server when average query takes longer than this
# server-query-threshold 55500
server-query-threshold 1000
timeout 0.01

# daemonize yes
# hostname #{scheme (get-host-name)}

## disks are:
## name host:/path/to/area
## -or-

Modified tests/unittests/runs.scm from [25943e33c5] to [17931d05af].

318
319
320
321
322
323
324






325
326
327
328
329
330
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336







+
+
+
+
+
+







(print "Waiting for server to be done, should be about 20 seconds")
(test "server stop" #f (let ((hostname (car  *runremote*))
			     (port     (cadr *runremote*)))
			 (tasks:kill-server #t hostname port server-pid 'http)
			 (open-run-close tasks:get-best-server tasks:open-db)))

;;======================================================================
;; M O R E   R E M O T E   C A L  L S
;;======================================================================

(test #f #f (rmt:set-tests-state-status 1 '("runfirst") "RUNNING" "WARN" "COMPLETED" "FAIL"))

;; (cdb:kill-server *runremote*)

;; (thread-join! th1 th2 th3)

;; ADD ME!!!! (db:get-prereqs-not-met *db* 1 '("runfirst") "" mode: 'normal)
;; ADD ME!!!! (rdb:get-tests-for-run *db* 1 "runfirst" #f '() '())