Megatest

Check-in [45737fefdf]
Login
Overview
Comment:Added protection to the opening of borked testdat.db files
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | v1.55
Files: files | file ages | folders
SHA1: 45737fefdfe7907d1e6e765f6f1a810c90aebd38
User & Date: mrwellan on 2013-10-17 08:36:12
Other Links: branch diff | manifest | tags
Context
2013-10-18
09:50
Fixed typo in exception handling message - found this when trying to create links on a full disk check-in: 0e8689805c user: mrwellan tags: v1.55
2013-10-17
23:52
Merged in couple additional changes from v1.55 check-in: 42ccc89874 user: matt tags: refactor-db
08:36
Added protection to the opening of borked testdat.db files check-in: 45737fefdf user: mrwellan tags: v1.55
2013-10-15
01:16
Somewhat speculative fix for failure to discard non-runnable tests check-in: f5d77988cc user: matt tags: v1.55
Changes

Modified db.scm from [a7b6fe1509] to [1ccd181f1b].

2044
2045
2046
2047
2048
2049
2050

2051
2052
2053
2054
2055
2056
2057
2058
2059










2060
2061
2062
2063
2064
2065
2066
2044
2045
2046
2047
2048
2049
2050
2051









2052
2053
2054
2055
2056
2057
2058
2059
2060
2061
2062
2063
2064
2065
2066
2067
2068







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







  (seconds->time-string (db:step-get-event_time vec)))

;; db-get-test-steps-for-run
(define (db:get-steps-for-test db test-id #!key (work-area #f))
  (let* ((tdb (db:open-test-db-by-test-id db test-id work-area: work-area))
	 (res '()))
    (if tdb
	(handle-exceptions
	(begin
	  (sqlite3:for-each-row 
	   (lambda (id test-id stepname state status event-time logfile)
	     (set! res (cons (vector id test-id stepname state status event-time (if (string? logfile) logfile "")) res)))
	   tdb
	   "SELECT id,test_id,stepname,state,status,event_time,logfile FROM test_steps WHERE test_id=? ORDER BY id ASC;" ;; event_time DESC,id ASC;
	   test-id)
	  (sqlite3:finalize! tdb)
	  (reverse res))
	 exn
	 '()
	 (sqlite3:for-each-row 
	  (lambda (id test-id stepname state status event-time logfile)
	    (set! res (cons (vector id test-id stepname state status event-time (if (string? logfile) logfile "")) res)))
	  tdb
	  "SELECT id,test_id,stepname,state,status,event_time,logfile FROM test_steps WHERE test_id=? ORDER BY id ASC;" ;; event_time DESC,id ASC;
	  test-id)
	 (sqlite3:finalize! tdb)
	 (reverse res))
	'())))

;; get a pretty table to summarize steps
;;
(define (db:get-steps-table db test-id #!key (work-area #f))
  (let ((steps   (db:get-steps-for-test db test-id work-area: work-area)))
    ;; organise the steps for better readability

Modified tests/Makefile from [61a811b0b3] to [0a1e46dab4].


1
2
3
4
5
6
7
1
2
3
4
5
6
7
8
+







#
# run some tests

BINPATH=$(shell readlink -m $(PWD)/../bin)
MEGATEST=$(BINPATH)/megatest
PATH := $(BINPATH):$(PATH)
RUNNAME := $(shell date +w%V.%u.%H.%M)
IPADDR := "-"