Overview
Comment: | New runs view |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | v1.65-real-new-runs-view |
Files: | files | file ages | folders |
SHA1: |
6401245dc8e827aca2ac32ea6578fce9 |
User & Date: | matt on 2021-02-15 21:46:03 |
Other Links: | branch diff | manifest | tags |
Context
2021-02-15
| ||
22:05 | tree enabled. check-in: 4f948bab9e user: matt tags: v1.65-real-new-runs-view | |
21:46 | New runs view check-in: 6401245dc8 user: matt tags: v1.65-real-new-runs-view | |
20:34 | Oops. Dropped a function. Added it back... check-in: 405c573a88 user: matt tags: v1.65-real | |
Changes
Modified Makefile from [0054ab478f] to [ee380a6e6a].
︙ | ︙ | |||
85 86 87 88 89 90 91 | mtest: $(OFILES) readline-fix.scm megatest.o $(MOFILES) $(MOIMPFILES) megatest-version.scm csc $(CSCOPTS) $(OFILES) $(MOFILES) $(MOIMPFILES) megatest.o -o mtest showmtesthash: @echo $(MTESTHASH) | | | 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 | mtest: $(OFILES) readline-fix.scm megatest.o $(MOFILES) $(MOIMPFILES) megatest-version.scm csc $(CSCOPTS) $(OFILES) $(MOFILES) $(MOIMPFILES) megatest.o -o mtest showmtesthash: @echo $(MTESTHASH) dboard : $(OFILES) $(GOFILES) dashboard.scm $(MOFILES) $(MOIMPFILES) megatest-version.scm megatest-fossil-hash.scm dashboard-new-runs-view.scm csc $(CSCOPTS) $(OFILES) dashboard.scm $(GOFILES) $(MOFILES) $(MOIMPFILES) -o dboard mtut: $(OFILES) $(MOFILES) megatest-fossil-hash.scm mtut.scm megatest-version.scm csc $(CSCOPTS) $(OFILES) $(MOFILES) mtut.scm -o mtut # include makefile.inc |
︙ | ︙ |
Added dashboard-new-runs-view.scm version [bca8e9de51].
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 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 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 | ;;====================================================================== ;; Extracting the data to display for runs ;; ;; This needs to be re-entrant such that it does one column per call ;; on the zeroeth call update runs data ;; on each subsequent call update one run (configurable - could do two, three ... or update until tdelta exceeded ;; on last run reset to zeroeth ;; ;; 1. select with run filters; area, target, runname, runstate, runstatus, starttime, duration ;; - put this information into two data structures: ;; a. hash of area/target/runname => runstruct #< ordernun, id, area, target, runname, state, ;; status, starttime, duration, non-deleted testcount> ;; ordernum reflects order as received from sql query ;; b. sparsevec of id => runstruct ;; 2. for each run in runshash ordered by ordernum do: ;; retrieve data since last update for that run ;; if there is a deleted test - retrieve full data ;; if there are non-deleted tests register this run in the columns sparsevec ;; if this is the zeroeth column regenerate the rows sparsevec ;; if this column is in the visible zone update visible cells ;; ;; Other factors: ;; 1. left index handling: ;; - add test/itempaths to left index as discovered, re-order and ;; update row -> test/itempath mapping on each read run ;;====================================================================== ;; runs is <vec header runs> ;; get ALL runs info ;; update rdat-targ-run-id ;; update rdat-runs ;; (define (dashboard:update-runs-data rdat) (let* ((tb (dboard:rdat-runs-tree rdat)) (targ-sql-filt (dboard:rdat-targ-sql-filt rdat)) (runname-sql-filt (dboard:rdat-runname-sql-filt rdat)) (state-sql-filt (dboard:rdat-run-state-sql-filt rdat)) (status-sql-filt (dboard:rdat-run-status-sql-filt rdat)) ;; Use (db:get-value-by-header (db:get-header runinfo)(db:get-rows runinfo)) (data (rmt:simple-get-runs runname-sql-filt #f #f targ-sql-filt #f)) (numruns (length data))) ;; store in the runsbynum vector (dboard:rdat-runsbynum-set! rdat (list->vector data)) ;; update runs id => runrec ;; update targ-runid target/runname => run-id (for-each (lambda (runrec) (let* ((run-id (simple-run-id runrec)) (full-targ-runname (conc (simple-run-target runrec) "/" (simple-run-runname runrec)))) (debug:print 0 *default-log-port* "Update run " run-id) (sparse-vector-set! (dboard:rdat-runs rdat) run-id runrec) (hash-table-set! (dboard:rdat-targ-runid rdat) full-targ-runname run-id) )) data) numruns)) ;;====================================================================== ;; The "new" runs browser, this one sets up the view and registers the ;; updater ;; (define (dashboard:runs-browse commondat tabdat #!key (tab-num 5)) (let* ((rdat (make-dboard:rdat))) (dboard:commondat-add-updater commondat (lambda () (new-runs-updater commondat tabdat rdat)) tab-num: tab-num) (iup:split #:orientation "VERTICAL" #:value 150 (iup:vbox (dboard:runs-tree-new-view-browser commondat rdat)) (iup:split #:orientation "VERTICAL" #:value 250 (iup:vbox (iup:matrix)) (iup:vbox (iup:matrix)))))) (define (dashboard:runs-browse-updater commondat tabdat) #f) (define (new-runs-updater commondat tabdat rdat) (let* ((runnum (dboard:rdat-runnum rdat)) (start-time (current-milliseconds)) (tot-runs #f)) (if (eq? runnum 0)(dashboard:update-runs-data rdat)) (set! tot-runs (vector-length (dboard:rdat-runsbynum rdat))) (let loop ((rn runnum)) (if (and (< (- (current-milliseconds) start-time) 250) (< rn tot-runs)) (let* ((newrn (if (>= runnum (vector-length (dboard:rdat-runsbynum rdat))) 0 ;; start over (+ rn 1)))) ;; (+ runnum 1))) (dashboard:update-run-data rn rdat) (dboard:rdat-runnum-set! rdat newrn) (if (> newrn 0) (loop newrn))))) (if (>= (dboard:rdat-runnum rdat) tot-runs) (dboard:rdat-runnum-set! rdat 0)) ;; (dboard:rdat-runnum-set! rdat rn))) ;; not needed as it is set above ;; (dboard:rdat-last-update-set! rdat (- (current-seconds) 10)) ;; (tree:add-node tb "Runs" (string-split full-targ-runname "/")) '())) #;(define (make-runs-view commondat rdat tab-num) ;; register an updater (dboard:commondat-add-updater commondat (lambda () (new-runs-updater commondat rdat)) tab-num: tab-num) (iup:vbox (iup:split #:orientation "VERTICAL" ;; "HORIZONTAL" #:value 100 (dboard:runs-tree-new-browser commondat rdat) (dboard:runs-new-matrix commondat rdat) ))) ;; NOTE: runnum is NOT the run-id, it is a pointer into the runsbynum vector ;; (define (dashboard:update-run-data runnum rdat) (let* ((curr-time (current-seconds)) (runrec (vector-ref (dboard:rdat-runsbynum rdat) runnum)) (run-id (simple-run-id runrec)) (last-update (sparse-vector-ref (dboard:rdat-last-updates rdat) run-id)) ;; filters (testname-sql-filt (dboard:rdat-testname-sql-filt rdat)) ;; (itempath-sql-filt (dboard:rdat-itempath-sql-filt rdat)) (test-state-sql-filt (dboard:rdat-test-state-sql-filt rdat)) ;; not used yet (test-status-sql-filt (dboard:rdat-test-status-sql-filt rdat)) ;; not used yet (tests (rmt:get-tests-for-run-state-status run-id testname-sql-filt last-update ;; last-update ))) (sparse-vector-set! (dboard:rdat-last-updates rdat) run-id (- curr-time 1)) (debug:print 0 *default-log-port* "Got " (length tests) " tests for run-id " run-id " testname-sql-filt " testname-sql-filt " and last-update " last-update) (length tests))) (define (dboard:runs-new-matrix commondat rdat) (iup:matrix #:alignment1 "ALEFT" ;; #:expand "YES" ;; "HORIZONTAL" #:scrollbar "YES" #:numcol 10 #:numlin 20 #:numcol-visible 5 ;; (min 8) #:numlin-visible 1 #:click-cb (lambda (obj row col status) (let* ((cell (conc row ":" col))) #f)) )) ;; browse runs as a tree. Used in both "Runs" tab and ;; in the runs control panel. ;; ;; THIS IS THE NEW ONE ;; (define (dboard:runs-tree-new-view-browser commondat rdat) (let* ((txtbox (iup:textbox #:action (lambda (val a b) (debug:catch-and-dump (lambda () ;; for the Runs view we put the list ;; of keyvals into tabdat target for ;; the Run Controls we put then update ;; the run-command (if b (dboard:rdat-targ-sql-filt-set! rdat (string-split b "/"))) #;(dashboard:update-run-command tabdat)) "command-testname-selector tb action")) ;; #:value (dboard:test-patt->lines ;; This seems like it was wrong, BUG in code where it was copied from? ;; (dboard:tabdat-test-patts-use tabdat)) #:expand "HORIZONTAL" ;; #:size "10x30" )) (tb (iup:treebox #:value 0 #:title "Runs" ;; was #:name -- iup 3.19 changed ;; this... "Changed: [DEPRECATED ;; REMOVED] removed the old attribute ;; NAMEid from IupTree to avoid ;; conflict with the common attribute ;; NAME. Use the TITLEid attribute." #:expand "YES" #:addexpanded "YES" #:size "10x" #:selection-cb (lambda (obj id state) (debug:catch-and-dump (lambda () (let* ((run-path (tree:node->path obj id)) (run-id (new-tree-path->run-id rdat (cdr run-path)))) ;; (dboard:tabdat-view-changed-set! tabdat #t) ;; ?? ;; done below when run-id is a number (dboard:rdat-targ-sql-filt-set! rdat (cdr run-path)) ;; (print ;; "run-path: ;; " ;; run-path) (iup:attribute-set! txtbox "VALUE" (string-intersperse (cdr run-path) "/")) #;(dashboard:update-run-command tabdat) #;(dboard:tabdat-layout-update-ok-set! tabdat #f) (if (number? run-id) (begin ;; capture last two in tabdat. (dboard:rdat-push-run-id rdat run-id) (dboard:rdat-view-changed-set! rdat #t)) (debug:print-error 5 *default-log-port* "tree-path->run-id returned non-number " run-id)))) "treebox")) ;; (print "path: " (tree:node->path obj id) " run-id: " run-id) ))) (dboard:rdat-runs-tree-set! rdat tb) (iup:detachbox (iup:vbox txtbox tb )))) |
Modified dashboard.scm from [065c30d7e0] to [8ae05c9fa2].
︙ | ︙ | |||
2600 2601 2602 2603 2604 2605 2606 | ;; simple-run-status procedure (x3818) ;; simple-run-status-set! procedure (x3814 val3815) ;; simple-run-target procedure (x3786) ;; simple-run-target-set! procedure (x3782 val3783) ;; simple-run? procedure (x3780) | < < < < < < < < < < < < < < < < < < < < < < < < < < | < < < < < < < < < < < < < < < < < < < < < < < < < < < < < | < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < > | 2600 2601 2602 2603 2604 2605 2606 2607 2608 2609 2610 2611 2612 2613 2614 2615 2616 2617 2618 2619 2620 2621 2622 2623 2624 | ;; simple-run-status procedure (x3818) ;; simple-run-status-set! procedure (x3814 val3815) ;; simple-run-target procedure (x3786) ;; simple-run-target-set! procedure (x3782 val3783) ;; simple-run? procedure (x3780) ;; This is the new runs view (include "dashboard-new-runs-view.scm") (define (make-dashboard-buttons commondat) ;; runs-sum-dat new-view-dat) (let* ((stats-dat (dboard:tabdat-make-data)) (runs-dat (dboard:tabdat-make-data)) (runs2-dat (make-dboard:rdat)) ;; (dboard:tabdat-make-data)) (onerun-dat (dboard:tabdat-make-data)) ;; name for run-summary structure (runcontrols-dat (dboard:tabdat-make-data)) (runtimes-dat (dboard:tabdat-make-data)) (runs-browse-dat (dboard:tabdat-make-data)) (nruns (dboard:tabdat-numruns runs-dat)) (ntests (dboard:tabdat-num-tests runs-dat)) (keynames (dboard:tabdat-dbkeys runs-dat)) (nkeys (length keynames)) (runsvec (make-vector nruns)) (header (make-vector nruns)) (lftcol (make-vector ntests)) |
︙ | ︙ | |||
2934 2935 2936 2937 2938 2939 2940 | (apply iup:hbox (reverse hdrlst)) (apply iup:hbox (reverse bdylst)) (dashboard:runs-horizontal-slider runs-dat)))) controls )) (views-cfgdat (common:load-views-config)) (additional-tabnames '()) | | | 2806 2807 2808 2809 2810 2811 2812 2813 2814 2815 2816 2817 2818 2819 2820 | (apply iup:hbox (reverse hdrlst)) (apply iup:hbox (reverse bdylst)) (dashboard:runs-horizontal-slider runs-dat)))) controls )) (views-cfgdat (common:load-views-config)) (additional-tabnames '()) (tab-start-num 6) ;; DON'T FORGET TO UPDATE THIS WHEN CHANGING THE STANDARD TABS BELOW ;; (data (dboard:tabdat-init (make-d:data))) (additional-views ;; process views-dat (let ((tab-num tab-start-num) (result '())) (for-each (lambda (view-name) (debug:print 0 *default-log-port* "Adding view " view-name) |
︙ | ︙ | |||
2980 2981 2982 2983 2984 2985 2986 | (dboard:tabdat-layout-update-ok-set! tabdat #t))) "tabchangepos")) (dashboard:summary commondat stats-dat tab-num: 0) runs-view ;; (make-runs-view commondat runs2-dat 2) (dashboard:runs-summary commondat onerun-dat tab-num: 2) (dashboard:run-controls commondat runcontrols-dat tab-num: 3) | | > > | > | 2852 2853 2854 2855 2856 2857 2858 2859 2860 2861 2862 2863 2864 2865 2866 2867 2868 2869 2870 2871 2872 2873 2874 2875 2876 2877 2878 2879 2880 2881 2882 2883 2884 2885 2886 2887 2888 2889 2890 2891 2892 2893 2894 2895 2896 | (dboard:tabdat-layout-update-ok-set! tabdat #t))) "tabchangepos")) (dashboard:summary commondat stats-dat tab-num: 0) runs-view ;; (make-runs-view commondat runs2-dat 2) (dashboard:runs-summary commondat onerun-dat tab-num: 2) (dashboard:run-controls commondat runcontrols-dat tab-num: 3) (dashboard:run-times commondat runtimes-dat tab-num: 4) (dashboard:runs-browse commondat runs-browse-dat tab-num: 5) additional-views))) ;; (set! (iup:callback tabs tabchange-cb:) (lambda (a b c)(print "SWITCHED TO TAB: " a " " b " " c))) (iup:attribute-set! tabs "TABTITLE0" "Summary") (iup:attribute-set! tabs "TABTITLE1" "Runs") ;; (iup:attribute-set! tabs "TABTITLE2" "Runs2") (iup:attribute-set! tabs "TABTITLE2" "Run Summary") (iup:attribute-set! tabs "TABTITLE3" "Run Control") (iup:attribute-set! tabs "TABTITLE4" "Run Times") ;; (iup:attribute-set! tabs "TABTITLE3" "New View") ;; (iup:attribute-set! tabs "TABTITLE4" "Run Control") (iup:attribute-set! tabs "TABTITLE5" "Runs Browse") ;; set the tab names for user added tabs (for-each (lambda (tab-info) (iup:attribute-set! tabs (conc "TABTITLE" (car tab-info)) (cdr tab-info))) additional-tabnames) (iup:attribute-set! tabs "BGCOLOR" "190 190 190") ;; make the iup tabs object available (for changing color for example) (dboard:commondat-hide-not-hide-tabs-set! commondat tabs) ;; now set up the tabdat lookup (dboard:common-set-tabdat! commondat 0 stats-dat) (dboard:common-set-tabdat! commondat 1 runs-dat) ;;(dboard:common-set-tabdat! commondat 2 runs2-dat) (dboard:common-set-tabdat! commondat 2 onerun-dat) (dboard:common-set-tabdat! commondat 3 runcontrols-dat) (dboard:common-set-tabdat! commondat 4 runtimes-dat) (dboard:common-set-tabdat! commondat 5 runs-browse-dat) (iup:vbox tabs ;; controls )))) (vector keycol lftcol header runsvec))) |
︙ | ︙ |