Megatest

Check-in [19e5d7e0c2]
Login
Overview
Comment:99.9%. Added exception handler when checking for journal file - if the test for the file happens at the wrong time it can fail
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | v1.60
Files: files | file ages | folders
SHA1: 19e5d7e0c28c9e663ae5e3bde6df7caf0831626f
User & Date: mrwellan on 2014-11-13 08:51:02
Other Links: branch diff | manifest | tags
Context
2014-11-13
09:00
bumped version to v1.6006 check-in: ed44e5d269 user: mrwellan tags: v1.60
08:51
99.9%. Added exception handler when checking for journal file - if the test for the file happens at the wrong time it can fail check-in: 19e5d7e0c2 user: mrwellan tags: v1.60
2014-11-12
23:21
Update schema creation to allow retrying to create schema check-in: 483e2bb5d3 user: matt tags: v1.60
Changes

Modified db.scm from [dc27fe9f35] to [3cfb280ece].

1696
1697
1698
1699
1700
1701
1702
1703

1704
1705
1706
1707
1708
1709
1710
1696
1697
1698
1699
1700
1701
1702

1703
1704
1705
1706
1707
1708
1709
1710







-
+







			       (if currstatus (conc "status='" currstatus "' AND ") "")
			       " run_id=? AND testname LIKE ?;")))
		(db:with-db
		 dbstruct
		 run-id
		 #t
		 (lambda (db)
		   (sqlite3:execute (db:get-db dbstruct run-id) qry newstate newstatus run-id testname)))))
		   (sqlite3:execute db qry newstate newstatus run-id testname)))))
	    testnames))

;; speed up for common cases with a little logic
;; NB// Ultimately this will be deprecated in deference to mt:test-set-state-status-by-id
;;
(define (db:test-set-state-status-by-id dbstruct run-id test-id newstate newstatus newcomment)
  (db:with-db
2445
2446
2447
2448
2449
2450
2451






2452

2453
2454
2455
2456
2457
2458
2459
2445
2446
2447
2448
2449
2450
2451
2452
2453
2454
2455
2456
2457

2458
2459
2460
2461
2462
2463
2464
2465







+
+
+
+
+
+
-
+







		      (loop (car tal)(cdr tal))))))))))

(define (db:delay-if-busy dbdat #!key (count 6))
  (if dbdat
      (let* ((dbpath (db:dbdat-get-path dbdat))
	     (db     (db:dbdat-get-db   dbdat)) ;; we'll return this so (db:delay--if-busy can be called inline
	     (dbfj   (conc dbpath "-journal")))
	(if (handle-exceptions
	     exn
	     (begin
	       (debug:print-info 0 "WARNING: failed to test for existance of " dbfj)
	       (thread-sleep! 1)
	       (db:delay-if-busy count (- count 1)))
	(if (file-exists? dbfj)
	     (file-exists? dbfj))
	    (case count
	      ((6)
	       (thread-sleep! 0.2)
	       (db:delay-if-busy count: 5))
	      ((5)
	       (thread-sleep! 0.4)
	       (db:delay-if-busy count: 4))