242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
|
(loop (car tal)(cdr tal)))
#f))))))
(pop-directory)
result)))
;; Do not rpc this one, do the underlying calls!!!
(define (tests:test-set-status! test-id state status comment dat #!key (testpath #f))
(debug:print-info 4 "tests:test-set-status! test-id=" test-id ", state=" state ", status=" status ", dat=" dat)
(let* ((db #f)
(real-status status)
(otherdat (if dat dat (make-hash-table)))
(testdat (cdb:get-test-info-by-id *runremote* test-id))
(run-id (db:test-get-run_id testdat))
(test-name (db:test-get-testname testdat))
|
|
|
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
|
(loop (car tal)(cdr tal)))
#f))))))
(pop-directory)
result)))
;; Do not rpc this one, do the underlying calls!!!
(define (tests:test-set-status! test-id state status comment dat #!key (work-area #f))
(debug:print-info 4 "tests:test-set-status! test-id=" test-id ", state=" state ", status=" status ", dat=" dat)
(let* ((db #f)
(real-status status)
(otherdat (if dat dat (make-hash-table)))
(testdat (cdb:get-test-info-by-id *runremote* test-id))
(run-id (db:test-get-run_id testdat))
(test-name (db:test-get-testname testdat))
|
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
|
;; update the primary record IF state AND status are defined
(if (and state status)
(cdb:test-set-status-state *runremote* test-id real-status state (if waived waived comment)))
;; if status is "AUTO" then call rollup (note, this one modifies data in test
;; run area, it does remote calls under the hood.
(if (and test-id state status (equal? status "AUTO"))
(db:test-data-rollup #f test-id status testpath: testpath))
;; add metadata (need to do this way to avoid SQL injection issues)
;; :first_err
;; (let ((val (hash-table-ref/default otherdat ":first_err" #f)))
;; (if val
;; (sqlite3:execute db "UPDATE tests SET first_err=? WHERE run_id=? AND testname=? AND item_path=?;" val run-id test-name item-path)))
|
|
|
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
|
;; update the primary record IF state AND status are defined
(if (and state status)
(cdb:test-set-status-state *runremote* test-id real-status state (if waived waived comment)))
;; if status is "AUTO" then call rollup (note, this one modifies data in test
;; run area, it does remote calls under the hood.
(if (and test-id state status (equal? status "AUTO"))
(db:test-data-rollup #f test-id status work-area: work-area))
;; add metadata (need to do this way to avoid SQL injection issues)
;; :first_err
;; (let ((val (hash-table-ref/default otherdat ":first_err" #f)))
;; (if val
;; (sqlite3:execute db "UPDATE tests SET first_err=? WHERE run_id=? AND testname=? AND item_path=?;" val run-id test-name item-path)))
|
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
|
;; (sqlite3:execute db "UPDATE tests SET run_duration=? WHERE id=?;" minutes test-id))
(if (eq? num-records 0)
(cdb:tests-update-uname-host *runremote* test-id uname hostname))
;;(sqlite3:execute db "UPDATE tests SET uname=?,host=? WHERE id=?;" uname hostname test-id))
;;(sqlite3:finalize! db))
)
(define (tests:set-meta-info db test-id run-id testname itemdat minutes testpath)
;; DOES cdb:remote-run under the hood!
(let* ((tdb (db:open-test-db-by-test-id db test-id testpath: testpath))
(num-records (test:tdb-get-rundat-count tdb))
(cpuload (get-cpu-load))
(diskfree (get-df (current-directory))))
(if (eq? (modulo num-records 10) 0) ;; every ten records update central
(let ((uname (get-uname "-srvpio"))
(hostname (get-host-name)))
(tests:update-central-meta-info test-id cpuload diskfree minutes num-records uname hostname)))
|
|
|
|
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
|
;; (sqlite3:execute db "UPDATE tests SET run_duration=? WHERE id=?;" minutes test-id))
(if (eq? num-records 0)
(cdb:tests-update-uname-host *runremote* test-id uname hostname))
;;(sqlite3:execute db "UPDATE tests SET uname=?,host=? WHERE id=?;" uname hostname test-id))
;;(sqlite3:finalize! db))
)
(define (tests:set-meta-info db test-id run-id testname itemdat minutes work-area)
;; DOES cdb:remote-run under the hood!
(let* ((tdb (db:open-test-db-by-test-id db test-id work-area: work-area))
(num-records (test:tdb-get-rundat-count tdb))
(cpuload (get-cpu-load))
(diskfree (get-df (current-directory))))
(if (eq? (modulo num-records 10) 0) ;; every ten records update central
(let ((uname (get-uname "-srvpio"))
(hostname (get-host-name)))
(tests:update-central-meta-info test-id cpuload diskfree minutes num-records uname hostname)))
|