Overview
Comment: | Fixed broken -list-runs, dashboard key filters |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
2ab4dded8cc5c902e5bb56a9b3283fa5 |
User & Date: | matt on 2011-09-25 15:40:58 |
Other Links: | manifest | tags |
Context
2011-09-25
| ||
18:02 | Extracted aliases into scripts for convience functions mt_runstep and mt_laststep, fixed validvalues handling check-in: 06c4198b8e user: matt tags: trunk | |
15:40 | Fixed broken -list-runs, dashboard key filters check-in: 2ab4dded8c user: matt tags: trunk | |
2011-09-24
| ||
13:42 | Fixed title by removing \reportTopic check-in: 203acbc2e3 user: matt tags: trunk | |
Changes
Modified dashboard.scm from [06f47be6c4] to [d2fd43fdf3].
︙ | ︙ | |||
73 74 75 76 77 78 79 | (define *db* (open-db)) (define toplevel #f) (define dlg #f) (define max-test-num 0) (define *keys* (get-keys *db*)) | | | 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 | (define *db* (open-db)) (define toplevel #f) (define dlg #f) (define max-test-num 0) (define *keys* (get-keys *db*)) (define *dbkeys* (map (lambda (x)(vector-ref x 0)) (append *keys* (list (vector "runname" "blah"))))) (define *header* #f) (define *allruns* '()) (define *buttondat* (make-hash-table)) ;; <run-id color text test run-key> (define *alltestnamelst* '()) (define *searchpatts* (make-hash-table)) (define *num-runs* 8) |
︙ | ︙ | |||
173 174 175 176 177 178 179 | (define (colors-similar? color1 color2) (let* ((c1 (map string->number (string-split color1))) (c2 (map string->number (string-split color2))) (delta (map (lambda (a b)(abs (- a b))) c1 c2))) (null? (filter (lambda (x)(> x 3)) delta)))) | > | | | 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 | (define (colors-similar? color1 color2) (let* ((c1 (map string->number (string-split color1))) (c2 (map string->number (string-split color2))) (delta (map (lambda (a b)(abs (- a b))) c1 c2))) (null? (filter (lambda (x)(> x 3)) delta)))) ;; keypatts: ( (KEY1 "abc%def")(KEY2 "%") ) (define (update-rundat runnamepatt numruns testnamepatt itemnamepatt keypatts) (let* ((allruns (db:get-runs *db* runnamepatt numruns *start-run-offset* keypatts)) (header (db:get-header allruns)) (runs (db:get-rows allruns)) (result '()) (maxtests 0)) (if (> (+ *last-update* 300) (current-seconds)) ;; every five minutes (begin (set! *last-update* (current-seconds)) |
︙ | ︙ | |||
519 520 521 522 523 524 525 | (vector lftcol header runsvec))) (if (or (args:get-arg "-rows") (get-environment-variable "DASHBOARDROWS" )) (begin (set! *num-tests* (string->number (or (args:get-arg "-rows") (get-environment-variable "DASHBOARDROWS")))) | | | | > > > > > > | 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 | (vector lftcol header runsvec))) (if (or (args:get-arg "-rows") (get-environment-variable "DASHBOARDROWS" )) (begin (set! *num-tests* (string->number (or (args:get-arg "-rows") (get-environment-variable "DASHBOARDROWS")))) (update-rundat "%" *num-runs* "%" "%" '())) (set! *num-tests* (min (max (update-rundat "%" *num-runs* "%" "%" '()) 8) 20))) (define *tim* (iup:timer)) (define *ord* #f) (iup:attribute-set! *tim* "TIME" 300) (iup:attribute-set! *tim* "RUN" "YES") (define (run-update x) (update-buttons uidat *num-runs* *num-tests*) (update-rundat (hash-table-ref/default *searchpatts* "runname" "%") *num-runs* (hash-table-ref/default *searchpatts* "test-name" "%") (hash-table-ref/default *searchpatts* "item-name" "%") (let ((res '())) (for-each (lambda (key) (let ((val (hash-table-ref/default *searchpatts* key #f))) (if val (set! res (cons (list key val) res))))) *dbkeys*) res))) (cond ((args:get-arg "-run") (let ((runid (string->number (args:get-arg "-run")))) (if runid (begin (lambda (x) |
︙ | ︙ | |||
553 554 555 556 557 558 559 | (let ((testid (string->number (args:get-arg "-test")))) (if testid (examine-test *db* testid) (begin (print "ERROR: testid is not a number " (args:get-arg "-test")) (exit 1))))) (else | | | 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 | (let ((testid (string->number (args:get-arg "-test")))) (if testid (examine-test *db* testid) (begin (print "ERROR: testid is not a number " (args:get-arg "-test")) (exit 1))))) (else (set! uidat (make-dashboard-buttons *num-runs* *num-tests* *dbkeys*)) (iup:callback-set! *tim* "ACTION_CB" (lambda (x) (run-update x))))) ;(print x))))) (iup:main-loop) |
Modified db.scm from [371ee9f49e] to [503370f6dd].
︙ | ︙ | |||
237 238 239 240 241 242 243 244 | (define (runs:get-std-run-fields keys remfields) (let* ((header (append (map key:get-fieldname keys) remfields)) (keystr (conc (keys->keystr keys) "," (string-intersperse remfields ",")))) (list keystr header))) ;; replace header and keystr with a call to runs:get-std-run-fields | > > > > > > > | | > > > > > > > > > > > > > > > > > > > | < < < < < < < < < < < < < < < < < < < < < < < < < < < < < | 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 | (define (runs:get-std-run-fields keys remfields) (let* ((header (append (map key:get-fieldname keys) remfields)) (keystr (conc (keys->keystr keys) "," (string-intersperse remfields ",")))) (list keystr header))) ;; WAS db-get-runs FIXME IN REMAINING CODE ;; ;; MERGE THIS WITH db:get-runs, accidently wrote it twice ;; ;; replace header and keystr with a call to runs:get-std-run-fields ;; ;; keypatts: ( (KEY1 "abc%def")(KEY2 "%") ) ;; (define (db:get-runs db runpatt count offset keypatts) (let* ((res '()) (keys (db-get-keys db)) (remfields (list "id" "runname" "state" "status" "owner" "event_time")) (header (append (map key:get-fieldname keys) remfields)) (keystr (conc (keys->keystr keys) "," (string-intersperse remfields ","))) (qrystr (conc "SELECT " keystr " FROM runs WHERE runname LIKE ? " ;; Generate: " AND x LIKE 'keypatt' ..." (if (null? keypatts) "" (conc " AND " (string-join (map (lambda (keypatt) (let ((key (car keypatt)) (patt (cadr keypatt))) (conc key " LIKE '" patt "'"))) keypatts) " AND "))) " ORDER BY event_time DESC " (if (number? count) (conc " LIMIT " count) "") (if (number? offset) (conc " OFFSET " offset) "")))) (debug:print 4 "db:get-runs qrystr: " qrystr "\nkeypatts: " keypatts) (sqlite3:for-each-row (lambda (a . x) (set! res (cons (apply vector a x) res))) db qrystr runpatt) (vector header res))) ;; just get count of runs (define (db:get-num-runs db runpatt) (let ((numruns 0)) (sqlite3:for-each-row (lambda (count) (set! numruns count)) db "SELECT COUNT(id) FROM runs WHERE runname LIKE ?;" runpatt) numruns)) ;; use this one for db-get-run-info (define-inline (db:get-row vec)(vector-ref vec 1)) ;; use (get-value-by-header (db:get-header runinfo)(db:get-row runinfo)) (define (db:get-run-info db run-id) (let* ((res #f) (keys (db-get-keys db)) |
︙ | ︙ | |||
674 675 676 677 678 679 680 | (let ((res (make-hash-table))) (for-each (lambda (step) (debug:print 6 "step=" step) (let ((record (hash-table-ref/default res (db:step-get-stepname step) | | | | 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 | (let ((res (make-hash-table))) (for-each (lambda (step) (debug:print 6 "step=" step) (let ((record (hash-table-ref/default res (db:step-get-stepname step) ;; stepname start end status time (needed for sorting) (vector (db:step-get-stepname step) "" "" "" "" 0)))) (debug:print 6 "record(before) = " record "\nid: " (db:step-get-id step) "\nstepname: " (db:step-get-stepname step) "\nstate: " (db:step-get-state step) "\nstatus: " (db:step-get-status step) "\ntime: " (db:step-get-event_time step)) (case (string->symbol (db:step-get-state step)) |
︙ | ︙ |
Modified megatest.scm from [847bc202b1] to [5cbadc7e03].
︙ | ︙ | |||
221 222 223 224 225 226 227 | (if (args:get-arg "-list-runs") (let* ((db (begin (setup-for-run) (open-db))) (runpatt (args:get-arg "-list-runs")) (testpatt (args:get-arg "-testpatt")) (itempatt (args:get-arg "-itempatt")) | | | 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 | (if (args:get-arg "-list-runs") (let* ((db (begin (setup-for-run) (open-db))) (runpatt (args:get-arg "-list-runs")) (testpatt (args:get-arg "-testpatt")) (itempatt (args:get-arg "-itempatt")) (runsdat (db:get-runs db runpatt #f #f '())) (runs (db:get-rows runsdat)) (header (db:get-header runsdat)) (keys (db-get-keys db)) (keynames (map key:get-fieldname keys))) ;; Each run (for-each (lambda (run) |
︙ | ︙ | |||
261 262 263 264 265 266 267 | (begin (print " cpuload: " (db:test-get-cpuload test) "\n diskfree: " (db:test-get-diskfree test) "\n uname: " (db:test-get-uname test) "\n rundir: " (db:test-get-rundir test) ) ;; Each test | | | 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 | (begin (print " cpuload: " (db:test-get-cpuload test) "\n diskfree: " (db:test-get-diskfree test) "\n uname: " (db:test-get-uname test) "\n rundir: " (db:test-get-rundir test) ) ;; Each test (let ((steps (db:get-steps-for-test db (db:test-get-id test)))) (for-each (lambda (step) (format #t " Step: ~20a State: ~10a Status: ~10a Time ~22a\n" (db:step-get-stepname step) (db:step-get-state step) (db:step-get-status step) |
︙ | ︙ |