]> git.donarmstrong.com Git - lilypond.git/blobdiff - scm/coverage.scm
Add '-dcrop' option to ps and svg backends
[lilypond.git] / scm / coverage.scm
index 5ca40f90299768c2c8923a62ca3827d927cc57ed..0f1ae319ad627bf2f79eee457b13785d3ba41646 100644 (file)
@@ -1,37 +1,38 @@
+;;;; coverage.scm
+
 (define-module (scm coverage))
 
 (use-modules (lily)
-            (ice-9 rdelim)
-            (ice-9 regex)
-            (ice-9 format))
+             (ice-9 rdelim)
+             (ice-9 regex)
+             (ice-9 format) ;; needed for ~8@
+             )
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 
 (define-public (coverage:show-all filter?)
-  
-  (newline)
-  (hash-fold
-   (lambda (key val acc)
-     (if (filter? key)
-        (begin
-          (format #t
-                "
-Coverage for file: ~a
-"
-                key)
-        (display-coverage key val
-                          (format #f "~a.cov" (basename key))
-                          )))
-     #t)
-   #t
-   coverage-table))
+  (let*
+      ((keys
+        (filter filter?
+                (sort (map car (hash-table->alist coverage-table)) string<? ))))
+
+    (newline)
+    (for-each
+     (lambda (k)
+
+       (format #t "Coverage for file: ~a\n" k)
+       (display-coverage
+        k (hash-ref coverage-table k)
+        (format #f "~a.cov" (basename k))))
+     keys)))
+
 
 (define-public (coverage:enable)
   (trap-set! memoize-symbol-handler record-coverage)
   (trap-enable 'memoize-symbol)
   (trap-enable 'traps))
 
-     
+
 (define-public (coverage:disable)
   (trap-set! memoize-symbol-handler #f)
   (trap-disable 'memoize-symbol))
@@ -48,27 +49,27 @@ Coverage for file: ~a
       ((lines (read-lines (open-file file "r")))
        (format-str "~8@a: ~5@a:~a\n")
        (out (if out-file (open-output-file out-file)
-               (current-output-port))))
+                (current-output-port))))
 
     (format out format-str "-" 0 (format #f "Source:~a" file))
     (do
-       ((i 0 (1+ i))
-        (l lines (cdr l)))
-       ((or (null? l) ))
+        ((i 0 (1+ i))
+         (l lines (cdr l)))
+        ((or (null? l) ))
 
       (format out format-str
-                      (cond
-                       ((and (< i (vector-length vec)) (vector-ref vec i)) "1")
-                       ((and (string-contains file ".ly") (string-match "^[ \t]*%.*$" (car l)))
-                        "-")
-                       ((string-match  "^[ \t]*[()'`,]*$" (car l))
-                        "-")
-                       ((string-match  "^[ \t]*;.*$" (car l))
-
-                        "-")
-                       (else "0"))
-                      (1+ i)
-                      (car l)))))
+              (cond
+               ((and (< i (vector-length vec)) (vector-ref vec i)) "1")
+               ((and (string-contains file ".ly") (string-match "^[ \t]*%.*$" (car l)))
+                "-")
+               ((string-match  "^[ \t]*[()'`,]*$" (car l))
+                "-")
+               ((string-match  "^[ \t]*;.*$" (car l))
+
+                "-")
+               (else "0"))
+              (1+ i)
+              (car l)))))
 
 (define (record-coverage key cont exp env)
   (let*
@@ -77,22 +78,17 @@ Coverage for file: ~a
        (vec (and name (hash-ref coverage-table name #f)))
        (veclen (and vec (vector-length vec)))
        (veccopy (lambda (src dst)
-                 (vector-move-left! src 0 (vector-length src)
-                                    dst 0)
-                 dst)))
+                  (vector-move-left! src 0 (vector-length src)
+                                     dst 0)
+                  dst)))
     (if (and line name)
-       (begin
-         (if (or (not vec) (>= line (vector-length vec)))
-             (set! vec
-                   (hash-set! coverage-table name
-                               (if vec
-                                   (veccopy vec (make-vector (1+ line) #f))
-                                   (make-vector (1+ line) #f)))))
-
-         (vector-set! vec line #t))
-    )))
-
-
-
-
-
+        (begin
+          (if (or (not vec) (>= line (vector-length vec)))
+              (set! vec
+                    (hash-set! coverage-table name
+                               (if vec
+                                   (veccopy vec (make-vector (1+ line) #f))
+                                   (make-vector (1+ line) #f)))))
+
+          (vector-set! vec line #t))
+        )))