Megatest

Check-in [4d2b7bbb24]
Login
Overview
Comment:Fixed some breakage from the tear down/migration to steps in megatest.db
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA1: 4d2b7bbb249924c78530e384353d26ce0e813267
User & Date: matt on 2013-11-18 23:52:54
Other Links: manifest | tags
Context
2013-11-18
23:57
More fixes check-in: 93c5d29832 user: matt tags: trunk
23:52
Fixed some breakage from the tear down/migration to steps in megatest.db check-in: 4d2b7bbb24 user: matt tags: trunk
23:28
Partial transition to steps in main db check-in: e1eebd3848 user: matt tags: trunk
Changes

Modified db.scm from [ea96d1b821] to [301f19982d].

1246
1247
1248
1249
1250
1251
1252
1253
1254


1255
1256
1257
1258
1259
1260
1261
1246
1247
1248
1249
1250
1251
1252


1253
1254
1255
1256
1257
1258
1259
1260
1261







-
-
+
+







       (set! res (cons (apply vector a b) res))) ;; id run-id testname state status event-time host cpuload diskfree uname rundir item-path run-duration final-logf comment) res)))
     db 
     qry
     )
    res))

(define (db:delete-test-records db test-id)
  (db:general-call 'delete-test-step-records test-id)
  (db:general-call 'delete-test-data-records test-id)
  (db:general-call db 'delete-test-step-records (list test-id))
  (db:general-call db 'delete-test-data-records (list test-id))
  (sqlite3:execute db "UPDATE tests SET state='DELETED',status='n/a',comment='' WHERE id=?;" test-id))

(define (db:delete-tests-for-run db run-id)
  (sqlite3:execute db "DELETE FROM tests WHERE run_id=?;" run-id))

(define (db:delete-old-deleted-test-records db)
  (let ((targtime (- (current-seconds)(* 30 24 60 60)))) ;; one month in the past
1487
1488
1489
1490
1491
1492
1493
1494

1495
1496
1497

1498
1499

1500
1501
1502
1503
1504
1505
1506
1487
1488
1489
1490
1491
1492
1493

1494
1495
1496

1497
1498

1499
1500
1501
1502
1503
1504
1505
1506







-
+


-
+

-
+







	(pass-count 0))
    (sqlite3:for-each-row
     (lambda (fcount pcount)
       (set! fail-count fcount)
       (set! pass-count pcount))
     db 
     "SELECT (SELECT count(id) FROM test_data WHERE test_id=? AND status like 'fail') AS fail_count,
                   (SELECT count(id) FROM test_data WHERE test_id=? AND status like 'pass') AS pass_count;"
             (SELECT count(id) FROM test_data WHERE test_id=? AND status like 'pass') AS pass_count;"
     test-id test-id)
    ;; Now rollup the counts to the central megatest.db
    (db:general-call 'pass-fail-counts fail-count pass-count test-id)
    (db:general-call db 'pass-fail-counts (list fail-count pass-count test-id))
    ;; if the test is not FAIL then set status based on the fail and pass counts.
    (db:general-call 'test_data-pf-rollup test-id test-id test-id test-id)))
    (db:general-call db 'test_data-pf-rollup (list test-id test-id test-id test-id))))

(define (db:csv->test-data db test-id csvdata)
  (debug:print 4 "test-id " test-id ", csvdata: " csvdata)
  (let ((csvlist (csv->list (make-csv-reader
			     (open-input-string csvdata)
			     '((strip-leading-whitespace? #t)
			       (strip-trailing-whitespace? #t)) )))) ;; (csv->list csvdata)))
1775
1776
1777
1778
1779
1780
1781
1782

1783
1784
1785
1786
1787
1788
1789
1775
1776
1777
1778
1779
1780
1781

1782
1783
1784
1785
1786
1787
1788
1789







-
+







                                              AND item_path != ''
                                              AND status = 'SKIP') > 0 THEN 'SKIP'
                                  ELSE 'UNKNOWN' END
                       WHERE run_id=? AND testname=? AND item_path='';")

	;; STEPS
	'(delete-test-step-records "UPDATE test_steps SET state='DELETED' WHERE id=?;")
	'(delete-test-data-records "UPDATE test_data  SET state='DELETED' WHERE id=?;")
	'(delete-test-data-records "UPDATE test_data  SET status='DELETED' WHERE id=?;") ;; using status since no state field
	))

;; do not run these as part of the transaction
(define db:special-queries   '(rollup-tests-pass-fail
			       ;; db:roll-up-pass-fail-counts  ;; WHY NOT!?
			       login
			       immediate

Modified rmt.scm from [28b9dd02b4] to [dd6d85038e].

222
223
224
225
226
227
228
229

230
231
232
233
234
235
236
222
223
224
225
226
227
228

229
230
231
232
233
234
235
236







-
+







;; If not given the work area
;;  1. Do a remote call to get the test path
;;  2. Continue as above
;; 
(define (rmt:get-steps-for-test test-id)
  (rmt:send-receive 'get-steps-data (list test-id)))

(define (rmt:teststep-set-status! db test-id teststep-name state-in status-in comment logfile)
(define (rmt:teststep-set-status! test-id teststep-name state-in status-in comment logfile)
  (let* ((state     (items:check-valid-items "state" state-in))
	 (status    (items:check-valid-items "status" status-in)))
    (if (or (not state)(not status))
	(debug:print 3 "WARNING: Invalid " (if status "status" "state")
		     " value \"" (if status state-in status-in) "\", update your validvalues section in megatest.config"))
    (rmt:send-receive 'teststep-set-status! (list test-id teststep-name state-in status-in comment logfile))))

255
256
257
258
259
260
261
262

263
255
256
257
258
259
260
261

262
263







-
+


(define (rmt:testmeta-update-field test-name fld val)
  (rmt:send-receive 'testmeta-update-field (list test-name fld val)))

(define (rmt:test-data-rollup test-id status)
  (rmt:send-receive 'test-data-rollup (list test-id status)))

(define (db:csv->test-data db test-id csvdata)
(define (rmt:csv->test-data test-id csvdata)
  (rmt:send-receive 'csv->test-data (list test-id csvdata)))

Modified tdb.scm from [e151bd1de5] to [27917601c7].

190
191
192
193
194
195
196
197

198
199
200
201
202
203
204
190
191
192
193
194
195
196

197
198
199
200
201
202
203
204







-
+








;; NOTE: Run this local with #f for db !!!
(define (tdb:load-test-data test-id #!key (work-area #f))
  (let loop ((lin (read-line)))
    (if (not (eof-object? lin))
	(begin
	  (debug:print 4 lin)
	  (rmt:csv->test-data test-id lin work-area: work-area)
	  (rmt:csv->test-data test-id lin)
	  (loop (read-line)))))
  ;; roll up the current results.
  ;; FIXME: Add the status too 
  (rmt:test-data-rollup test-id #f))

(define (tdb:get-prev-tol-for-test tdb test-id category variable)
  ;; Finish me?