Index: db.scm ================================================================== --- db.scm +++ db.scm @@ -569,19 +569,18 @@ (begin (debug:print 4 lin) (db:csv->test-data db test-id lin) (loop (read-line)))))) ;; roll up the current results. - ;; FIXME: Add the status to - (db:test-data-rollup db test-id #f))) + (db:test-data-rollup db test-id))) ;; WARNING: Do NOT call this for the parent test on an iterated test ;; Roll up test_data pass/fail results ;; look at the test_data status field, ;; if all are pass (any case) and the test status is PASS or NULL or '' then set test status to PASS. ;; if one or more are fail (any case) then set test status to PASS, non "pass" or "fail" are ignored -(define (db:test-data-rollup db test-id status) +(define (db:test-data-rollup db test-id) (sqlite3:execute db "UPDATE tests SET fail_count=(SELECT count(id) FROM test_data WHERE test_id=? AND status like 'fail'), pass_count=(SELECT count(id) FROM test_data WHERE test_id=? AND status like 'pass') @@ -592,12 +591,11 @@ (sqlite3:execute db "UPDATE tests SET status=CASE WHEN (SELECT fail_count FROM tests WHERE id=?) > 0 THEN 'FAIL' - WHEN (SELECT pass_count FROM tests WHERE id=?) > 0 AND - (SELECT status FROM tests WHERE id=?) NOT IN ('WARN','FAIL') + WHEN (SELECT pass_count FROM tests WHERE id=?) > 0 THEN 'PASS' ELSE status END WHERE id=?;" test-id test-id test-id)) Index: launch.scm ================================================================== --- launch.scm +++ launch.scm @@ -302,17 +302,13 @@ ;; "FAIL") ;; "FAIL") ;; New logic based on rollup-status (cond ((not (vector-ref exit-info 1)) "FAIL") ;; job failed to run - ((eq? rollup-status 0) - ;; if the current status is AUTO the defer to the calculated value (i.e. leave this AUTO) - (if (equal? (db:test-get-status testinfo) "AUTO") "AUTO" "PASS")) + ((eq? rollup-status 0) "PASS") ((eq? rollup-status 1) "FAIL") - ((eq? rollup-status 2) - ;; if the current status is AUTO the defer to the calculated value but qualify (i.e. make this AUTO-WARN) - (if (equal? (db:test-get-status testinfo) "AUTO") "AUTO-WARN" "WARN")) + ((eq? rollup-status 2) "WARN") (else "FAIL")) itemdat (args:get-arg "-m") #f))) ;; for automated creation of the rollup html file this is a good place... (if (not (equal? item-path "")) (tests:summarize-items db run-id test-name #f)) ;; don't force - just update if no Index: runs.scm ================================================================== --- runs.scm +++ runs.scm @@ -214,12 +214,12 @@ (if (and state status) (sqlite3:execute db "UPDATE tests SET state=?,status=?,event_time=strftime('%s','now') WHERE run_id=? AND testname=? AND item_path=?;" state real-status run-id test-name item-path)) ;; if status is "AUTO" then call rollup - (if (and test-id state status (or (equal? status "AUTO")(equal? status "AUTO-WARN"))) - (db:test-data-rollup db test-id status)) + (if (and test-id state status (equal? status "AUTO")) + (db:test-data-rollup db test-id)) ;; add metadata (need to do this way to avoid SQL injection issues) ;; :first_err ;; (let ((val (hash-table-ref/default otherdat ":first_err" #f))) DELETED tests/tests/ezlog_fail_then_pass/firststep.logpro Index: tests/tests/ezlog_fail_then_pass/firststep.logpro ================================================================== --- tests/tests/ezlog_fail_then_pass/firststep.logpro +++ /dev/null @@ -1,10 +0,0 @@ -;; (c) 2006,2007,2008,2009 Matthew Welland matt@kiatoa.com -;; -;; License GPL. - - -(expect:required in "LogFileBody" > 0 "Must be some files in the dir" #/.*/) - -(expect:ignore in "LogFileBody" < 99 "Ignore the word error in comments" #/^\/\/.*error/) -(expect:warning in "LogFileBody" = 0 "Any warning" #/WARNING/) -(expect:error in "LogFileBody" = 0 "Any error" (list #/ERROR/ #/error/)) ;; but disallow any other errors DELETED tests/tests/ezlog_fail_then_pass/main.sh Index: tests/tests/ezlog_fail_then_pass/main.sh ================================================================== --- tests/tests/ezlog_fail_then_pass/main.sh +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/bash - -megatest -step yepstep :state start :status n/a -ls /tmp -megatest -step yepstep :state end :status $? - -megatest -load-test-data << EOF -OPER,du, 1.2, 1.2, < , GBytes ,System didn't use too much space -EOF - -megatest -test-status :state COMPLETED :status AUTO DELETED tests/tests/ezlog_fail_then_pass/testconfig Index: tests/tests/ezlog_fail_then_pass/testconfig ================================================================== --- tests/tests/ezlog_fail_then_pass/testconfig +++ /dev/null @@ -1,13 +0,0 @@ -[setup] - -[ezsteps] -firststep main.sh - -[test_meta] -author matt -owner bob -description This test runs a single ezstep which is logpro clean - but fails based on -test-data loaded. - -tags first,single -reviewed 09/10/2011, by Matt