Overview
Comment: | Starting to add tasks stuff, updates to manual |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | inmem-per-run-db-per-run-server |
Files: | files | file ages | folders |
SHA1: |
acec1dccded5d6b93f69101a5e5f5fea |
User & Date: | matt on 2014-01-25 23:15:53 |
Other Links: | branch diff | manifest | tags |
Context
2014-01-26
| ||
23:18 | Made most adjustments needed to run inmemdb with per-run server check-in: a0a2377c26 user: matt tags: inmem-per-run-db-per-run-server | |
2014-01-25
| ||
23:15 | Starting to add tasks stuff, updates to manual check-in: acec1dccde user: matt tags: inmem-per-run-db-per-run-server | |
22:02 | Merged changes on v1.55 branch check-in: 7a252f8ff4 user: matt tags: inmem-per-run-db-per-run-server | |
Changes
Modified docs/html/megatest.html from [637f8cb216] to [d407d07366].
1 2 3 4 5 6 | <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> <meta name="generator" content="http://www.nongnu.org/elyxer/"/> | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> <meta name="generator" content="http://www.nongnu.org/elyxer/"/> <meta name="create-date" content="2014-01-25"/> <link rel="stylesheet" href="http://elyxer.nongnu.org/lyx.css" type="text/css" media="all"/> <title>Megatest User Manual</title> </head> <body> <div id="globalWrapper"> <div class="Standard"> |
︙ | ︙ | |||
780 781 782 783 784 785 786 | <h2 class="Subsection"> <a class="toc" name="toc-Subsection-13.1">13.1</a> Monitor logic </h2> <div class="Standard"> Note: The monitor is usable but incomplete as of Megatest v1.31. Click on the “Monitor” button on the dashboard to start the monitor and give it a try. </div> <div class="Standard"> | | | 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 | <h2 class="Subsection"> <a class="toc" name="toc-Subsection-13.1">13.1</a> Monitor logic </h2> <div class="Standard"> Note: The monitor is usable but incomplete as of Megatest v1.31. Click on the “Monitor” button on the dashboard to start the monitor and give it a try. </div> <div class="Standard"> <img class="embedded" src="monitor-state-diagram.png" alt="figure monitor-state-diagram.png" style="max-width: 531px; max-height: 465px;"/> </div> <h1 class="Section"> <a class="toc" name="toc-Section-14">14</a> Reference </h1> <h2 class="Subsection"> <a class="toc" name="toc-Subsection-14.1">14.1</a> Configuration file Syntax |
︙ | ︙ | |||
1706 1707 1708 1709 1710 1711 1712 | </h1> <h1 class="Section"> <a class="toc" name="toc-Appendix-B">B</a> References </h1> <hr class="footer"/> <div class="footer" id="generated-by"> | | | 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717 | </h1> <h1 class="Section"> <a class="toc" name="toc-Appendix-B">B</a> References </h1> <hr class="footer"/> <div class="footer" id="generated-by"> Document generated by <a href="http://elyxer.nongnu.org/">eLyXer 1.2.3 (2011-08-31)</a> on <span class="create-date">2014-01-25T22:27:14.268137</span> </div> </div> </body> </html> |
Modified docs/html/monitor-state-diagram.png from [14f1bb59f3] to [83e4cb1ce3].
cannot compute difference between binary files
Modified docs/manual/howto.txt from [ad8e0484e1] to [1e6d2b1394].
︙ | ︙ | |||
15 16 17 18 19 20 21 | ~~~~~~~~~~~~~~~~~~~~~~~~~ During Config File Processing ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Organising Your Tests and Tasks ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | | < < < < < < < < < < | 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | ~~~~~~~~~~~~~~~~~~~~~~~~~ During Config File Processing ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Organising Your Tests and Tasks ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ---------------------------- [tests-paths] 1 #{get misc parent}/simplerun/tests ---------------------------- ------------------- [setup] ------------------- The runscript method is a brute force way to run scripts where the user is responsible for setting STATE and STATUS ------------------- runscript main.csh ------------------- |
Modified docs/manual/megatest_manual.html from [97d3fb8ca7] to [739c3cc0a1].
︙ | ︙ | |||
779 780 781 782 783 784 785 | which can launch jobs on local and remote Linux hosts. Currently megatest uses the network filesystem to call home to your master sqlite3 database.</p></div> </div> </div> </div> <h1 id="_road_map">Road Map</h1> | | > | | < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < | < < < < < < < < < < < < < < < < < < < < < < < < < < | < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < > < < < < < < < < < < | < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < > < < < < < < < < < < < < < < < < < < < < < | < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < | | 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 | which can launch jobs on local and remote Linux hosts. Currently megatest uses the network filesystem to call home to your master sqlite3 database.</p></div> </div> </div> </div> <h1 id="_road_map">Road Map</h1> <div class="paragraph"><p>Note 1: This road-map is tentative and subject to change without notice.</p></div> <div class="paragraph"><p>Note 2: Starting over. Old plan is commented out.</p></div> <div class="sect1"> <h2 id="_current_items">Current Items</h2> <div class="sectionbody"> <div class="sect2"> <h3 id="_ww05">ww05</h3> <div class="olist arabic"><ol class="arabic"> <li> <p> Runs register in tasks table in monitor.db </p> </li> <li> <p> Server polls tasks table for next action </p> </li> <li> <p> Change run loop to execute in server, triggered by call to polling of tasks table </p> </li> </ol></div> </div> </div> </div> <h1 id="_getting_started">Getting Started</h1> <div class="openblock"> <div class="title">Getting started with Megatest</div> <div class="content"> <div class="paragraph"><p>How to install Megatest and set it up for running your regressions and continuous integration process.</p></div> </div></div> |
︙ | ︙ | |||
1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 | </div> <h1 id="_writing_tests">Writing Tests</h1> <div class="sect1"> <h2 id="_the_first_chapter_of_the_second_part">The First Chapter of the Second Part</h2> <div class="sectionbody"> <div class="paragraph"><p>Chapters grouped into book parts are at level 1 and can contain sub-sections.</p></div> </div> </div> <h1 id="_reference">Reference</h1> <div class="sect1"> <h2 id="_the_first_chapter_of_the_second_part_2">The First Chapter of the Second Part</h2> <div class="sectionbody"> <div class="paragraph"><p>Chapters grouped into book parts are at level 1 and can contain | > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 | </div> <h1 id="_writing_tests">Writing Tests</h1> <div class="sect1"> <h2 id="_the_first_chapter_of_the_second_part">The First Chapter of the Second Part</h2> <div class="sectionbody"> <div class="paragraph"><p>Chapters grouped into book parts are at level 1 and can contain sub-sections.</p></div> </div> </div> <h1 id="_how_to_do_things">How To Do Things</h1> <div class="sect1"> <h2 id="_tricks">Tricks</h2> <div class="sectionbody"> <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> </div> <div class="sect1"> <h2 id="_debugging_tricks">Debugging Tricks</h2> <div class="sectionbody"> <div class="sect2"> <h3 id="_examining_the_environment">Examining The Environment</h3> <div class="sect3"> <h4 id="_during_config_file_processing">During Config File Processing</h4> </div> <div class="sect3"> <h4 id="_organising_your_tests_and_tasks">Organising Your Tests and Tasks</h4> <div class="listingblock"> <div class="content"> <pre><tt>[tests-paths] 1 #{get misc parent}/simplerun/tests</tt></pre> </div></div> <div class="listingblock"> <div class="content"> <pre><tt>[setup]</tt></pre> </div></div> <div class="paragraph"><p>The runscript method is a brute force way to run scripts where the user is responsible for setting STATE and STATUS</p></div> <div class="listingblock"> <div class="content"> <pre><tt>runscript main.csh</tt></pre> </div></div> </div> </div> </div> </div> <h1 id="_reference">Reference</h1> <div class="sect1"> <h2 id="_the_first_chapter_of_the_second_part_2">The First Chapter of the Second Part</h2> <div class="sectionbody"> <div class="paragraph"><p>Chapters grouped into book parts are at level 1 and can contain |
︙ | ︙ | |||
1413 1414 1415 1416 1417 1418 1419 | </div> </div> </div> <div id="footnotes"><hr /></div> <div id="footer"> <div id="footer-text"> Version 1.0<br /> | | | 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 | </div> </div> </div> <div id="footnotes"><hr /></div> <div id="footer"> <div id="footer-text"> Version 1.0<br /> Last updated 2014-01-25 21:45:40 MST </div> </div> </body> </html> |
Modified docs/manual/reference.txt from [6d8b51499a] to [b45aa0231c].
1 2 3 4 5 6 7 8 9 10 11 12 13 | Reference ========= The First Chapter of the Second Part ------------------------------------ Chapters grouped into book parts are at level 1 and can contain sub-sections. The testconfig File ------------------- Setup section | > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | Reference ========= The First Chapter of the Second Part ------------------------------------ Chapters grouped into book parts are at level 1 and can contain sub-sections. The testconfig File ------------------- Setup section |
︙ | ︙ |
Modified docs/plan.txt from [a80831142b] to [6cdd01384a].
1 2 3 | Road Map ======== | | > > > > > | > > > > > > > > | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1 2 3 4 5 6 7 8 9 10 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 | Road Map ======== Note 1: This road-map is tentative and subject to change without notice. Note 2: Starting over. Old plan is commented out. Current Items ------------- ww05 ~~~~ . Runs register in tasks table in monitor.db . Server polls tasks table for next action . Change run loop to execute in server, triggered by call to polling of tasks table // ww32 // ~~~~ // // . Rerun step and or subsequent steps from gui // . Refresh test area files from gui // . Clean and re-run button // . Clean up STATE and STATUS handling. // .. Dashboard and Test control panel are reverse order - choose and fix // .. Move seldom used states and status to drop down selector // . Access test control panel when clicking on Run Summary tests // . Feature: -generate-index-tree // . Change specifing of state and status to use STATE1/STATUS1,STATE2/STATUS2 // // ww33 // ~~~~ // // . http api available for use with Perl, Ruby etc. scripts // . megatest.config setup entries for: // .. run launching (e.g. /bin/sh %CMD% > /dev/null) // .. browser "konqueror %FNAME% // // ww34 // ~~~~ // // . Mark dependent tests for clean/rerun -rerun-downstream // . On run start check for defunct tests in RUNNING, LAUNCHED or REMOTEHOSTSTART and correct or notify // . Fix: refresh of gui sometimes fails on last item (race condition?) // // ww35 // ~~~~ // // . refdb: Add export of csv, json and sexp // . Convert to using call-with-environment-variables where possible. Should allow handling of parallel runs in same process. // . Re-work text interface wizards. Several bugs on record. Possibly convert to gui based. // . Add to testconfig requirements section; launchlimiter scriptname, calls scriptname to check if ok to launch test // . Refactor Run Summary view, currently very clumsy // . Add option to show steps in Run Summary view // // ww36 // ~~~~ // // . Refactor guis for resizeablity // . Add filters to Run Summary view and Run Control view // . Add to megatest.config or testconfig; rerunok STATE/STATUS,STATE/STATUS... // . Launch gates for diskspace; /path/one>1G,/path/two>200M,/tmp>5G,#{scheme *toppath*}>1G // // Bin List // ~~~~~~~~ // // . Quality improvements // .. Server stutters occasionally // .. Large number of items or tests still has some issues. // .. Code refactoring // .. Replace remote process with true API using json (supports Web app also) // . Streamline the gui // .. Everything resizable // .. Less clutter // .. Tool tips // .. Filters on Run Summary, Summary and Run Control panel // .. Built in log viewer (partially implemented) // .. Refactor the test control panel // . Help and documentation // .. Complete the user manual (I’ve been working on this lately). // .. Online help in the gui // . Streamlined install // .. Deployed version (download a location independent ready to run binary bundle) // .. Install Makefile (in progress, needed for Mike to install on VMs) // .. Added option to compile IUP (needed for VMs) // . Server side run launching // . Support for re-running, cleaning etc. of individual steps (ezsteps makes this very easy to implement). // . Launch process needs built in daemonizing (easy to do, just need to test it thoroughly). // . Wizards for creating tests, regression areas (current ones are text only and limited). // . Fully functional built in web service (currently you can browse runs but it is very simplistic). // . Wildcards in runconfigs: e.g. [p1271/9/%/%] // . Gui panels for editing megatest.config and runconfigs.config // . Fully isolated tests (no use of NFS to see regression area files) // . Windows version |
Modified megatest.scm from [af0bbeefa3] to [cfc8b605d6].
︙ | ︙ | |||
693 694 695 696 697 698 699 | ;; - if cannot access db > allowed disconnect time then kill job (if (args:get-arg "-runtests") (general-run-call "-runtests" "run a test" (lambda (target runname keys keyvals) | > > > > | > > > > | | | 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 | ;; - if cannot access db > allowed disconnect time then kill job (if (args:get-arg "-runtests") (general-run-call "-runtests" "run a test" (lambda (target runname keys keyvals) ;; Insert this run into the tasks queue (open-run-close tasks:add tasks:open-db "runtests" user target runname (args:get-arg "-runtests") #f)))) ;; (runs:run-tests target ;; runname ;; (args:get-arg "-runtests") ;; user ;; args:arg-hash)))) ;;====================================================================== ;; Rollup into a run ;;====================================================================== (if (args:get-arg "-rollup") (general-run-call |
︙ | ︙ |
Modified tasks.scm from [f3fa99f925] to [1a3fc67020].
︙ | ︙ | |||
37 38 39 40 41 42 43 | (begin (sqlite3:execute mdb "CREATE TABLE IF NOT EXISTS tasks_queue (id INTEGER PRIMARY KEY, action TEXT DEFAULT '', owner TEXT, state TEXT DEFAULT 'new', target TEXT DEFAULT '', name TEXT DEFAULT '', | | < | 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 | (begin (sqlite3:execute mdb "CREATE TABLE IF NOT EXISTS tasks_queue (id INTEGER PRIMARY KEY, action TEXT DEFAULT '', owner TEXT, state TEXT DEFAULT 'new', target TEXT DEFAULT '', name TEXT DEFAULT '', testpatt TEXT DEFAULT '', keylock TEXT, params TEXT, creation_time TIMESTAMP, execution_time TIMESTAMP);") (sqlite3:execute mdb "CREATE TABLE IF NOT EXISTS monitors (id INTEGER PRIMARY KEY, pid INTEGER, start_time TIMESTAMP, |
︙ | ︙ | |||
271 272 273 274 275 276 277 | (set! res count)) mdb "SELECT count(id) FROM monitors WHERE last_update < (strftime('%s','now') - 300) AND username=?;" (car (user-information (current-user-id)))) res)) ;; register a task | | | | 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 | (set! res count)) mdb "SELECT count(id) FROM monitors WHERE last_update < (strftime('%s','now') - 300) AND username=?;" (car (user-information (current-user-id)))) res)) ;; register a task (define (tasks:add mdb action owner target runname testpatt params) (sqlite3:execute mdb "INSERT INTO tasks_queue (action,owner,state,target,name,testpatt,params,creation_time,execution_time) VALUES (?,?,'new',?,?,?,?,?,strftime('%s','now'),0);" action owner target runname test item |
︙ | ︙ |