@@ -62,11 +62,10 @@ run_duration INTEGER DEFAULT 0, comment TEXT DEFAULT '', event_time TIMESTAMP, fail_count INTEGER DEFAULT 0, pass_count INTEGER DEFAULT 0, - tags TEXT DEFAULT '', CONSTRAINT testsconstraint UNIQUE (run_id, testname, item_path) );") (sqlite3:execute db "CREATE INDEX tests_index ON tests (run_id, testname);") (sqlite3:execute db "CREATE VIEW runs_tests AS SELECT * FROM runs INNER JOIN tests ON runs.id=tests.run_id;") (sqlite3:execute db "CREATE TABLE test_steps @@ -344,12 +343,12 @@ (define (db:estimated-tests-remaining db run-id) (let ((res 0)) (sqlite3:for-each-row (lambda (count) (set! res count)) - db - "SELECT count(id) FROM tests WHERE state in ('LAUNCHED','NOT_STARTED','REMOTEHOSTSTART','RUNNING') AND run_id=?;" run-id) + db ;; NB// KILLREQ means the jobs is still probably running + "SELECT count(id) FROM tests WHERE state in ('LAUNCHED','NOT_STARTED','REMOTEHOSTSTART','RUNNING','KILLREQ') AND run_id=?;" run-id) res)) ;; NB// Sync this with runs:get-test-info (define (db:get-test-info db run-id testname item-path) (let ((res #f)) @@ -458,28 +457,28 @@ db "SELECT id,test_id,stepname,state,status,event_time FROM test_steps WHERE test_id=? ORDER BY id ASC;" ;; event_time DESC,id ASC; test-id) (reverse res))) -;; check that *all* the prereqs are "COMPLETED" -(define (db-get-prereqs-met db run-id waiton) - (let ((res #f) - (not-complete 0) - (tests (db-get-tests-for-run db run-id))) - (for-each - (lambda (test-name) - (for-each - (lambda (test) - (if (equal? (db:test-get-testname test) test-name) - (begin - (set! res #t) - (if (not (equal? (db:test-get-state test) "COMPLETED")) - (set! not-complete (+ 1 not-complete)))))) - tests)) - waiton) - (and (or (null? waiton) res) - (eq? not-complete 0)))) +;; ;; check that *all* the prereqs are "COMPLETED" +;; (define (db-get-prereqs-met db run-id waiton) +;; (let ((res #f) +;; (not-complete 0) +;; (tests (db-get-tests-for-run db run-id))) +;; (for-each +;; (lambda (test-name) +;; (for-each +;; (lambda (test) +;; (if (equal? (db:test-get-testname test) test-name) +;; (begin +;; (set! res #t) +;; (if (not (equal? (db:test-get-state test) "COMPLETED")) +;; (set! not-complete (+ 1 not-complete)))))) +;; tests)) +;; waiton) +;; (and (or (null? waiton) res) +;; (eq? not-complete 0)))) ;; USE: (lset-difference string=? '("a" "b" "c") '("d" "c" "e" "a")) ;; ;; Return a list of prereqs that were NOT met ;; Tests (and all items) in waiton list must be "COMPLETED" and "PASS"