Megatest

Diff
Login

Differences From Artifact [9bbb1ee284]:

To Artifact [93ed3833f7]:


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
227
228
229
230
231
232
233
234
235
236
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
  (let* ((tnum          (or tab-num
			     (dboard:commondat-curr-tab-num commondat)))
	 (curr-updaters (hash-table-ref/default (dboard:commondat-updaters commondat) tnum '())))
    (hash-table-set! (dboard:commondat-updaters commondat)
		     tnum
		     (cons updater curr-updaters))))

;; data for each specific tab goes here
;;
(defstruct dboard:tabdat 
  ;; runs
  ((allruns         '())                 : list)        ;; list of dboard:rundat records
  ((allruns-by-id    (make-hash-table))  : hash-table)  ;; hash of run-id -> dboard:rundat records
  ((done-runs       '())                 : list)        ;; list of runs already drawn
  ((not-done-runs   '())                 : list)        ;; list of runs not yet drawn
  (header            #f)                                ;; header for decoding the run records
  (keys              #f)                                ;; keys for this run (i.e. target components)
  ((numruns          (string->number (or (args:get-arg "-cols") "10")))                 : number)      ;; 
  ((tot-runs          0)                 : number)
  ((last-data-update  0)                 : number)      ;; last time the data in allruns was updated
  ((last-runs-update  0)                 : number)      ;; last time we pulled the runs info to update the tree
  (runs-mutex         (make-mutex))                     ;; use to prevent parallel access to draw objects
  ((run-update-times  (make-hash-table)) : hash-table)  ;; update times indexed by run-id
  ((last-test-dat      (make-hash-table)) : hash-table)  ;; cache last tests dat by run-id
  ((run-db-paths      (make-hash-table)) : hash-table)  ;; cache the paths to the run db files

  ;; Runs view
  ((buttondat         (make-hash-table)) : hash-table)  ;;     
  ((item-test-names  '())                : list)        ;; list of itemized tests
  ((run-keys          (make-hash-table)) : hash-table)
  (runs-matrix        #f)                               ;; used in newdashboard
  ((start-run-offset   0)                : number)      ;; left-right slider value
  ((start-test-offset  0)                : number)      ;; up-down slider value
  ((runs-btn-height    (or (configf:lookup *configdat* "dashboard" "btn-height") "x14")) : string)  ;; was 12
  ((runs-btn-fontsz    (or (configf:lookup *configdat* "dashboard" "btn-fontsz") "10")) : string)   ;; was 8
  ((runs-cell-width    (or (configf:lookup *configdat* "dashboard" "cell-width") "60")) : string)   ;; was 50
  ((all-test-names     '())              : list)
  
  ;; Canvas and drawing data
  (cnv                #f)
  (cnv-obj            #f)
  (drawing            #f)
  ((run-start-row     0)                 : number)
  ((max-row           0)                 : number)
  ((running-layout    #f)                : boolean)
  (originx            #f)
  (originy            #f)
  ((layout-update-ok  #t)                : boolean)
  ((compact-layout    #t)                : boolean)

  ;; Run times layout
  ;; (graph-button-box #f) ;; RA => Think it is not referenced anywhere
  (graph-matrix     #f)
  ((graph-matrix-table (make-hash-table)) : hash-table) ;; graph-dats referenced thru graph name info
  ((graph-cell-table (make-hash-table)) : hash-table) ;; graph-dats referenced thru matrix cell info
  ((graph-matrix-row 1) : number)
  ((graph-matrix-col 1) : number)

  ;; Controls used to launch runs etc.
  ((command          "")                 : string)      ;; for run control this is the command being built up
  (command-tb        #f)	                        ;; widget for the type of command; run, remove-runs etc.
  (test-patterns-textbox #f)                            ;; text box widget for editing a list of test patterns
  (key-listboxes     #f)			         
  (key-lbs           #f)			         
  run-name                                              ;; from run name setting widget
  states                                                ;; states for -state s1,s2 ...
  statuses                                              ;; statuses for -status s1,s2 ...
						         
  ;; Selector variables				         
  curr-run-id                                           ;; current row to display in Run summary view
  prev-run-id                                           ;; previous runid selected before current runid was selected (used in xor-two-runs runs summary mode
  curr-test-ids                                         ;; used only in dcommon:run-update which is used in newdashboard
  ((filters-changed  #t)                  : boolean)    ;; to to indicate that the user changed filters for this tab
  ((last-filter-str  "")                  : string)      ;; conc the target runname and testpatt for a signature of changed filters
  ((hide-empty-runs  #f)                  : boolean)     
  ((hide-not-hide    #t)                  : boolean)     ;; toggle for hide/not hide empty runs
  (hide-not-hide-button #f)
  ((searchpatts        (make-hash-table)) : hash-table)  ;;
  ((state-ignore-hash  (make-hash-table)) : hash-table)  ;; hash of  STATE => #t/#f for display control
  ((status-ignore-hash (make-hash-table)) : hash-table)  ;; hash of STATUS => #t/#f
  (target              #f)
  (test-patts          #f)

  ;; db info to file the .db files for the area
  (access-mode        (db:get-access-mode))             ;; use cached db or not
  (dbdir               #f)
  (dbfpath             #f)
  (dbkeys              #f)
  ((last-db-update     (make-hash-table)) : hash-table) ;; last db file timestamp
  (monitor-db-path     #f)                              ;; where to find monitor.db
  ro                                                    ;; is the database read-only?

  ;; tests data
  ((num-tests          10)               : number)      ;; total number of tests to show (used in the old runs display)

  ;; runs tree
  ((path-run-ids       (make-hash-table)) : hash-table) ;; path (target / runname) => id
  (runs-tree           #f)
  ((runs-tree-ht       (make-hash-table)) : hash-table) ;; track which targets added to tree (merge functionality with path-run-ids?)

  ;; tab data
  ((view-changed       #t)                : boolean)   
  ((xadj               0)                 : number)     ;; x slider number (if using canvas)
  ((yadj               0)                 : number)     ;; y slider number (if using canvas)
  ;; runs-summary tab state
  ((runs-summary-modes '((one-run . "Show One Run") (xor-two-runs . "XOR Two Runs") (xor-two-runs-hide-clean . "XOR; Hide Clean")) )   : list)
  ((runs-summary-mode-buttons '())               : list)
  ((runs-summary-mode  'one-run)            : symbol)
  ((runs-summary-mode-change-callbacks '()) : list)
  (runs-summary-source-runname-label #f)
  (runs-summary-dest-runname-label #f)
  ;; runs summary view
  
  tests-tree       ;; used in newdashboard
  )


;; register tabdat with BBpp
;; this is used by BBpp (Brandon's pretty printer) to convert dboard:tabdat into a composition of lists that pp will handle
(hash-table-set! *BBpp_custom_expanders_list* TABDAT:
                 (cons dboard:tabdat?
                       (lambda (tabdat-item)
                         (filter







|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<
>







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
227
228
229
230
231
232
233
234
235
236
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
  (let* ((tnum          (or tab-num
			     (dboard:commondat-curr-tab-num commondat)))
	 (curr-updaters (hash-table-ref/default (dboard:commondat-updaters commondat) tnum '())))
    (hash-table-set! (dboard:commondat-updaters commondat)
		     tnum
		     (cons updater curr-updaters))))

;;   ;; data for each specific tab goes here
;;   ;;
;;   (defstruct dboard:tabdat 
;;     ;; runs
;;     ((allruns         '())                 : list)        ;; list of dboard:rundat records
;;     ((allruns-by-id    (make-hash-table))  : hash-table)  ;; hash of run-id -> dboard:rundat records
;;     ((done-runs       '())                 : list)        ;; list of runs already drawn
;;     ((not-done-runs   '())                 : list)        ;; list of runs not yet drawn
;;     (header            #f)                                ;; header for decoding the run records
;;     (keys              #f)                                ;; keys for this run (i.e. target components)
;;     ((numruns          (string->number (or (args:get-arg "-cols") "10")))                 : number)      ;; 
;;     ((tot-runs          0)                 : number)
;;     ((last-data-update  0)                 : number)      ;; last time the data in allruns was updated
;;     ((last-runs-update  0)                 : number)      ;; last time we pulled the runs info to update the tree
;;     (runs-mutex         (make-mutex))                     ;; use to prevent parallel access to draw objects
;;     ((run-update-times  (make-hash-table)) : hash-table)  ;; update times indexed by run-id
;;     ((last-test-dat      (make-hash-table)) : hash-table)  ;; cache last tests dat by run-id
;;     ((run-db-paths      (make-hash-table)) : hash-table)  ;; cache the paths to the run db files
;;   
;;     ;; Runs view
;;     ((buttondat         (make-hash-table)) : hash-table)  ;;     
;;     ((item-test-names  '())                : list)        ;; list of itemized tests
;;     ((run-keys          (make-hash-table)) : hash-table)
;;     (runs-matrix        #f)                               ;; used in newdashboard
;;     ((start-run-offset   0)                : number)      ;; left-right slider value
;;     ((start-test-offset  0)                : number)      ;; up-down slider value
;;     ((runs-btn-height    (or (configf:lookup *configdat* "dashboard" "btn-height") "x14")) : string)  ;; was 12
;;     ((runs-btn-fontsz    (or (configf:lookup *configdat* "dashboard" "btn-fontsz") "10")) : string)   ;; was 8
;;     ((runs-cell-width    (or (configf:lookup *configdat* "dashboard" "cell-width") "60")) : string)   ;; was 50
;;     ((all-test-names     '())              : list)
;;     
;;     ;; Canvas and drawing data
;;     (cnv                #f)
;;     (cnv-obj            #f)
;;     (drawing            #f)
;;     ((run-start-row     0)                 : number)
;;     ((max-row           0)                 : number)
;;     ((running-layout    #f)                : boolean)
;;     (originx            #f)
;;     (originy            #f)
;;     ((layout-update-ok  #t)                : boolean)
;;     ((compact-layout    #t)                : boolean)
;;   
;;     ;; Run times layout
;;     ;; (graph-button-box #f) ;; RA => Think it is not referenced anywhere
;;     (graph-matrix     #f)
;;     ((graph-matrix-table (make-hash-table)) : hash-table) ;; graph-dats referenced thru graph name info
;;     ((graph-cell-table (make-hash-table)) : hash-table) ;; graph-dats referenced thru matrix cell info
;;     ((graph-matrix-row 1) : number)
;;     ((graph-matrix-col 1) : number)
;;   
;;     ;; Controls used to launch runs etc.
;;     ((command          "")                 : string)      ;; for run control this is the command being built up
;;     (command-tb        #f)	                        ;; widget for the type of command; run, remove-runs etc.
;;     (test-patterns-textbox #f)                            ;; text box widget for editing a list of test patterns
;;     (key-listboxes     #f)			         
;;     (key-lbs           #f)			         
;;     run-name                                              ;; from run name setting widget
;;     states                                                ;; states for -state s1,s2 ...
;;     statuses                                              ;; statuses for -status s1,s2 ...
;;   						         
;;     ;; Selector variables				         
;;     curr-run-id                                           ;; current row to display in Run summary view
;;     prev-run-id                                           ;; previous runid selected before current runid was selected (used in xor-two-runs runs summary mode
;;     curr-test-ids                                         ;; used only in dcommon:run-update which is used in newdashboard
;;     ((filters-changed  #t)                  : boolean)    ;; to to indicate that the user changed filters for this tab
;;     ((last-filter-str  "")                  : string)      ;; conc the target runname and testpatt for a signature of changed filters
;;     ((hide-empty-runs  #f)                  : boolean)     
;;     ((hide-not-hide    #t)                  : boolean)     ;; toggle for hide/not hide empty runs
;;     (hide-not-hide-button #f)
;;     ((searchpatts        (make-hash-table)) : hash-table)  ;;
;;     ((state-ignore-hash  (make-hash-table)) : hash-table)  ;; hash of  STATE => #t/#f for display control
;;     ((status-ignore-hash (make-hash-table)) : hash-table)  ;; hash of STATUS => #t/#f
;;     (target              #f)
;;     (test-patts          #f)
;;   
;;     ;; db info to file the .db files for the area
;;     (access-mode        (db:get-access-mode))             ;; use cached db or not
;;     (dbdir               #f)
;;     (dbfpath             #f)
;;     (dbkeys              #f)
;;     ((last-db-update     (make-hash-table)) : hash-table) ;; last db file timestamp
;;     (monitor-db-path     #f)                              ;; where to find monitor.db
;;     ro                                                    ;; is the database read-only?
;;   
;;     ;; tests data
;;     ((num-tests          10)               : number)      ;; total number of tests to show (used in the old runs display)
;;   
;;     ;; runs tree
;;     ((path-run-ids       (make-hash-table)) : hash-table) ;; path (target / runname) => id
;;     (runs-tree           #f)
;;     ((runs-tree-ht       (make-hash-table)) : hash-table) ;; track which targets added to tree (merge functionality with path-run-ids?)
;;   
;;     ;; tab data
;;     ((view-changed       #t)                : boolean)   
;;     ((xadj               0)                 : number)     ;; x slider number (if using canvas)
;;     ((yadj               0)                 : number)     ;; y slider number (if using canvas)
;;     ;; runs-summary tab state
;;     ((runs-summary-modes '((one-run . "Show One Run") (xor-two-runs . "XOR Two Runs") (xor-two-runs-hide-clean . "XOR; Hide Clean")) )   : list)
;;     ((runs-summary-mode-buttons '())               : list)
;;     ((runs-summary-mode  'one-run)            : symbol)
;;     ((runs-summary-mode-change-callbacks '()) : list)
;;     (runs-summary-source-runname-label #f)
;;     (runs-summary-dest-runname-label #f)
;;     ;; runs summary view
;;     
;;     tests-tree       ;; used in newdashboard

;;     )

;; register tabdat with BBpp
;; this is used by BBpp (Brandon's pretty printer) to convert dboard:tabdat into a composition of lists that pp will handle
(hash-table-set! *BBpp_custom_expanders_list* TABDAT:
                 (cons dboard:tabdat?
                       (lambda (tabdat-item)
                         (filter