Overview
Comment: | Partial implemenation of rolling up item results |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
42b834da2024ff15519a7be8d4c9115b |
User & Date: | mrwellan on 2011-08-02 17:56:08 |
Other Links: | manifest | tags |
Context
2011-08-02
| ||
23:27 | Added auto-rolling up of item status into an html file check-in: 40fcb78bd6 user: matt tags: trunk, v1.19 | |
17:56 | Partial implemenation of rolling up item results check-in: 42b834da20 user: mrwellan tags: trunk | |
2011-07-19
| ||
10:52 | Made megatest stop if no disks for running tests are specified check-in: b5de223c55 user: mrwellan tags: trunk | |
Changes
Modified common.scm from [78d0284d61] to [a1016b8cd0].
1 2 3 4 5 6 7 8 9 10 11 | ;;====================================================================== ;; Copyright 2006-2011, Matthew Welland. ;; ;; This program is made available under the GNU GPL version 2.0 or ;; greater. See the accompanying file COPYING for details. ;; ;; This program is distributed WITHOUT ANY WARRANTY; without even the ;; implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR ;; PURPOSE. ;;====================================================================== | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | ;;====================================================================== ;; Copyright 2006-2011, Matthew Welland. ;; ;; This program is made available under the GNU GPL version 2.0 or ;; greater. See the accompanying file COPYING for details. ;; ;; This program is distributed WITHOUT ANY WARRANTY; without even the ;; implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR ;; PURPOSE. ;;====================================================================== (use sqlite3 srfi-1 posix regex-case base64 format dot-locking) (require-extension sqlite3 regex posix) (import (prefix sqlite3 sqlite3:)) (import (prefix base64 base64:)) ;; (require-library margs) (include "margs.scm") |
︙ | ︙ |
Modified megatest.scm from [6d9b67317c] to [cc849a95d3].
︙ | ︙ | |||
27 28 29 30 31 32 33 34 35 36 37 38 39 40 | and you have sourced the \"megatest.csh\" or \"megatest.sh\" file.) -step stepname -test-status : set the state and status of a test (use :state and :status) -setlog logfname : set the path/filename to the final log relative to the test directory. may be used with -test-status -set-toplog logfname : set the overall log for a suite of sub-tests -m comment : insert a comment for this test Run data :runname : required, name for this particular test run :state : required if updating step state; e.g. start, end, completed :status : required if updating step status; e.g. pass, fail, n/a | > | 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 | and you have sourced the \"megatest.csh\" or \"megatest.sh\" file.) -step stepname -test-status : set the state and status of a test (use :state and :status) -setlog logfname : set the path/filename to the final log relative to the test directory. may be used with -test-status -set-toplog logfname : set the overall log for a suite of sub-tests -summarize-items : for an itemized test create a summary html -m comment : insert a comment for this test Run data :runname : required, name for this particular test run :state : required if updating step state; e.g. start, end, completed :status : required if updating step status; e.g. pass, fail, n/a |
︙ | ︙ | |||
92 93 94 95 96 97 98 99 100 101 102 103 104 105 | "-debug" ;; for *verbosity* > 2 ) (list "-h" "-force" "-xterm" "-showkeys" "-test-status" "-gui" "-runall" ;; run all tests "-remove-runs" "-keepgoing" "-usequeue" "-rebuild-db" "-v" ;; verbose 2, more than normal (normal is 1) | > | 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 | "-debug" ;; for *verbosity* > 2 ) (list "-h" "-force" "-xterm" "-showkeys" "-test-status" "-summarize-items" "-gui" "-runall" ;; run all tests "-remove-runs" "-keepgoing" "-usequeue" "-rebuild-db" "-v" ;; verbose 2, more than normal (normal is 1) |
︙ | ︙ | |||
542 543 544 545 546 547 548 | (exit 6))) (sqlite3:finalize! db) (set! *didsomething* #t)))) (if (or (args:get-arg "-setlog") ;; since setting up is so costly lets piggyback on -test-status (args:get-arg "-set-toplog") (args:get-arg "-test-status") | | > | 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 | (exit 6))) (sqlite3:finalize! db) (set! *didsomething* #t)))) (if (or (args:get-arg "-setlog") ;; since setting up is so costly lets piggyback on -test-status (args:get-arg "-set-toplog") (args:get-arg "-test-status") (args:get-arg "-runstep") (args:get-arg "-summarize-items")) (if (not (getenv "MT_CMDINFO")) (begin (debug:print 0 "ERROR: MT_CMDINFO env var not set, commands -test-status, -runstep and -setlog must be called *inside* a megatest environment!") (exit 5)) (let* ((startingdir (current-directory)) (cmdinfo (read (open-input-string (base64:base64-decode (getenv "MT_CMDINFO"))))) (testpath (assoc/default 'testpath cmdinfo)) |
︙ | ︙ | |||
568 569 570 571 572 573 574 575 576 577 578 579 580 581 | (debug:print 0 "Failed to setup, exiting") (exit 1))) (set! db (open-db)) (if (args:get-arg "-setlog") (test-set-log! db run-id test-name itemdat (args:get-arg "-setlog"))) (if (args:get-arg "-set-toplog") (test-set-toplog! db run-id test-name (args:get-arg "-set-toplog"))) (if (args:get-arg "-runstep") (if (null? remargs) (begin (debug:print 0 "ERROR: nothing specified to run!") (sqlite3:finalize! db) (exit 6)) (let* ((stepname (args:get-arg "-runstep")) | > > | 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 | (debug:print 0 "Failed to setup, exiting") (exit 1))) (set! db (open-db)) (if (args:get-arg "-setlog") (test-set-log! db run-id test-name itemdat (args:get-arg "-setlog"))) (if (args:get-arg "-set-toplog") (test-set-toplog! db run-id test-name (args:get-arg "-set-toplog"))) (if (args:get-arg "-summarize-items") (tests:summarize-items db run-id test-name)) (if (args:get-arg "-runstep") (if (null? remargs) (begin (debug:print 0 "ERROR: nothing specified to run!") (sqlite3:finalize! db) (exit 6)) (let* ((stepname (args:get-arg "-runstep")) |
︙ | ︙ |
Modified runs.scm from [d0011041cc] to [07e183ee46].
︙ | ︙ | |||
125 126 127 128 129 130 131 132 133 134 135 136 137 138 | (let ((item-path (item-list->path itemdat))) (sqlite3:execute db "UPDATE tests SET final_logf=? WHERE run_id=? AND testname=? AND item_path=?;" logf run-id test-name item-path))) (define (test-set-toplog! db run-id test-name logf) (sqlite3:execute db "UPDATE tests SET final_logf=? WHERE run_id=? AND testname=? AND item_path='';" logf run-id test-name)) ;; ;; TODO: Converge this with db:get-test-info ;; (define (runs:get-test-info db run-id test-name item-path) ;; (let ((res #f)) ;; (vector #f #f #f #f #f #f))) ;; (sqlite3:for-each-row ;; (lambda (id run-id test-name state status) ;; (set! res (vector id run-id test-name state status item-path))) | > > > > > > > > > > > > > > > > > > > > > > > > > | 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 | (let ((item-path (item-list->path itemdat))) (sqlite3:execute db "UPDATE tests SET final_logf=? WHERE run_id=? AND testname=? AND item_path=?;" logf run-id test-name item-path))) (define (test-set-toplog! db run-id test-name logf) (sqlite3:execute db "UPDATE tests SET final_logf=? WHERE run_id=? AND testname=? AND item_path='';" logf run-id test-name)) (define (tests:summarize-items db run-id test-name) (obtain-dot-lock "final-results.html" 1 20 30) ;; retry every second for 20 seconds, call it dead after 30 seconds and steal the lock (let ((oup (open-output-file "final-results.html"))) (with-output-to-port oup (print "<html><title>Summary: " test-name "</title><body><table>") (sqlite3:for-each-row (lambda (id itempath state status run_duration logf comment) (print "<tr>" "<td><href=\"" itempath "/" logf "\"</a>" itempath "</td>" "<td>" state "</td>" "<td>" status "</td>" "<td>" comment "</td>" "</tr>") "SELECT id,item_path,state,status,run_duration,final_logf,comment FROM tests WHERE run_id=? AND testname=? AND item_path != '';")) (print "</body></html>") (close-output-port oup) (release-dot-lock "final-results.html")) ;; ADD UPDATE TO FINAL LOG HERE )) ;; ;; TODO: Converge this with db:get-test-info ;; (define (runs:get-test-info db run-id test-name item-path) ;; (let ((res #f)) ;; (vector #f #f #f #f #f #f))) ;; (sqlite3:for-each-row ;; (lambda (id run-id test-name state status) ;; (set! res (vector id run-id test-name state status item-path))) |
︙ | ︙ |