Index: db.scm ================================================================== --- db.scm +++ db.scm @@ -352,20 +352,20 @@ (define-inline (db:test-set-testname! vec val)(vector-set! vec 2 val)) (define-inline (db:test-set-state! vec val)(vector-set! vec 3 val)) (define-inline (db:test-set-status! vec val)(vector-set! vec 4 val)) -(define (db-get-tests-for-run db run-id . params) - (let ((res '()) - (testpatt (if (or (null? params)(not (car params))) "%" (car params))) - (itempatt (if (> (length params) 1)(cadr params) "%"))) +(define (db-get-tests-for-run db run-id testpatt itempatt) + (let ((res '())) (sqlite3:for-each-row (lambda (id run-id testname state status event-time host cpuload diskfree uname rundir item-path run-duration final-logf comment first-err first-warn) (set! res (cons (vector id run-id testname state status event-time host cpuload diskfree uname rundir item-path run-duration final-logf comment first-err first-warn) res))) db "SELECT id,run_id,testname,state,status,event_time,host,cpuload,diskfree,uname,rundir,item_path,run_duration,final_logf,comment,first_err,first_warn FROM tests WHERE run_id=? AND testname like ? AND item_path LIKE ? ORDER BY id DESC;" - run-id testpatt (if itempatt itempatt "%")) + run-id + (if testpatt testpatt "%") + (if itempatt itempatt "%")) res)) ;; this one is a bit broken BUG FIXME (define (db:delete-test-step-records db run-id test-name itemdat) (sqlite3:execute db "DELETE FROM test_steps WHERE test_id in (SELECT id FROM tests WHERE run_id=? AND testname=? AND item_path=?);" @@ -726,11 +726,11 @@ ;; Tests (and all items) in waiton list must be "COMPLETED" and "PASS" (define (db-get-prereqs-not-met db run-id waiton) (if (null? waiton) '() (let* ((unmet-pre-reqs '()) - (tests (db-get-tests-for-run db run-id)) + (tests (db-get-tests-for-run db run-id #f #f)) (result '())) (for-each (lambda (waitontest-name) (let ((ever-seen #f)) (for-each (lambda (test) (if (equal? waitontest-name (db:test-get-testname test)) Index: megatest.scm ================================================================== --- megatest.scm +++ megatest.scm @@ -388,11 +388,11 @@ (setenv "MT_TEST_RUN_DIR" work-area) (setenv "MT_TEST_NAME" test-name) (setenv "MT_ITEM_INFO" (conc itemdat)) (setenv "MT_RUNNAME" runname) (setenv "MT_MEGATEST" megatest) - (setenv "PATH" (conc (getenv "PATH") ":" mt-bindir-path)) + (if mt-bindir-path (setenv "PATH" (conc (getenv "PATH") ":" mt-bindir-path))) (if (not (setup-for-run)) (begin (debug:print 0 "Failed to setup, exiting") (exit 1))) Index: runs.scm ================================================================== --- runs.scm +++ runs.scm @@ -119,11 +119,12 @@ (let ((results (db-get-tests-for-run db hed test-name item-path))) (debug:print 4 "Got tests for run-id " run-id ", test-name " test-name ", item-path " item-path ": " results) (if (and (null? results) (not (null? tal))) (loop (car tal)(cdr tal)) - (car results))))))))) + (if (null? results) #f + (car results)))))))))) ;; get the previous records for when these tests were run where all keys match but runname ;; NB// Merge this with test:get-previous-test-run-records? This one looks for all matching tests ;; can use wildcards. (define (test:get-matching-previous-test-run-records db run-id test-name item-path)