Megatest

Diff
Login

Differences From Artifact [f35137801c]:

To Artifact [4687c0a691]:


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







-
+















+







	
(import scheme
	(prefix sqlite3 sqlite3:)
	chicken.base
	chicken.condition
	chicken.file
	chicken.file.posix
	chicken.format
	;; chicken.format
	chicken.io
	chicken.pathname
	chicken.port
	chicken.pretty-print
	chicken.process
	chicken.process-context
	chicken.process-context.posix
	chicken.sort
	chicken.string
	chicken.time
	chicken.time.posix

	(prefix base64 base64:)
	;; csv-xml
	directory-utils
	format
	matchable
	regex
	s11n
	srfi-1
	srfi-13
	srfi-18
	srfi-69
88
89
90
91
92
93
94













95












96
97
98
99
100
101
102
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







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







;; (declare (uses db))
;; (declare (uses rmt))
;; (declare (uses common))
;; (declare (uses pgdb))

;; (import pgdb) ;; pgdb is a module

;; make-vector-record tasks task id action owner state target name test item params creation_time execution_time 
(define (make-tasks:task)(make-vector 11))
(define (tasks:task-get-id               vec)    (vector-ref  vec 0))
(define (tasks:task-get-action           vec)    (vector-ref  vec 1))
(define (tasks:task-get-owner            vec)    (vector-ref  vec 2))
(define (tasks:task-get-state            vec)    (vector-ref  vec 3))
(define (tasks:task-get-target           vec)    (vector-ref  vec 4))
(define (tasks:task-get-name             vec)    (vector-ref  vec 5))
(define (tasks:task-get-testpatt         vec)    (vector-ref  vec 6))
(define (tasks:task-get-keylock          vec)    (vector-ref  vec 7))
(define (tasks:task-get-params           vec)    (vector-ref  vec 8))
(define (tasks:task-get-creation_time    vec)    (vector-ref  vec 9))
(define (tasks:task-get-execution_time   vec)    (vector-ref  vec 10))
(include "task_records.scm")

(define (tasks:task-set-state!  vec val)(vector-set! vec 3 val))


;; make-vector-record tasks monitor id pid start_time last_update hostname username
(define (make-tasks:monitor)(make-vector 5))
(define (tasks:monitor-get-id            vec)    (vector-ref  vec 0))
(define (tasks:monitor-get-pid           vec)    (vector-ref  vec 1))
(define (tasks:monitor-get-start_time    vec)    (vector-ref  vec 2))
(define (tasks:monitor-get-last_update   vec)    (vector-ref  vec 3))
(define (tasks:monitor-get-hostname      vec)    (vector-ref  vec 4))
(define (tasks:monitor-get-username      vec)    (vector-ref  vec 5))
;; (include "db_records.scm")

;;======================================================================
;; Tasks db
;;======================================================================

;; wait up to aprox n seconds for a journal to go away
558
559
560
561
562
563
564
565

566
567
568
569
570
571
572
583
584
585
586
587
588
589

590
591
592
593
594
595
596
597







-
+







			 param-key state-patt action-patt test-patt)))))

(define (tasks:find-task-queue-records dbstruct target run-name test-patt state-patt action-patt)
  ;; (handle-exceptions
  ;;  exn
  ;;  '()
  ;;  (sqlite3:first-row
  (let ((db   (db:get-inmem dbstruct #f)) ;; put tasks stuff in main.db
  (let ((db   (db:get-inmem dbstruct (db:run-id->dbname #f))) ;; put tasks stuff in main.db
	(res '()))
    (sqlite3:for-each-row 
     (lambda (a . b)
       (set! res (cons (cons a b) res)))
     db "SELECT id,action,owner,state,target,name,testpatt,keylock,params FROM tasks_queue 
           WHERE
              target = ? AND name = ? AND state LIKE ? AND action LIKE ? AND testpatt LIKE ?;"