Overview
Comment: | Fixed removal of directories and links in -remove-runs and added backwards compatibility for -itempatt. |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | trunk | v1.501 |
Files: | files | file ages | folders |
SHA1: |
7b78a751c5a9b3e1158c23944aff0c10 |
User & Date: | mrwellan on 2012-10-15 14:44:26 |
Other Links: | manifest | tags |
Context
2012-10-15
| ||
15:06 | Bumped version check-in: 8b9875923e user: fdk71adm tags: trunk | |
14:44 | Fixed removal of directories and links in -remove-runs and added backwards compatibility for -itempatt. check-in: 7b78a751c5 user: mrwellan tags: trunk, v1.501 | |
10:41 | Bumped version check-in: 0791ec1f09 user: fdk71adm tags: trunk, v1.50 | |
Changes
Modified db.scm from [2fb3c871e0] to [07bd577b13].
︙ | ︙ | |||
47 48 49 50 51 52 53 | ((string-match (regexp "no" #t) syncval) 0) ((string-match (regexp "(off|normal|full)" #t) syncval) syncval) (else (debug:print 0 "ERROR: synchronous must be 0,1,2,OFF,NORMAL or FULL, you provided: " syncval) #f)))) (if val (begin | | | 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 | ((string-match (regexp "no" #t) syncval) 0) ((string-match (regexp "(off|normal|full)" #t) syncval) syncval) (else (debug:print 0 "ERROR: synchronous must be 0,1,2,OFF,NORMAL or FULL, you provided: " syncval) #f)))) (if val (begin (debug:print 4 "INFO: Setting pragma synchronous to " val) (sqlite3:execute db (conc "PRAGMA synchronous = '" val "';")))))) (define (open-db) ;; (conc *toppath* "/megatest.db") (car *configinfo*))) (let* ((dbpath (conc *toppath* "/megatest.db")) ;; fname) (dbexists (file-exists? dbpath)) (db (sqlite3:open-database dbpath)) ;; (never-give-up-open-db dbpath)) (handler (make-busy-timeout (if (args:get-arg "-override-timeout") |
︙ | ︙ |
Modified megatest-version.scm from [15b1b2bb77] to [26dfc1ffcf].
1 2 3 4 5 | ;; Always use two digit decimal ;; 1.01, 1.02...1.10,1.11 ... 1.99,2.00.. (declare (unit megatest-version)) | | | 1 2 3 4 5 6 7 | ;; Always use two digit decimal ;; 1.01, 1.02...1.10,1.11 ... 1.99,2.00.. (declare (unit megatest-version)) (??)(define megatest-version 1.501") |
Modified megatest.scm from [cbd52df01f] to [0d217d1188].
︙ | ︙ | |||
215 216 217 218 219 220 221 222 223 224 225 226 227 228 | (if (not (number? *verbosity*)) (begin (print "ERROR: Invalid debug value " (args:get-arg "-debug")) (exit))) (if (> *verbosity* 3) ;; we are obviously debugging (set! open-run-close open-run-close-no-exception-handling)) ;;====================================================================== ;; Misc general calls ;;====================================================================== (if (args:get-arg "-env2file") (begin | > > > > > > > > > > > > > | 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 | (if (not (number? *verbosity*)) (begin (print "ERROR: Invalid debug value " (args:get-arg "-debug")) (exit))) (if (> *verbosity* 3) ;; we are obviously debugging (set! open-run-close open-run-close-no-exception-handling)) ;; to try and not burden Kim too much... (if (args:get-arg "-itempatt") (let ((old-testpatt (args:get-arg "-testpatt"))) (debug:print 0 "ERROR: parameter \"-itempatt\" has been deprecated. For now I will tweak your -testpatt for you") (hash-table-set! args:arg-hash "-testpatt" (conc old-testpatt "/" (args:get-arg "-itempatt"))) (debug:print 0 " old: " old-testpatt ", new: " (args:get-arg "-testpatt")) (if (args:get-arg "-runtests") (begin (debug:print 0 "NOTE: Also modifying -runtests") (hash-table-set! args:arg-hash "-runtests" (conc (args:get-arg "-runtests") "/" (args:get-arg "-itempatt"))))) )) ;;====================================================================== ;; Misc general calls ;;====================================================================== (if (args:get-arg "-env2file") (begin |
︙ | ︙ |
Modified runs.scm from [5c6e226ea2] to [f9c8089151].
︙ | ︙ | |||
747 748 749 750 751 752 753 | action) (else (print "INFO: action not recognised " action))) (for-each (lambda (test) (let* ((item-path (db:test-get-item-path test)) (test-name (db:test-get-testname test)) | | > > > | | > | | | | | | | | | | > > | | | | | | | < > | | > > | 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 | action) (else (print "INFO: action not recognised " action))) (for-each (lambda (test) (let* ((item-path (db:test-get-item-path test)) (test-name (db:test-get-testname test)) (run-dir (db:test-get-rundir test)) ;; run dir is from the link tree (real-dir (if (file-exists? run-dir) (resolve-pathname run-dir) #f)) (test-id (db:test-get-id test))) ;; (tdb (db:open-test-db run-dir))) (debug:print 4 "INFO: test=" test) ;; " (db:test-get-testname test) " id: " (db:test-get-id test) " " item-path " action: " action) (case action ((remove-runs) ;; the tdb is for future possible. (open-run-close db:delete-test-records db #f (db:test-get-id test)) (debug:print 1 "INFO: Attempting to remove dir " real-dir " and link " run-dir) (if (and real-dir (> (string-length real-dir) 5) (file-exists? real-dir)) ;; bad heuristic but should prevent /tmp /home etc. (begin ;; let* ((realpath (resolve-pathname run-dir))) (debug:print 1 "INFO: Recursively removing " real-dir) (if (file-exists? real-dir) (if (> (system (conc "rm -rf " real-dir)) 0) (debug:print 0 "ERROR: There was a problem removing " real-dir " with rm -f")) (debug:print 0 "WARNING: test run dir " real-dir " appears to not exist"))) (debug:print 0 "WARNING: directory " real-dir " does not exist")) (if (symbolic-link? run-dir) (begin (debug:print 1 "INFO: Removing symlink " run-dir) (delete-file run-dir)) (if (directory? run-dir) (if (> (directory-fold (lambda (f x)(+ 1 x)) 0 run-dir) 0) (debug:print 0 "WARNING: refusing to remove " run-dir " as it is not empty") (delete-directory run-dir)) ;; it should be empty by here BUG BUG, add error catch (debug:print 0 "ERROR: refusing to remove " run-dir " as it either doesn't exist or is not a symlink or directory") ))) ((set-state-status) (debug:print 2 "INFO: new state " (car state-status) ", new status " (cadr state-status)) (open-run-close db:test-set-state-status-by-id db (db:test-get-id test) (car state-status)(cadr state-status) #f))))) (sort tests (lambda (a b)(let ((dira (db:test-get-rundir a)) (dirb (db:test-get-rundir b))) (if (and (string? dira)(string? dirb)) (> (string-length dira)(string-length dirb)) #f))))))) ;; remove the run if zero tests remain (if (eq? action 'remove-runs) (let ((remtests (open-run-close db:get-tests-for-run db (db:get-value-by-header run header "id") #f '("DELETED") '("n/a") not-in: #t))) (if (null? remtests) ;; no more tests remaining (let* ((dparts (string-split lasttpath "/")) (runpath (conc "/" (string-intersperse (take dparts (- (length dparts) 1)) |
︙ | ︙ |