Index: Makefile ================================================================== --- Makefile +++ Makefile @@ -138,6 +138,6 @@ test: tests/tests.scm cd tests;csi -I .. -b -n tests.scm clean : - rm -f $(OFILES) $(GOFILES) megatest dboard dboard.o megatest.o + rm -f $(OFILES) $(GOFILES) megatest dboard dboard.o megatest.o dashboard.o Index: common_records.scm ================================================================== --- common_records.scm +++ common_records.scm @@ -49,20 +49,24 @@ (define (debug:print n . params) (if (debug:debug-mode n) (with-output-to-port (current-error-port) (lambda () - (apply print params) - (if *logging* (apply db:log-event params)))))) + (if *logging* + (db:log-event (apply conc params)) + (apply print params) + ))))) (define (debug:print-info n . params) (if (debug:debug-mode n) (with-output-to-port (current-error-port) (lambda () - (let ((res #f));; (format#format #f "INFO:~2d ~a" n (apply conc params)))) - (apply print "INFO: (" n ") " params) ;; res) - (if *logging* (db:log-event res))))))) + (let ((res (format#format #f "INFO: (~2d) ~a" n (apply conc params)))) + (if *logging* + (db:log-event res) + (apply print "INFO: (" n ") " params) ;; res) + )))))) ;; if a value is printable (i.e. string or number) return the value ;; else return an empty string (define-inline (printable val) (if (or (number? val)(string? val)) val "")) Index: db.scm ================================================================== --- db.scm +++ db.scm @@ -359,19 +359,23 @@ (sqlite3:execute db "CREATE TABLE IF NOT EXISTS log (id INTEGER PRIMARY KEY,event_time TIMESTAMP DEFAULT (strftime('%s','now')),logline TEXT,pwd TEXT,cmdline TEXT,pid INTEGER);") (sqlite3:execute db (conc "PRAGMA synchronous = 0;")))) db)) (define (db:log-local-event . loglst) - (let ((logline (apply conc loglst)) - (pwd (current-directory)) - (cmdline (string-intersperse (argv) " ")) - (pid (current-process-id))) - (db:log-event logline pwd cmdline pid))) + (let ((logline (apply conc loglst))) + ;; (pwd (current-directory)) + ;; (cmdline (string-intersperse (argv) " ")) + ;; (pid (current-process-id))) + (db:log-event logline))) -(define (db:log-event logline pwd cmdline pid) +(define (db:log-event logline) (let ((db (open-logging-db))) - (sqlite3:execute db "INSERT INTO log (logline,pwd,cmdline,pid) VALUES (?,?,?,?);" logline (current-directory)(string-intersperse (argv) " ")(current-process-id)) + (sqlite3:execute db "INSERT INTO log (logline,pwd,cmdline,pid) VALUES (?,?,?,?);" + logline + (current-directory) + (string-intersperse (argv) " ") + (current-process-id)) (sqlite3:finalize! db) logline)) ;;====================================================================== ;; TODO: Index: docs/plan.txt ================================================================== --- docs/plan.txt +++ docs/plan.txt @@ -1,5 +1,36 @@ +Road Map +======== + +. 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 Move test specific db to test dir ================================= . Create teststats.db Index: runs.scm ================================================================== --- runs.scm +++ runs.scm @@ -648,12 +648,18 @@ (if (and (list? items) (> (length items) 0) (and (list? (car items)) (> (length (car items)) 0)) (debug:debug-mode 1)) - (pp items)) - + (debug:print 2 (map (lambda (row) + (conc (string-intersperse + (map (lambda (varval) + (string-intersperse varval "=")) + row) + " ") + "\n")) + items))) (for-each (lambda (my-itemdat) (let* ((new-test-record (let ((newrec (make-tests:testqueue))) (vector-copy! test-record newrec) newrec)) Index: utils/mk_wrapper ================================================================== --- utils/mk_wrapper +++ utils/mk_wrapper @@ -9,8 +9,8 @@ echo "export LD_LIBRARY_PATH=$LD_LIBRARY_PATH" else echo "INFO: LD_LIBRARY_PATH not set" >&2 fi -fullcmd="$prefix/bin/$cmd" +fullcmd="exec $prefix/bin/$cmd" echo "$fullcmd \"\$@\""