Overview
Comment: | rebuild-db now recursive until done. Added more fields to output of ods, added run id and grouped by testname |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
cc39eeae627b7256f3896ed9b244a384 |
User & Date: | matt on 2011-09-12 23:23:04 |
Other Links: | manifest | tags |
Context
2011-09-12
| ||
23:24 | Bumped version to v1.25 check-in: 68b04b8d85 user: matt tags: trunk, v1.25 | |
23:23 | rebuild-db now recursive until done. Added more fields to output of ods, added run id and grouped by testname check-in: cc39eeae62 user: matt tags: trunk | |
19:58 | Cleaned up tests dashboard. check-in: d90aea75ce user: mrwellan tags: trunk | |
Changes
Modified dashboard-tests.scm from [eadc61709a] to [5a910ae37e].
︙ | ︙ | |||
327 328 329 330 331 332 333 | (iup:hbox (iup:frame #:title "Test Steps" (let ((stepsdat ;;(iup:label "Test steps ........................................." ;; #:expand "YES" ;; #:size "200x150" ;; #:alignment "ALEFT:ATOP"))) | | | | 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 | (iup:hbox (iup:frame #:title "Test Steps" (let ((stepsdat ;;(iup:label "Test steps ........................................." ;; #:expand "YES" ;; #:size "200x150" ;; #:alignment "ALEFT:ATOP"))) (iup:textbox ;; #:action (lambda (obj char val) ;; #f) #:expand "YES" #:multiline "YES" #:font "Courier New, -10" #:size "100x150"))) (hash-table-set! widgets "Test Steps" (lambda (testdat) (let* ((currval (iup:attribute stepsdat "VALUE")) ;; "TITLE")) |
︙ | ︙ | |||
366 367 368 369 370 371 372 | (if (not (equal? currval newval)) (iup:attribute-set! stepsdat "VALUE" newval ))))) ;; "TITLE" newval))))) stepsdat)) ;; populate the Test Data panel (iup:frame #:title "Test Data" (let ((test-data | | | | 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 | (if (not (equal? currval newval)) (iup:attribute-set! stepsdat "VALUE" newval ))))) ;; "TITLE" newval))))) stepsdat)) ;; populate the Test Data panel (iup:frame #:title "Test Data" (let ((test-data (iup:textbox ;; #:action (lambda (obj char val) ;; #f) #:expand "YES" #:multiline "YES" #:font "Courier New, -10" #:size "100x150"))) (hash-table-set! widgets "Test Data" (lambda (testdat) ;; (let* ((currval (iup:attribute test-data "VALUE")) ;; "TITLE")) |
︙ | ︙ |
Modified db.scm from [46092bce0d] to [884f0970bf].
︙ | ︙ | |||
141 142 143 144 145 146 147 | (print "Current schema version: " mver " current megatest version: " megatest-version) (cond ((not mver) (print "Adding megatest-version to metadata") ;; Need to recreate the table (sqlite3:execute db "DROP TABLE IF EXISTS metadat;") (sqlite3:execute db "CREATE TABLE IF NOT EXISTS metadat (id INTEGER, var TEXT, val TEXT, CONSTRAINT metadat_constraint UNIQUE (var));") | | > | > | > | 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 | (print "Current schema version: " mver " current megatest version: " megatest-version) (cond ((not mver) (print "Adding megatest-version to metadata") ;; Need to recreate the table (sqlite3:execute db "DROP TABLE IF EXISTS metadat;") (sqlite3:execute db "CREATE TABLE IF NOT EXISTS metadat (id INTEGER, var TEXT, val TEXT, CONSTRAINT metadat_constraint UNIQUE (var));") (db:set-var db "MEGATEST_VERSION" 1.17) (patch-db)) ((< mver 1.21) (sqlite3:execute db "DROP TABLE IF EXISTS metadat;") (sqlite3:execute db "CREATE TABLE IF NOT EXISTS metadat (id INTEGER, var TEXT, val TEXT, CONSTRAINT metadat_constraint UNIQUE (var));") (db:set-var db "MEGATEST_VERSION" 1.21) ;; set before, just in case the changes are already applied (sqlite3:execute db test-meta-def) (for-each (lambda (stmt) (sqlite3:execute db stmt)) (list "ALTER TABLE tests ADD COLUMN first_err TEXT;" "ALTER TABLE tests ADD COLUMN first_warn TEXT;" )) (patch-db)) ((< mver 1.24) (db:set-var db "MEGATEST_VERSION" 1.24) (sqlite3:execute db "DROP TABLE IF EXISTS test_data;") (sqlite3:execute db "DROP TABLE IF EXISTS test_meta;") (sqlite3:execute db test-meta-def) (sqlite3:execute db "CREATE TABLE IF NOT EXISTS test_data (id INTEGER PRIMARY KEY, test_id INTEGER, category TEXT DEFAULT '', variable TEXT, value REAL, expected REAL, tol REAL, units TEXT, comment TEXT DEFAULT '', status TEXT DEFAULT 'n/a', CONSTRAINT test_data UNIQUE (test_id,category,variable));") (patch-db)) ((< mver megatest-version) (db:set-var db "MEGATEST_VERSION" megatest-version)))))) ;;====================================================================== ;; meta get and set vars ;;====================================================================== |
︙ | ︙ | |||
555 556 557 558 559 560 561 | csvlist))) ;; get a list of test_data records matching categorypatt (define (db:read-test-data db test-id categorypatt) (let ((res '())) (sqlite3:for-each-row (lambda (id test_id category variable value expected tol units comment status) | | | 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 | csvlist))) ;; get a list of test_data records matching categorypatt (define (db:read-test-data db test-id categorypatt) (let ((res '())) (sqlite3:for-each-row (lambda (id test_id category variable value expected tol units comment status) (set! res (cons (vector id test_id category variable value expected tol units comment status) res))) db "SELECT id,test_id,category,variable,value,expected,tol,units,comment,status FROM test_data WHERE test_id=? AND category LIKE ? ORDER BY category,variable;" test-id categorypatt) (reverse res))) (define (db:load-test-data db run-id test-name itemdat) (let* ((item-path (item-list->path itemdat)) (testdat (db:get-test-info db run-id test-name item-path)) |
︙ | ︙ | |||
739 740 741 742 743 744 745 | (define (db:extract-ods-file db outputfile keypatt-alist runspatt) (let* ((keysstr (string-intersperse (map car keypatt-alist) ",")) (keyqry (string-intersperse (map (lambda (p)(conc (car p) " like ? ")) keypatt-alist) " AND ")) (test-ids '()) (tempdir (conc "/tmp/" (current-user-name) "/" runspatt "_" (random 10000) "_" (current-process-id))) (runsheader (append (list "Runname") (map car keypatt-alist) | > | | < | > | | | | | | > | | 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 | (define (db:extract-ods-file db outputfile keypatt-alist runspatt) (let* ((keysstr (string-intersperse (map car keypatt-alist) ",")) (keyqry (string-intersperse (map (lambda (p)(conc (car p) " like ? ")) keypatt-alist) " AND ")) (test-ids '()) (tempdir (conc "/tmp/" (current-user-name) "/" runspatt "_" (random 10000) "_" (current-process-id))) (runsheader (append (list "Runname") (map car keypatt-alist) (list "Run Id" "Testname" "Description" "Item Path" "State" "Status" "Final Log" "Run Duration" "When Run" "Error" "Warn" "Tags" "Run Owner" "Comment" "Author" "Test Owner" "Reviewed" "Iterated" "Diskfree" "Uname" "Rundir" "Host" "Cpu Load"))) (results (list runsheader)) (testdata-header (list "Run Id" "Testname" "Item Path" "Category" "Variable" "Value" "Expected" "Tol" "Units" "Status" "Comment"))) (debug:print 2 "Using " tempdir " for constructing the ods file") ;; "Expected Value" ;; "Value Found" ;; "Tolerance" (apply sqlite3:for-each-row (lambda (test-id . b) (set! test-ids (cons test-id test-ids)) ;; test-id is now testname (set! results (append results (list b)))) ;; note, drop the test-id db (conc "SELECT t.testname,r.id,runname," keysstr ",t.testname,description, item_path,t.state,t.status, final_logf,run_duration, strftime('%m/%d/%Y %H:%M:%S',datetime(t.event_time,'unixepoch'),'localtime') first_err,first_warn,tm.tags,r.owner,t.comment, author, tm.owner,reviewed,iterated, diskfree,uname,rundir, host,cpuload,run_id FROM tests AS t INNER JOIN runs AS r ON t.run_id=r.id INNER JOIN test_meta AS tm ON tm.testname=t.testname WHERE runname LIKE ? AND " keyqry ";") runspatt (map cadr keypatt-alist)) (set! results (list (cons "Runs" results))) ;; now, for each test, collect the test_data info and add a new sheet (for-each (lambda (test-id) (let ((test-data (list testdata-header)) (curr-test-name #f)) (sqlite3:for-each-row (lambda (run-id testname item-path category variable value expected tol units status comment) (set! curr-test-name testname) (set! test-data (append test-data (list (list run-id testname item-path category variable value expected tol units status comment))))) db ;; "SELECT run_id,testname,item_path,category,variable,td.value AS value,expected,tol,units,td.status AS status,td.comment AS comment FROM test_data AS td INNER JOIN tests ON tests.id=td.test_id WHERE test_id=?;" "SELECT run_id,testname,item_path,category,variable,td.value AS value,expected,tol,units,td.status AS status,td.comment AS comment FROM test_data AS td INNER JOIN tests ON tests.id=td.test_id WHERE testname=?;" test-id) (if curr-test-name (set! results (append results (list (cons curr-test-name test-data))))) )) (delete-duplicates test-ids)) (system (conc "mkdir -p " tempdir)) ;; (pp results) (ods:list->ods tempdir (if (string-match (regexp "^[/~]+.*") outputfile) ;; full path? outputfile (begin (debug:print 0 "WARNING: path given, " outputfile " is relative, prefixing with current directory") (conc (current-directory) "/" outputfile))) results))) ;; (db:extract-ods-file db "outputfile.ods" '(("sysname" "%")("fsname" "%")("datapath" "%")) "%") |