Megatest

Diff
Login

Differences From Artifact [de0d03e562]:

To Artifact [19fbdf076d]:


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
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







+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+





+
+
-
+
-
-
+
-
-
-

-
-
+
+

-
-
+
+

-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+



-
-
+
+





+
-
-
+
+
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+





-
-
-
+
+
+







;;            |-1.db
;;            |-<N>.db
;;
;;
;; Accessors for a dbstruct
;;

(use typed-records)

(defstruct dbr:dbstruct main strdb path local rundb inmem mtime rtime stime inuse refdb locdbs olddb rundb-path)

;; constructor for dbstruct
;;
(define (make-dbr:dbstruct-wrapper #!key (path #f)(local #f))
  (let ((res (make-dbr:dbstruct)))
    (dbr:dbstruct-path-set! res path)
    (dbr:dbstruct-local-set! res local)
    (dbr:dbstruct-locdbs-set! res (make-hash-table))
    res)) 

;;; (define d1 (make-dbr:dbstruct))
;;; (dbr:dbstruct-main d1)             ==> retrive value
;;; (dbr:dbstruct-main-set! d1 'def)   ==> set value

(define-inline (dbr:dbstruct-get-main    vec)    (vector-ref  vec 0)) ;; ( db path )
(define-inline (dbr:dbstruct-get-strdb   vec)    (vector-ref  vec 1)) ;; ( db path )
(define-inline (dbr:dbstruct-get-path    vec)    (vector-ref  vec 2)) 
(define-inline (dbr:dbstruct-get-local   vec)    (vector-ref  vec 3))
(define-inline (dbr:dbstruct-get-rundb   vec)    (vector-ref  vec 4)) ;; ( db path )
(define-inline (dbr:dbstruct-get-inmem   vec)    (vector-ref  vec 5)) ;; ( db #f )
(define-inline (dbr:dbstruct-get-mtime   vec)    (vector-ref  vec 6))
(define-inline (dbr:dbstruct-get-rtime   vec)    (vector-ref  vec 7))
(define-inline (dbr:dbstruct-get-stime   vec)    (vector-ref  vec 8))
(define-inline (dbr:dbstruct-get-inuse   vec)    (vector-ref  vec 9))
(define-inline (dbr:dbstruct-get-refdb   vec)    (vector-ref  vec 10)) ;; ( db path )
(define-inline (dbr:dbstruct-get-locdbs  vec)    (vector-ref  vec 11))
(define-inline (dbr:dbstruct-get-olddb   vec)    (vector-ref  vec 12)) ;; ( db path )
;; (define-inline (dbr:dbstruct-get-main-path vec)  (vector-ref  vec 13))
;; (define-inline (dbr:dbstruct-get-rundb-path vec) (vector-ref  vec 14))
;; (define-inline (dbr:dbstruct-get-run-id  vec)    (vector-ref  vec 13))

(define-inline (dbr:dbstruct-set-main!   vec val)(vector-set! vec 0 val))
(define-inline (dbr:dbstruct-set-strdb!  vec val)(vector-set! vec 1 val))
(define-inline (dbr:dbstruct-set-path!   vec val)(vector-set! vec 2 val))
(define-inline (dbr:dbstruct-set-local!  vec val)(vector-set! vec 3 val))
(define-inline (dbr:dbstruct-set-rundb!  vec val)(vector-set! vec 4 val))
(define-inline (dbr:dbstruct-set-inmem!  vec val)(vector-set! vec 5 val))
(define-inline (dbr:dbstruct-set-mtime!  vec val)(vector-set! vec 6 val))
(define-inline (dbr:dbstruct-set-rtime!  vec val)(vector-set! vec 7 val))
(define-inline (dbr:dbstruct-set-stime!  vec val)(vector-set! vec 8 val))
(define-inline (dbr:dbstruct-set-inuse!  vec val)(vector-set! vec 9 val))
(define-inline (dbr:dbstruct-set-refdb!  vec val)(vector-set! vec 10 val))
(define-inline (dbr:dbstruct-set-locdbs! vec val)(vector-set! vec 11 val))
(define-inline (dbr:dbstruct-set-olddb!  vec val)(vector-set! vec 12 val))
(define-inline (dbr:dbstruct-set-main-path! vec val)(vector-set! vec 13 val))
(define-inline (dbr:dbstruct-set-rundb-path! vec val)(vector-set! vec 14 val))
;; (define-inline (dbr:dbstruct-get-main    vec)    (vector-ref  vec 0)) ;; ( db path )
;; (define-inline (dbr:dbstruct-get-strdb   vec)    (vector-ref  vec 1)) ;; ( db path )
;; (define-inline (dbr:dbstruct-get-path    vec)    (vector-ref  vec 2)) 
;; (define-inline (dbr:dbstruct-get-local   vec)    (vector-ref  vec 3))
;; (define-inline (dbr:dbstruct-get-rundb   vec)    (vector-ref  vec 4)) ;; ( db path )
;; (define-inline (dbr:dbstruct-get-inmem   vec)    (vector-ref  vec 5)) ;; ( db #f )
;; (define-inline (dbr:dbstruct-get-mtime   vec)    (vector-ref  vec 6))
;; (define-inline (dbr:dbstruct-get-rtime   vec)    (vector-ref  vec 7))
;; (define-inline (dbr:dbstruct-get-stime   vec)    (vector-ref  vec 8))
;; (define-inline (dbr:dbstruct-get-inuse   vec)    (vector-ref  vec 9))
;; (define-inline (dbr:dbstruct-get-refdb   vec)    (vector-ref  vec 10)) ;; ( db path )
;; (define-inline (dbr:dbstruct-get-locdbs  vec)    (vector-ref  vec 11))
;; (define-inline (dbr:dbstruct-get-olddb   vec)    (vector-ref  vec 12)) ;; ( db path )
;; ;; (define-inline (dbr:dbstruct-get-main-path vec)  (vector-ref  vec 13))
;; ;; (define-inline (dbr:dbstruct-get-rundb-path vec) (vector-ref  vec 14))
;; ;; (define-inline (dbr:dbstruct-get-run-id  vec)    (vector-ref  vec 13))
;; 
;; (define-inline (dbr:dbstruct-set-main!   vec val)(vector-set! vec 0 val))
;; (define-inline (dbr:dbstruct-set-strdb!  vec val)(vector-set! vec 1 val))
;; (define-inline (dbr:dbstruct-set-path!   vec val)(vector-set! vec 2 val))
;; (define-inline (dbr:dbstruct-set-local!  vec val)(vector-set! vec 3 val))
;; (define-inline (dbr:dbstruct-set-rundb!  vec val)(vector-set! vec 4 val))
;; (define-inline (dbr:dbstruct-set-inmem!  vec val)(vector-set! vec 5 val))
;; (define-inline (dbr:dbstruct-set-mtime!  vec val)(vector-set! vec 6 val))
;; (define-inline (dbr:dbstruct-set-rtime!  vec val)(vector-set! vec 7 val))
;; (define-inline (dbr:dbstruct-set-stime!  vec val)(vector-set! vec 8 val))
;; (define-inline (dbr:dbstruct-set-inuse!  vec val)(vector-set! vec 9 val))
;; (define-inline (dbr:dbstruct-set-refdb!  vec val)(vector-set! vec 10 val))
;; (define-inline (dbr:dbstruct-set-locdbs! vec val)(vector-set! vec 11 val))
;; (define-inline (dbr:dbstruct-set-olddb!  vec val)(vector-set! vec 12 val))
;; (define-inline (dbr:dbstruct-set-main-path! vec val)(vector-set! vec 13 val))
;; (define-inline (dbr:dbstruct-set-rundb-path! vec val)(vector-set! vec 14 val))

; (define-inline (dbr:dbstruct-set-run-id! vec val)(vector-set! vec 13 val))

;; constructor for dbstruct
;;

;; BB: commenting out following 3 methods since they are unused
(define (make-dbr:dbstruct #!key (path #f)(local #f))
;; (define (actual-make-dbr:dbstruct #!key (path #f)(local #f))
  (let ((v (make-vector 15 #f)))
    (dbr:dbstruct-set-path! v path)
;;   (make-dbr:dbstruct path: path local: local locdbs: (make-hash-table)))
    (dbr:dbstruct-set-local! v local)
    (dbr:dbstruct-set-locdbs! v (make-hash-table))
    v))

(define (dbr:dbstruct-get-localdb v run-id)
  (hash-table-ref/default (dbr:dbstruct-get-locdbs v) run-id #f))
(define (dbr:dbstruct-localdb v run-id)
   (hash-table-ref/default (dbr:dbstruct-locdbs v) run-id #f))

(define (dbr:dbstruct-set-localdb! v run-id db)
  (hash-table-set! (dbr:dbstruct-get-locdbs v) run-id db))
(define (dbr:dbstruct-localdb-set! v run-id db)
  (hash-table-set! (dbr:dbstruct-locdbs v) run-id db))


(define (make-db:test)(make-vector 20))
(define-inline (db:test-get-id           vec) (vector-ref vec 0))
(define-inline (db:test-get-run_id       vec) (vector-ref vec 1))
(define-inline (db:test-get-testname     vec) (vector-ref vec 2))
(define-inline (db:test-get-state        vec) (vector-ref vec 3))
(define-inline (db:test-get-status       vec) (vector-ref vec 4))
(define-inline (db:test-get-event_time   vec) (vector-ref vec 5))
(define-inline (db:test-get-host         vec) (vector-ref vec 6))
(define-inline (db:test-get-cpuload      vec) (vector-ref vec 7))
(define-inline (db:test-get-diskfree     vec) (vector-ref vec 8))
(define-inline (db:test-get-uname        vec) (vector-ref vec 9))
;; (define-inline (db:test-get-rundir       vec) (sdb:qry 'getstr (vector-ref vec 10)))
(define-inline (db:test-get-rundir       vec) (vector-ref vec 10))
(define-inline (db:test-get-item-path    vec) (vector-ref vec 11))
(define-inline (db:test-get-run_duration vec) (vector-ref vec 12))
(define-inline (db:test-get-final_logf   vec) (vector-ref vec 13))
(define-inline (db:test-get-comment      vec) (vector-ref vec 14))
(define-inline (db:test-get-process_id   vec) (vector-ref vec 16))
(define-inline (db:test-get-archived     vec) (vector-ref vec 17))
(defstruct db:test id run_id testname state status event_time host cpuload
           diskfree uname rundir item-path run_duration final_logf
           comment process_id pass_count fail_count archived )
;; BB: 16ww4.3 begin comment out 
;; (define (make-db:test)(make-vector 20))
;; (define-inline (db:test-get-id           vec) (vector-ref vec 0))
;; (define-inline (db:test-get-run_id       vec) (vector-ref vec 1))
;; (define-inline (db:test-get-testname     vec) (vector-ref vec 2))
;; (define-inline (db:test-get-state        vec) (vector-ref vec 3))
;; (define-inline (db:test-get-status       vec) (vector-ref vec 4))
;; (define-inline (db:test-get-event_time   vec) (vector-ref vec 5))
;; (define-inline (db:test-get-host         vec) (vector-ref vec 6))
;; (define-inline (db:test-get-cpuload      vec) (vector-ref vec 7))
;; (define-inline (db:test-get-diskfree     vec) (vector-ref vec 8))
;; (define-inline (db:test-get-uname        vec) (vector-ref vec 9))

;; ;; (define-inline (db:test-get-rundir       vec) (sdb:qry 'getstr (vector-ref vec 10)))
;; (define-inline (db:test-get-rundir       vec) (vector-ref vec 10))
;; (define-inline (db:test-get-item-path    vec) (vector-ref vec 11))
;; (define-inline (db:test-get-run_duration vec) (vector-ref vec 12))
;; (define-inline (db:test-get-final_logf   vec) (vector-ref vec 13))
;; (define-inline (db:test-get-comment      vec) (vector-ref vec 14))
;; (define-inline (db:test-get-process_id   vec) (vector-ref vec 16))
;; (define-inline (db:test-get-archived     vec) (vector-ref vec 17))
;; BB: 16ww4.3 end comment out 

;; (define-inline (db:test-get-pass_count   vec) (vector-ref vec 15))
;; (define-inline (db:test-get-fail_count   vec) (vector-ref vec 16))
(define-inline (db:test-get-fullname     vec)
  (conc (db:test-get-testname vec) "/" (db:test-get-item-path vec)))
(define-inline (db:test-fullname     struct)
  (conc (db:test-testname struct) "/" (db:test-item-path struct)))

;; replace runs:make-full-test-name with this routine
(define (db:test-make-full-name testname itempath)
  (if (equal? itempath "") testname (conc testname "/" itempath)))

;; BB: commenting out following unused items:
(define-inline (db:test-get-first_err    vec) (printable (vector-ref vec 15)))
(define-inline (db:test-get-first_warn   vec) (printable (vector-ref vec 16)))
;(define-inline (db:test-get-first_err    vec) (printable (vector-ref vec 15)))
;(define-inline (db:test-get-first_warn   vec) (printable (vector-ref vec 16)))

(define-inline (db:test-set-cpuload!  vec val)(vector-set! vec 7 val))
(define-inline (db:test-set-diskfree! vec val)(vector-set! vec 8 val))
(define-inline (db:test-set-testname! vec val)(vector-set! vec 2 val))
(define-inline (db:test-set-state!    vec val)(vector-set! vec 3 val))
(define-inline (db:test-set-status!   vec val)(vector-set! vec 4 val))
(define-inline (db:test-set-run_duration! vec val)(vector-set! vec 12 val))
(define-inline (db:test-set-final_logf! vec val)(vector-set! vec 13 val))
;;(define-inline (db:test-set-cpuload!  vec val)(vector-set! vec 7 val))
;;(define-inline (db:test-set-diskfree! vec val)(vector-set! vec 8 val))

;; BB: commenting out methods replaced by defstruct
;; (define-inline (db:test-set-testname! vec val)(vector-set! vec 2 val))
;; (define-inline (db:test-set-state!    vec val)(vector-set! vec 3 val))
;; (define-inline (db:test-set-status!   vec val)(vector-set! vec 4 val))
;; (define-inline (db:test-set-run_duration! vec val)(vector-set! vec 12 val))
;; (define-inline (db:test-set-final_logf! vec val)(vector-set! vec 13 val))

;; Test record utility functions

;; Is a test a toplevel?
;;
(define (db:test-get-is-toplevel vec)
  (and (equal? (db:test-get-item-path vec) "")      ;; test is not an item
       (equal? (db:test-get-uname vec)     "n/a"))) ;; test has never been run
(define (db:test-get-is-toplevel struct)
  (and (equal? (db:test-item-path struct) "")      ;; test is not an item
       (equal? (db:test-uname struct)     "n/a"))) ;; test has never been run

;; make-vector-record "" db mintest id run_id testname state status event_time item_path
;;
(define (make-db:mintest)(make-vector 7))
(define-inline (db:mintest-get-id           vec)    (vector-ref  vec 0))
(define-inline (db:mintest-get-run_id       vec)    (vector-ref  vec 1))
(define-inline (db:mintest-get-testname     vec)    (vector-ref  vec 2))
184
185
186
187
188
189
190

191
192
193
194
195
196
197

198
199
200
201
202
203
204
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228







+







+







(define-inline (tdb:step-get-id              vec)    (vector-ref  vec 0))
(define-inline (tdb:step-get-test_id         vec)    (vector-ref  vec 1))
(define-inline (tdb:step-get-stepname        vec)    (vector-ref  vec 2))
(define-inline (tdb:step-get-state           vec)    (vector-ref  vec 3))
(define-inline (tdb:step-get-status          vec)    (vector-ref  vec 4))
(define-inline (tdb:step-get-event_time      vec)    (vector-ref  vec 5))
(define-inline (tdb:step-get-logfile         vec)    (vector-ref  vec 6))
(define-inline (tdb:step-get-comment         vec)    (vector-ref  vec 7))
(define-inline (tdb:step-set-id!             vec val)(vector-set! vec 0 val))
(define-inline (tdb:step-set-test_id!        vec val)(vector-set! vec 1 val))
(define-inline (tdb:step-set-stepname!       vec val)(vector-set! vec 2 val))
(define-inline (tdb:step-set-state!          vec val)(vector-set! vec 3 val))
(define-inline (tdb:step-set-status!         vec val)(vector-set! vec 4 val))
(define-inline (tdb:step-set-event_time!     vec val)(vector-set! vec 5 val))
(define-inline (tdb:step-set-logfile!        vec val)(vector-set! vec 6 val))
(define-inline (tdb:step-set-comment!        vec vak)(vector-set! vec 7 val))


;; The steps table
(define (make-db:steps-table)(make-vector 5))
(define-inline (tdb:steps-table-get-stepname   vec)    (vector-ref  vec 0))
(define-inline (tdb:steps-table-get-start      vec)    (vector-ref  vec 1))
(define-inline (tdb:steps-table-get-end        vec)    (vector-ref  vec 2))