Overview
Comment: | rpc working on Ubuntu except for rollup |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | test-specific-db |
Files: | files | file ages | folders |
SHA1: |
6747bc66332c50aaaf4f5af705c93ad2 |
User & Date: | matt on 2012-10-06 16:40:05 |
Other Links: | branch diff | manifest | tags |
Context
2012-10-06
| ||
19:08 | test4 passes 100% with rpc check-in: 78a6fc6609 user: matt tags: test-specific-db | |
16:40 | rpc working on Ubuntu except for rollup check-in: 6747bc6633 user: matt tags: test-specific-db | |
14:25 | Reverted register-test to not be remote in test1 check-in: fb07933d2a user: matt tags: test-specific-db | |
Changes
Modified db.scm from [dfb1bb5681] to [a974e4f201].
︙ | ︙ | |||
1292 1293 1294 1295 1296 1297 1298 | ;; 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) | | | | 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 | ;; 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) (let ((tdb (open-run-close db:open-test-db-by-test-id db test-id)) (fail-count 0) (pass-count 0)) (if tdb (begin (sqlite3:for-each-row (lambda (fcount pcount) (set! fail-count fcount) (set! pass-count pcount)) tdb "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;" test-id test-id) (sqlite3:finalize! tdb) ;; Now rollup the counts to the central megatest.db (rdb:pass-fail-counts test-id fail-count pass-count) ;; (sqlite3:execute db "UPDATE tests SET fail_count=?,pass_count=? WHERE id=?;" ;; fail-count pass-count test-id) (thread-sleep! 0.01) ;; play nice with the queue by ensuring the rollup is at least 10ms later than the set ;; if the test is not FAIL then set status based on the fail and pass counts. (rdb:test-rollup-iterated-pass-fail test-id) ;; (sqlite3:execute ;; db ;;; NOTE: Should this be WARN,FAIL? A WARN is not a FAIL????? BUG FIXME ;; "UPDATE tests ;; SET status=CASE WHEN (SELECT fail_count FROM tests WHERE id=?) > 0 |
︙ | ︙ | |||
1628 1629 1630 1631 1632 1633 1634 | (apply (rpc:procedure 'rdb:open-run-close host port) procname remargs)) (apply open-run-close (eval procname) remargs))) (define (rdb:test-set-status-state test-id status state msg) (if *runremote* (let ((host (vector-ref *runremote* 0)) (port (vector-ref *runremote* 1))) | > > > > > > > | | 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 | (apply (rpc:procedure 'rdb:open-run-close host port) procname remargs)) (apply open-run-close (eval procname) remargs))) (define (rdb:test-set-status-state test-id status state msg) (if *runremote* (let ((host (vector-ref *runremote* 0)) (port (vector-ref *runremote* 1))) (handle-exceptions exn (begin (debug:print 0 "EXCEPTION: rpc call failed?") (debug:print 0 " " ((condition-property-accessor 'exn 'message) exn)) (print-call-chain) (cdb:test-set-status-state test-id status state msg)) ((rpc:procedure 'cdb:test-set-status-state host port) test-id status state msg))) (cdb:test-set-status-state test-id status state msg))) (define (rdb:test-rollup-iterated-pass-fail test-id) (if *runremote* (let ((host (vector-ref *runremote* 0)) (port (vector-ref *runremote* 1))) ((rpc:procedure 'cdb:test-rollup-iterated-pass-fail host port) test-id)) |
︙ | ︙ |
Modified server.scm from [69a1ff5b72] to [ad03b1f127].
︙ | ︙ | |||
167 168 169 170 171 172 173 | (define (server:find-free-port-and-open port) (handle-exceptions exn (begin (print "Failed to bind to port " (rpc:default-server-port) ", trying next port") (server:find-free-port-and-open (+ port 1))) (rpc:default-server-port port) | > | | 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 | (define (server:find-free-port-and-open port) (handle-exceptions exn (begin (print "Failed to bind to port " (rpc:default-server-port) ", trying next port") (server:find-free-port-and-open (+ port 1))) (rpc:default-server-port port) (tcp-read-timeout 120000) (tcp-listen (rpc:default-server-port) ))) (define (server:client-setup) (if *runremote* (begin (debug:print 0 "ERROR: Attempt to connect to server but already connected") #f) (let* ((hostinfo (open-run-close db:get-var #f "SERVER")) |
︙ | ︙ |
Modified tests.scm from [20a3b458b9] to [1f14f85afa].
︙ | ︙ | |||
138 139 140 141 142 143 144 | #f)) #f))) (if waived (set! real-status "WAIVED")) (debug:print 4 "real-status " real-status ", waived " waived ", status " status) ;; update the primary record IF state AND status are defined (if (and state status) | < | | 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 | #f)) #f))) (if waived (set! real-status "WAIVED")) (debug:print 4 "real-status " real-status ", waived " waived ", status " status) ;; update the primary record IF state AND status are defined (if (and state status) (rdb:test-set-status-state test-id real-status state #f)) ;; if status is "AUTO" then call rollup (note, this one modifies data in test ;; run area, do not rpc it (yet) (if (and test-id state status (equal? status "AUTO")) (db:test-data-rollup #f test-id status)) ;; 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))) |
︙ | ︙ |