renamed make-covered? symboles
This commit is contained in:
parent
c26277a151
commit
3c98384dec
2
info.rkt
2
info.rkt
|
@ -4,7 +4,7 @@
|
||||||
(define deps '("base" "errortrace-lib" "rackunit-lib"
|
(define deps '("base" "errortrace-lib" "rackunit-lib"
|
||||||
"syntax-color-lib"))
|
"syntax-color-lib"))
|
||||||
(define build-deps
|
(define build-deps
|
||||||
'("racket-doc" "scribble-lib"))
|
'("racket-doc" "scribble-lib" "typed-racket-doc"))
|
||||||
|
|
||||||
(define raco-commands
|
(define raco-commands
|
||||||
'(("cover" (submod cover/raco main) "a code coverage tool" 30)))
|
'(("cover" (submod cover/raco main) "a code coverage tool" 30)))
|
||||||
|
|
2
main.rkt
2
main.rkt
|
@ -12,7 +12,7 @@
|
||||||
(-> file-coverage/c path-string?
|
(-> file-coverage/c path-string?
|
||||||
(->* (exact-positive-integer?)
|
(->* (exact-positive-integer?)
|
||||||
(#:byte? boolean?)
|
(#:byte? boolean?)
|
||||||
(or/c 'yes 'no 'missing)))]
|
(or/c 'covered 'uncovered 'irrelevant)))]
|
||||||
[generate-coveralls-coverage coverage-gen/c]
|
[generate-coveralls-coverage coverage-gen/c]
|
||||||
[generate-html-coverage coverage-gen/c]
|
[generate-html-coverage coverage-gen/c]
|
||||||
[generate-raw-coverage coverage-gen/c]))
|
[generate-raw-coverage coverage-gen/c]))
|
||||||
|
|
|
@ -120,20 +120,20 @@
|
||||||
(define file-coverage (hash-ref coverage file))
|
(define file-coverage (hash-ref coverage file))
|
||||||
(define (process-coverage value rst-of-line)
|
(define (process-coverage value rst-of-line)
|
||||||
(case (covered? value)
|
(case (covered? value)
|
||||||
['yes (if (equal? 'no rst-of-line) rst-of-line 'yes)]
|
['covered (if (equal? 'uncovered rst-of-line) rst-of-line 'covered)]
|
||||||
['no 'no]
|
['uncovered 'uncovered]
|
||||||
[else rst-of-line]))
|
[else rst-of-line]))
|
||||||
(define (process-coverage-value value)
|
(define (process-coverage-value value)
|
||||||
(case value
|
(case value
|
||||||
['yes 1]
|
['covered 1]
|
||||||
['no 0]
|
['uncovered 0]
|
||||||
[else (json-null)]))
|
[else (json-null)]))
|
||||||
|
|
||||||
(define-values (line-cover _)
|
(define-values (line-cover _)
|
||||||
(for/fold ([coverage '()] [count 1]) ([line split-src])
|
(for/fold ([coverage '()] [count 1]) ([line split-src])
|
||||||
(cond [(zero? (string-length line)) (values (cons (json-null) coverage) (add1 count))]
|
(cond [(zero? (string-length line)) (values (cons (json-null) coverage) (add1 count))]
|
||||||
[else (define nw-count (+ count (string-length line) 1))
|
[else (define nw-count (+ count (string-length line) 1))
|
||||||
(define all-covered (foldr process-coverage 'missing (range count nw-count)))
|
(define all-covered (foldr process-coverage 'irrelevant (range count nw-count)))
|
||||||
(values (cons (process-coverage-value all-covered) coverage) nw-count)])))
|
(values (cons (process-coverage-value all-covered) coverage) nw-count)])))
|
||||||
(reverse line-cover))
|
(reverse line-cover))
|
||||||
|
|
||||||
|
|
|
@ -18,7 +18,7 @@
|
||||||
|
|
||||||
;;;;; utils
|
;;;;; utils
|
||||||
|
|
||||||
;;; a Cover is (U 'yes 'no 'missing)
|
;;; a Cover is (U 'covered 'uncovered 'irrelevant)
|
||||||
|
|
||||||
;; [Hashof PathString [Hashof Natural Cover]]
|
;; [Hashof PathString [Hashof Natural Cover]]
|
||||||
|
|
||||||
|
@ -47,7 +47,7 @@
|
||||||
(define cache
|
(define cache
|
||||||
(for/hash ([i (range 1 (add1 file-length))])
|
(for/hash ([i (range 1 (add1 file-length))])
|
||||||
(values i
|
(values i
|
||||||
(cond [(irrelevant? i) 'missing]
|
(cond [(irrelevant? i) 'irrelevant]
|
||||||
[else (raw-covered? i c)]))))
|
[else (raw-covered? i c)]))))
|
||||||
cache)))
|
cache)))
|
||||||
|
|
||||||
|
@ -113,9 +113,9 @@
|
||||||
(values m start)
|
(values m start)
|
||||||
(values mode last-start))])))
|
(values mode last-start))])))
|
||||||
(case mode
|
(case mode
|
||||||
[(#t) 'yes]
|
[(#t) 'covered]
|
||||||
[(#f) 'no]
|
[(#f) 'uncovered]
|
||||||
[else 'missing]))
|
[else 'irrelevant]))
|
||||||
|
|
||||||
;; use for determining character/byte offsets for a given
|
;; use for determining character/byte offsets for a given
|
||||||
;; 1 indexed character location
|
;; 1 indexed character location
|
||||||
|
@ -146,14 +146,14 @@
|
||||||
(test-files! f)
|
(test-files! f)
|
||||||
(define coverage (hash-ref (get-test-coverage) f))
|
(define coverage (hash-ref (get-test-coverage) f))
|
||||||
(define covered? (make-covered? coverage f))
|
(define covered? (make-covered? coverage f))
|
||||||
(check-equal? (covered? 14) 'missing)
|
(check-equal? (covered? 14) 'irrelevant)
|
||||||
(check-equal? (covered? 14 #:byte? #t) 'missing)
|
(check-equal? (covered? 14 #:byte? #t) 'irrelevant)
|
||||||
(check-equal? (covered? 17) 'missing)
|
(check-equal? (covered? 17) 'irrelevant)
|
||||||
(check-equal? (covered? 28) 'missing)
|
(check-equal? (covered? 28) 'irrelevant)
|
||||||
(check-equal? (covered? 35) 'yes)
|
(check-equal? (covered? 35) 'covered)
|
||||||
(check-equal? (covered? 50) 'no)
|
(check-equal? (covered? 50) 'uncovered)
|
||||||
(check-equal? (covered? 51 #:byte? #t) 'no)
|
(check-equal? (covered? 51 #:byte? #t) 'uncovered)
|
||||||
(check-equal? (covered? 52) 'missing)
|
(check-equal? (covered? 52) 'irrelevant)
|
||||||
(check-equal? (covered? 53) 'missing)
|
(check-equal? (covered? 53) 'irrelevant)
|
||||||
(check-equal? (covered? 54) 'missing)
|
(check-equal? (covered? 54) 'irrelevant)
|
||||||
(clear-coverage!)))
|
(clear-coverage!)))
|
||||||
|
|
|
@ -175,9 +175,9 @@
|
||||||
(define (mode-xml mode body)
|
(define (mode-xml mode body)
|
||||||
(define class
|
(define class
|
||||||
(case mode
|
(case mode
|
||||||
[(yes) "covered"]
|
[(covered) "covered"]
|
||||||
[(no) "uncovered"]
|
[(uncovered) "uncovered"]
|
||||||
[(missing) "missing"]))
|
[(irrelevant) "irrelevant"]))
|
||||||
`(span ((class ,class)) ,body))
|
`(span ((class ,class)) ,body))
|
||||||
|
|
||||||
(module+ test
|
(module+ test
|
||||||
|
@ -198,7 +198,7 @@
|
||||||
,@(for/list ([l (rest (string-split (file->string f) "\n"))])
|
,@(for/list ([l (rest (string-split (file->string f) "\n"))])
|
||||||
`(li ()
|
`(li ()
|
||||||
,@(for/list ([c l])
|
,@(for/list ([c l])
|
||||||
`(span ((class ,(if (equal? c #\space) "missing" "covered")))
|
`(span ((class ,(if (equal? c #\space) "irrelevant" "covered")))
|
||||||
,(encode-char c))))))))
|
,(encode-char c))))))))
|
||||||
|
|
||||||
|
|
||||||
|
@ -247,10 +247,10 @@
|
||||||
(values (e->n e) (a->n e)))
|
(values (e->n e) (a->n e)))
|
||||||
(define (a->n e)
|
(define (a->n e)
|
||||||
(case (is-covered? e)
|
(case (is-covered? e)
|
||||||
[(yes no) 1]
|
[(covered uncovered) 1]
|
||||||
[else 0]))
|
[else 0]))
|
||||||
(define (e->n e)
|
(define (e->n e)
|
||||||
(if (eq? (is-covered? e) 'yes) 1 0))
|
(if (eq? (is-covered? e) 'covered) 1 0))
|
||||||
(define-values (covered count)
|
(define-values (covered count)
|
||||||
(let recur ([e e])
|
(let recur ([e e])
|
||||||
(syntax-parse e
|
(syntax-parse e
|
||||||
|
|
|
@ -10,4 +10,4 @@
|
||||||
color:green;
|
color:green;
|
||||||
}
|
}
|
||||||
|
|
||||||
.missing {}
|
.irrelevant {}
|
|
@ -39,7 +39,7 @@ Test coverage info is added to existing coverage info.}
|
||||||
@defproc[(make-covered? (coverage file-coverage/c) (path path-string?))
|
@defproc[(make-covered? (coverage file-coverage/c) (path path-string?))
|
||||||
(->* (exact-positive-integer?)
|
(->* (exact-positive-integer?)
|
||||||
(#:byte? boolean?)
|
(#:byte? boolean?)
|
||||||
(or/c 'yes 'no 'missing))
|
(or/c 'covered 'uncovered 'irrelevant))
|
||||||
]{
|
]{
|
||||||
Given some location in a file and the
|
Given some location in a file and the
|
||||||
coverage information for that file @racket[make-covered?] returns
|
coverage information for that file @racket[make-covered?] returns
|
||||||
|
@ -47,11 +47,12 @@ a functions that determines if some @racket[1] indexed character or byte locatio
|
||||||
in that file is covered. By default it checks character locations.
|
in that file is covered. By default it checks character locations.
|
||||||
|
|
||||||
There are three possible results:
|
There are three possible results:
|
||||||
@itemize[@item{@racket['missing] --- The location is not considered relevant to coverage information.
|
@itemize[@item{@racket['irrelevant] --- The location is not considered relevant to coverage information.
|
||||||
It might be in a submodule or lexes (in the sense of that languages
|
It is either not in the coverage information, is in a submodule, or lexes (in the sense of that languages
|
||||||
@racket[_color-lexer]) as a comment or whitespace.}
|
@racket[_color-lexer]) as a comment or whitespace.}
|
||||||
@item{@racket['yes] --- The location is not @racket['missing] and is
|
@item{@racket['covered] --- The location is not @racket['irrelevant] and is
|
||||||
covered} @item{@racket['no] --- The location is not @racket['missing]
|
covered}
|
||||||
|
@item{@racket['uncovered] --- The location is not @racket['uncovered]
|
||||||
and is not covered}]
|
and is not covered}]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user