Changes In Branch broken-rmt-top-test-set-per-pf-counts Through [55c797a5d2] Excluding Merge-Ins
This is equivalent to a diff from a42c267b01 to 55c797a5d2
2015-07-14
| ||
12:06 | Merged fix for rollup - 80% there check-in: 656dcda058 user: mrwellan tags: v1.60 | |
11:44 | Added version info to filename in cached configs Closed-Leaf check-in: bedd2ef21c user: mrwellan tags: broken-rmt-top-test-set-per-pf-counts | |
01:01 | renamed few poorly named vars check-in: 55c797a5d2 user: matt tags: broken-rmt-top-test-set-per-pf-counts | |
00:08 | (rmt:top-test-set-per-pf-counts 5 runfirst) is broken check-in: 8dda7e98e4 user: matt tags: broken-rmt-top-test-set-per-pf-counts | |
2015-07-12
| ||
22:55 | Merging v1.60 into trunk to make manual updates visible on web page check-in: 48c3b1ff69 user: matt tags: trunk | |
22:53 | Tidy up manual a bit check-in: a42c267b01 user: matt tags: v1.60 | |
22:36 | Added more flexible/powerful job launching control. Allows granular to the test/itempath dispatching of jobs check-in: ad4b12b5f3 user: matt tags: v1.60 | |
Modified api.scm from [ef0a5aac98] to [5db5b30c9b].
︙ | ︙ | |||
64 65 66 67 68 69 70 | ;; TESTS test-set-state-status-by-id delete-test-records delete-old-deleted-test-records test-set-status-state test-set-top-process-pid roll-up-pass-fail-counts | | > | 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 | ;; TESTS test-set-state-status-by-id delete-test-records delete-old-deleted-test-records test-set-status-state test-set-top-process-pid roll-up-pass-fail-counts update-pass-fail-counts top-test-set-per-pf-counts ;; (db:top-test-set-per-pf-counts (db:get-db *db* 5) 5 "runfirst") ;; RUNS register-run set-tests-state-status delete-run lock/unlock-run update-run-event_time |
︙ | ︙ | |||
131 132 133 134 135 136 137 138 139 140 141 142 143 144 | ((test-set-state-status-by-id) (apply db:test-set-state-status-by-id dbstruct params)) ((delete-test-records) (apply db:delete-test-records dbstruct params)) ((delete-old-deleted-test-records) (apply db:delete-old-deleted-test-records dbstruct params)) ((test-set-status-state) (apply db:test-set-status-state dbstruct params)) ((test-set-top-process-pid) (apply db:test-set-top-process-pid dbstruct params)) ((roll-up-pass-fail-counts) (apply db:roll-up-pass-fail-counts dbstruct params)) ((update-pass-fail-counts) (apply db:general-call dbstruct 'update-pass-fail-counts params)) ((test-set-archive-block-id) (apply db:test-set-archive-block-id dbstruct params)) ;; RUNS ((register-run) (apply db:register-run dbstruct params)) ((set-tests-state-status) (apply db:set-tests-state-status dbstruct params)) ((delete-run) (apply db:delete-run dbstruct params)) ((lock/unlock-run) (apply db:lock/unlock-run dbstruct params)) | > | 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 | ((test-set-state-status-by-id) (apply db:test-set-state-status-by-id dbstruct params)) ((delete-test-records) (apply db:delete-test-records dbstruct params)) ((delete-old-deleted-test-records) (apply db:delete-old-deleted-test-records dbstruct params)) ((test-set-status-state) (apply db:test-set-status-state dbstruct params)) ((test-set-top-process-pid) (apply db:test-set-top-process-pid dbstruct params)) ((roll-up-pass-fail-counts) (apply db:roll-up-pass-fail-counts dbstruct params)) ((update-pass-fail-counts) (apply db:general-call dbstruct 'update-pass-fail-counts params)) ((top-test-set-per-pf-counts) (apply db:top-test-set-per-pf-counts dbstruct params)) ((test-set-archive-block-id) (apply db:test-set-archive-block-id dbstruct params)) ;; RUNS ((register-run) (apply db:register-run dbstruct params)) ((set-tests-state-status) (apply db:set-tests-state-status dbstruct params)) ((delete-run) (apply db:delete-run dbstruct params)) ((lock/unlock-run) (apply db:lock/unlock-run dbstruct params)) |
︙ | ︙ |
Modified db.scm from [ed28b97a1a] to [753e9325a7].
︙ | ︙ | |||
1336 1337 1338 1339 1340 1341 1342 | ;; Now do rollups for the toplevel tests ;; (db:delay-if-busy dbdat) (for-each (lambda (toptest) (let ((test-name (list-ref toptest 3))) ;; (run-id (list-ref toptest 5))) | | | | | 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 | ;; Now do rollups for the toplevel tests ;; (db:delay-if-busy dbdat) (for-each (lambda (toptest) (let ((test-name (list-ref toptest 3))) ;; (run-id (list-ref toptest 5))) (db:top-test-set-per-pf-counts dbstruct run-id test-name))) toplevels))) (define (db:top-test-set-per-pf-counts dbstruct run-id test-name) (db:general-call (db:get-db dbstruct run-id) 'top-test-set-per-pf-counts (list test-name test-name test-name test-name test-name test-name test-name test-name test-name test-name test-name test-name test-name test-name test-name test-name test-name))) ;; Clean out old junk and vacuum the database ;; ;; Ultimately do something like this: ;; ;; 1. Look at test records either deleted or part of deleted run: |
︙ | ︙ | |||
2839 2840 2841 2842 2843 2844 2845 | ;; call with state = #f to roll up with out accounting for state/status of this item ;; (define (db:roll-up-pass-fail-counts dbstruct run-id test-name item-path state status) (if (not (equal? item-path "")) (let ((dbdat (db:get-db dbstruct run-id))) ;; (db (db:dbdat-get-db dbdat))) (db:general-call dbdat 'update-pass-fail-counts (list test-name test-name test-name)) | | | 2839 2840 2841 2842 2843 2844 2845 2846 2847 2848 2849 2850 2851 2852 2853 | ;; call with state = #f to roll up with out accounting for state/status of this item ;; (define (db:roll-up-pass-fail-counts dbstruct run-id test-name item-path state status) (if (not (equal? item-path "")) (let ((dbdat (db:get-db dbstruct run-id))) ;; (db (db:dbdat-get-db dbdat))) (db:general-call dbdat 'update-pass-fail-counts (list test-name test-name test-name)) (db:top-test-set-per-pf-counts dbstruct run-id test-name)))) ;; (case (string->symbol status) ;; ((RUNNING) (db:general-call dbdat 'top-test-set-running (list test-name))) ;; ((LAUNCHED) (db:general-call dbdat 'top-test-set (list "LAUNCHED" test-name))) ;; ((ABORT INCOMPLETE) (db:general-call dbdat 'top-test-set (list status test-name)))) ;; (if (or (not state) |
︙ | ︙ | |||
2939 2940 2941 2942 2943 2944 2945 | ;; '(top-test-set-per-pf-counts "UPDATE tests SET state=CASE WHEN (SELECT count(id) FROM tests WHERE testname=? AND item_path != '' AND status IN ('INCOMPLETE') | | | 2939 2940 2941 2942 2943 2944 2945 2946 2947 2948 2949 2950 2951 2952 2953 | ;; '(top-test-set-per-pf-counts "UPDATE tests SET state=CASE WHEN (SELECT count(id) FROM tests WHERE testname=? AND item_path != '' AND status IN ('INCOMPLETE') AND state in ('RUNNING','NOT_STARTED','LAUNCHED','REMOTEHOSTSTART')) > 0 THEN 'RUNNING' WHEN (SELECT count(id) FROM tests WHERE testname=? AND item_path != '' AND status NOT IN ('TEN_STRIKES','BLOCKED') AND state in ('RUNNING','NOT_STARTED','LAUNCHED','REMOTEHOSTSTART')) > 0 THEN 'RUNNING' WHEN (SELECT count(id) FROM tests WHERE testname=? |
︙ | ︙ | |||
2964 2965 2966 2967 2968 2969 2970 | WHERE testname=? AND item_path != '' AND state IN ('BLOCKED','INCOMPLETE')) > 0 THEN 'FAIL' WHEN (SELECT count(id) FROM tests WHERE testname=? AND item_path != '' AND state NOT IN ('DELETED') | | | 2964 2965 2966 2967 2968 2969 2970 2971 2972 2973 2974 2975 2976 2977 2978 | WHERE testname=? AND item_path != '' AND state IN ('BLOCKED','INCOMPLETE')) > 0 THEN 'FAIL' WHEN (SELECT count(id) FROM tests WHERE testname=? AND item_path != '' AND state NOT IN ('DELETED') AND status IN ('INCOMPLETE','ABORT')) > 0 THEN 'ABORT' WHEN (SELECT count(id) FROM tests WHERE testname=? AND item_path != '' AND state NOT IN ('DELETED') AND status = 'AUTO') > 0 THEN 'AUTO' WHEN (SELECT count(id) FROM tests WHERE testname=? |
︙ | ︙ |
Modified docs/manual/howto.txt from [b40c89ffa6] to [8d66a8b9b7].
︙ | ︙ | |||
76 77 78 79 80 81 82 | launcher bsub # if defined and not "no" flexi-launcher will bypass launcher unless there is no # match. flexi-launcher yes ------------------------ Tricks | < > | 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 | launcher bsub # if defined and not "no" flexi-launcher will bypass launcher unless there is no # match. flexi-launcher yes ------------------------ Tricks ====== This section is a compendium of a various useful tricks for debugging, configuring and generally getting the most out of Megatest. Limiting your running jobs -------------------------- |
︙ | ︙ |
Modified docs/manual/megatest_manual.html from [144ffa8085] to [d90d819b32].
︙ | ︙ | |||
984 985 986 987 988 989 990 | # if defined and not "no" flexi-launcher will bypass launcher unless there is no # match. flexi-launcher yes</pre> </div></div> </div> </div> </div> | < | < < < | 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 | # if defined and not "no" flexi-launcher will bypass launcher unless there is no # match. flexi-launcher yes</pre> </div></div> </div> </div> </div> <h1 id="_tricks">Tricks</h1> <div class="paragraph"><p>This section is a compendium of a various useful tricks for debugging, configuring and generally getting the most out of Megatest.</p></div> <div class="sect1"> <h2 id="_limiting_your_running_jobs">Limiting your running jobs</h2> <div class="sectionbody"> <div class="paragraph"><p>The following example will limit a test in the jobgroup "group1" to no more than 10 tests simultaneously.</p></div> <div class="paragraph"><p>In your testconfig:</p></div> <div class="listingblock"> <div class="content monospaced"> |
︙ | ︙ | |||
1553 1554 1555 1556 1557 1558 1559 | </div> </div> <div id="footnotes"><hr></div> <div id="footer"> <div id="footer-text"> Version 1.0<br> Last updated | | | 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 | </div> </div> <div id="footnotes"><hr></div> <div id="footer"> <div id="footer-text"> Version 1.0<br> Last updated 2015-07-12 21:50:37 MST </div> </div> </body> </html> |
Modified launch.scm from [d9bf1bd69d] to [df725b0bec].
︙ | ︙ | |||
473 474 475 476 477 478 479 | ;; need to update the top test record if PASS or FAIL and this is a subtest ;; NO NEED TO CALL roll-up-pass-fail-counts HERE, THIS IS DONE IN roll-up-pass-fail-counts called by tests:test-set-status! )) ;; for automated creation of the rollup html file this is a good place... ;; (if (and (not (equal? item-path "")) ;; (< (random (rmt:get-count-tests-running-for-testname run-id test-name)) 5)) (tests:summarize-items run-id test-id test-name #f) | | > | 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 | ;; need to update the top test record if PASS or FAIL and this is a subtest ;; NO NEED TO CALL roll-up-pass-fail-counts HERE, THIS IS DONE IN roll-up-pass-fail-counts called by tests:test-set-status! )) ;; for automated creation of the rollup html file this is a good place... ;; (if (and (not (equal? item-path "")) ;; (< (random (rmt:get-count-tests-running-for-testname run-id test-name)) 5)) (tests:summarize-items run-id test-id test-name #f) (tests:summarize-test run-id test-id) ;; don't force - just update if no ) (mutex-unlock! m) (debug:print 2 "Output from running " fullrunscript ", pid " (vector-ref exit-info 0) " in work area " work-area ":\n====\n exit code " (vector-ref exit-info 2) "\n" "====\n") (if (not (vector-ref exit-info 1)) (exit 4))))))) ;; set up the very basics needed for doing anything here. |
︙ | ︙ |
Modified rmt.scm from [0f735396a5] to [592faf391b].
︙ | ︙ | |||
527 528 529 530 531 532 533 534 535 536 537 538 539 540 | ;; (define (rmt:roll-up-pass-fail-counts run-id test-name item-path state status) (rmt:send-receive 'roll-up-pass-fail-counts run-id (list run-id test-name item-path state status))) (define (rmt:update-pass-fail-counts run-id test-name) (rmt:general-call 'update-pass-fail-counts run-id (list run-id test-name run-id test-name run-id test-name))) ;;====================================================================== ;; R U N S ;;====================================================================== (define (rmt:get-run-info run-id) (rmt:send-receive 'get-run-info run-id (list run-id))) | > > > | 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 | ;; (define (rmt:roll-up-pass-fail-counts run-id test-name item-path state status) (rmt:send-receive 'roll-up-pass-fail-counts run-id (list run-id test-name item-path state status))) (define (rmt:update-pass-fail-counts run-id test-name) (rmt:general-call 'update-pass-fail-counts run-id (list run-id test-name run-id test-name run-id test-name))) (define (rmt:top-test-set-per-pf-counts run-id test-name) (rmt:general-call 'top-test-set-per-pf-counts run-id (list run-id test-name))) ;;====================================================================== ;; R U N S ;;====================================================================== (define (rmt:get-run-info run-id) (rmt:send-receive 'get-run-info run-id (list run-id))) |
︙ | ︙ |
Modified tests.scm from [40378522a7] to [de4ce3d9c3].
︙ | ︙ | |||
348 349 350 351 352 353 354 355 356 357 358 359 360 361 | (lockf (conc outputfilename ".lock"))) (let loop ((have-lock (common:simple-file-lock lockf))) (if have-lock (let ((script (configf:lookup *configdat* "testrollup" test-name))) (print "Obtained lock for " outputfilename) ;; (rmt:top-test-set-per-pf-counts run-id test-name) (rmt:roll-up-pass-fail-counts run-id test-name "" #f #f) (if script (system (conc script " > " outputfilename " & ")) (tests:generate-html-summary-for-iterated-test run-id test-id test-name outputfilename)) (common:simple-file-release-lock lockf) (change-directory orig-dir) ;; NB// tests:test-set-toplog! is remote internal... (tests:test-set-toplog! run-id test-name outputfilename)) | > | 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 | (lockf (conc outputfilename ".lock"))) (let loop ((have-lock (common:simple-file-lock lockf))) (if have-lock (let ((script (configf:lookup *configdat* "testrollup" test-name))) (print "Obtained lock for " outputfilename) ;; (rmt:top-test-set-per-pf-counts run-id test-name) (rmt:roll-up-pass-fail-counts run-id test-name "" #f #f) (rmt:top-test-set-per-pf-counts run-id test-name) (if script (system (conc script " > " outputfilename " & ")) (tests:generate-html-summary-for-iterated-test run-id test-id test-name outputfilename)) (common:simple-file-release-lock lockf) (change-directory orig-dir) ;; NB// tests:test-set-toplog! is remote internal... (tests:test-set-toplog! run-id test-name outputfilename)) |
︙ | ︙ |
Modified tests/fullrun/megatest.config from [7fbae1ffea] to [2435a08c7b].
︙ | ︙ | |||
284 285 286 287 288 289 290 291 292 293 | [jobtools] flexi-launcher yes [host-types] general nbfake remote bsub [launchers] runfirst/sum% remote | > | | 284 285 286 287 288 289 290 291 292 293 294 295 | [jobtools] flexi-launcher yes [host-types] general nbfake remote bsub # remote nbfake [launchers] runfirst/sum% remote % general |