Megatest

Check-in [f2aaee9100]
Login
Overview
Comment:connected operate-on to ezsteps
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | v1.65-rerun-logpro
Files: files | file ages | folders
SHA1: f2aaee910053f7f2803ae67858011d7aaa50a1bd
User & Date: bjbarcla on 2018-12-12 13:34:57
Other Links: branch diff | manifest | tags
Context
2018-12-13
15:08
moved runstep from launch.scm to ezsteps.scm check-in: adb0f2f99c user: bjbarcla tags: v1.65-rerun-logpro
2018-12-12
13:34
connected operate-on to ezsteps check-in: f2aaee9100 user: bjbarcla tags: v1.65-rerun-logpro
2018-12-11
18:11
switched to strategy of leveraging operate-on check-in: 884a77869d user: bjbarcla tags: v1.65-rerun-logpro
Changes

Modified ezsteps.scm from [82b8c50f05] to [bf9fb80f10].

35
36
37
38
39
40
41
42

43


44
45
46
47

48
49
50
51
52
53
54
35
36
37
38
39
40
41

42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57







-
+

+
+




+







(include "run_records.scm")


;;(rmt:get-test-info-by-id run-id test-id) -> testdat



(define (ezsteps:run-from testdat start-step-name run-one #!key (rerun-logpro-only #f))
(define (ezsteps:run-from testdat start-step-name-in run-one #!key (rerun-logpro-only #f) )
  ;; TODO: honor rerun-logpro-only
  (if rerun-logpro-only
      (BB> "someday soon...")
  (let* ((test-run-dir  ;; (filedb:get-path *fdb* 
	  (db:test-get-rundir testdat)) ;; )
	 (testconfig    (read-config (conc test-run-dir "/testconfig") #f #t environ-patt: "pre-launch-env-vars"))
	 (ezstepslst    (hash-table-ref/default testconfig "ezsteps" '()))
         (start-step-name (or start-step-name-in (if (null? ezsteplst) #f (car ezsteplst))))
	 (run-mutex     (make-mutex))
	 (rollup-status 0)
	 (exit-info     (vector #t #t #t))
	 (test-id       (db:test-get-id testdat))
	 (run-id        (db:test-get-run_id testdat))
	 (test-name     (db:test-get-testname testdat))
	 (kill-job      #f)) ;; for future use (on re-factoring with launch.scm code
183
184
185
186
187
188
189
190

191
192
193
194
195
196
197
198
199
186
187
188
189
190
191
192

193
194
195
196
197
198
199
200
201
202







-
+









		  (if (not (equal? item-path ""))
                      (rmt:set-state-status-and-roll-up-items run-id test-name item-path new-state new-status #f))))
	    ;; for automated creation of the rollup html file this is a good place...
	    (if (not (equal? item-path ""))
	      (tests:summarize-items run-id test-id test-name #f)) ;; don't force - just update if no
	    )))
    (pop-directory)
    rollup-status))
    rollup-status)))

(define (ezsteps:spawn-run-from testdat start-step-name run-one)
  (thread-start! 
   (make-thread
    (lambda ()
      (ezsteps:run-from testdat start-step-name run-one))
    (conc "ezstep run single step " start-step-name " run-one="run-one)))
  )

Modified megatest.scm from [d873fa8b25] to [5e8fbfc66e].

1052
1053
1054
1055
1056
1057
1058

1059
1060
1061
1062
1063
1064
1065
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066







+







	  (begin
	    (debug:print-error 0 *default-log-port* "Attempted " action "on test(s) but run area config file not found")
	    (exit 1))
	  ;; put test parameters into convenient variables
	  (begin
	    ;; check for correct version, exit with message if not correct
	    (common:exit-on-version-changed)
            (BB> "before runs:operate-on")
	    (runs:operate-on  action
			      target
			      (common:args-get-runname)  ;; (or (args:get-arg "-runname")(args:get-arg ":runname"))
			      (common:args-get-testpatt #f) ;; (args:get-arg "-testpatt")
			      state: (common:args-get-state)
			      status: (common:args-get-status)
			      new-state-status: (args:get-arg "-set-state-status")
1092
1093
1094
1095
1096
1097
1098
1099


1100
1101
1102
1103
1104
1105
1106
1093
1094
1095
1096
1097
1098
1099

1100
1101
1102
1103
1104
1105
1106
1107
1108







-
+
+







(if (args:get-arg "-set-state-status")
    (general-run-call 
     "-set-state-status"
     "set state and status"
     (lambda (target runname keys keyvals)
       (operate-on 'set-state-status))))

(if (args:get-arg "-redo-logpro")
(when (args:get-arg "-redo-logpro")
    (BB> "redo-logpro request from command line detected")
    (general-run-call 
     "-redo-logpro"
     "rerun logpro in ezsteps"
     (lambda (target runname keys keyvals)
       (operate-on 'redo-logpro))))

(if (or (args:get-arg "-set-run-status")

Modified redo-logpro.scm from [fe08398762] to [dcdaae39cb].

15
16
17
18
19
20
21
22

23
24
25
26
27
28
29

30
31
32
33
34
35



36
37
15
16
17
18
19
20
21

22
23
24
25
26
27
28

29


30
31


32
33
34
35
36







-
+






-
+
-
-


-
-
+
+
+


;;     You should have received a copy of the GNU General Public License
;;     along with Megatest.  If not, see <http://www.gnu.org/licenses/>.
;;

(declare (unit redo-logpro))
(declare (uses common))
(declare (uses rmt))
         
(declare (uses ezsteps))         
(include "common_records.scm")
(use matchable)
(use fmt)
(use ducttape-lib)
(define css "")

(define (redo-logpro:redo-logpro)
(define (redo-logpro:redo-logpro run-id test-id testdat)
  ;; TODO: get list of all test ids matching selectors
  ;; TODO: iterate over tests ids list
  ;; TODO:    populate testdat from testid, start-step-name (from first step)
  ;; TODO:    (ezsteps:run-from testdat start-step-name #f rerun-logpro-only: #t))

  
  
  (BB> "redo-logpro:redo-logpro called with run-id="run-id" test-id="test-id" testdat="testdat)
  (ezsteps:run-from testdat #f #f rerun-logpro-only: #t)
  (print "redo-logpro Unimplemented")
  #f)

Modified runs.scm from [88f46cb537] to [7494b71dd5].

26
27
28
29
30
31
32

33
34
35
36
37
38
39
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40







+







(declare (uses common))
(declare (uses items))
(declare (uses runconfig))
(declare (uses tests))
(declare (uses server))
(declare (uses mt))
(declare (uses archive))
;;(declare (uses redo-logpro))
;; (declare (uses filedb))

(include "common_records.scm")
(include "key_records.scm")
(include "db_records.scm")
(include "run_records.scm")
(include "test_records.scm")
2007
2008
2009
2010
2011
2012
2013

2014
2015
2016
2017
2018
2019
2020
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022







+







;; action:
;;    'remove-runs
;;    'set-state-status
;;
;; NB// should pass in keys?
;;
(define (runs:operate-on action target runnamepatt testpatt #!key (state #f)(status #f)(new-state-status #f)(mode #f)(options '()))
  (BB> "in runs:operate-on with action >"action"<")
  (common:clear-caches) ;; clear all caches
  (let* ((db           #f)
	 ;; (tdbdat       (tasks:open-db))
	 (keys         (rmt:get-keys))
	 (rundat       (mt:get-runs-by-patt keys runnamepatt target))
	 (header       (vector-ref rundat 0))
	 (runs         (vector-ref rundat 1))
2067
2068
2069
2070
2071
2072
2073

2074
2075
2076
2077
2078
2079
2080
2069
2070
2071
2072
2073
2074
2075
2076
2077
2078
2079
2080
2081
2082
2083







+







		    ;; seek and kill in flight -runtests with % as testpatt here
		    ;; (if (equal? testpatt "%")
		    (tasks:kill-runner target run-name testpatt)
		    
		    ;; (debug:print 0 *default-log-port* "not attempting to kill any run launcher processes as testpatt is " testpatt))
		    (debug:print 1 *default-log-port* "Removing tests for run: " runkey " " (db:get-value-by-header run header "runname")))
                   ((redo-logpro)
                    (BB> "redo-logpro operate-on hook 1")
                    (debug:print 1 *default-log-port* "Re-applying new logpro rules without rerun for tests for run: " runkey " " (db:get-value-by-header run header "runname")))
		   ((set-state-status)
		    ;; (if (tasks:need-server run-id)(tasks:start-and-wait-for-server tdbdat run-id 10))
		    (debug:print 1 *default-log-port* "Modifying state and staus for tests for run: " runkey " " (db:get-value-by-header run header "runname")))
		   ((print-run)
		    (debug:print 1 *default-log-port* "Printing info for run " runkey ", run=" run ", tests=" tests ", header=" header)
		    action)
2233
2234
2235
2236
2237
2238
2239


2240
2241


2242
2243
2244
2245
2246
2247
2248
2236
2237
2238
2239
2240
2241
2242
2243
2244
2245

2246
2247
2248
2249
2250
2251
2252
2253
2254







+
+

-
+
+







                                            (loop (car tal)(append tal (list new-test-dat)))))
                                      (begin
                                        (runs:remove-test-directory new-test-dat mode) ;; 'remove-all)
                                        (if (not (null? tal))
                                            (loop (car tal)(cdr tal)))))))
				(rmt:update-run-stats run-id (rmt:get-raw-run-stats run-id)))
                               ((redo-logpro)
                                (BB> "redo-logpro operate-on hook 2")
                                (redo-logpro:redo-logpro run-id test-id new-test-dat)
                                (debug:print-error 0 "redo-logpro unimplemented")
                                ;;(exit 1)
                                (if (not (null? tal))
				    (loop (car tal)(cdr tal)))
                                )
			       ((set-state-status)
                                (let* ((new-state (car state-status))
                                       (new-status (cadr state-status))
                                       (test-id (db:test-get-id test))
                                       (test-run-dir (db:test-get-rundir new-test-dat))
                                       (has-subrun (and (subrun:subrun-test-initialized? test-run-dir)