commit 68027e7fa6e398abcb12baca4d66bf1c8338656d Author: Spencer Florence Date: Mon Sep 22 17:03:24 2014 -0500 initial commit diff --git a/coverage.rkt b/coverage.rkt new file mode 100644 index 0000000..cd7a237 --- /dev/null +++ b/coverage.rkt @@ -0,0 +1,3 @@ +(module coverage '#%kernel + (#%provide coverage) + (define-values (coverage) (make-hash))) diff --git a/main.rkt b/main.rkt new file mode 100644 index 0000000..9637e52 --- /dev/null +++ b/main.rkt @@ -0,0 +1,24 @@ +#lang racket/base +(provide test-files clear-coverage!) +(require racket/dict + racket/function + syntax/modread + "coverage.rkt" + "strace.rkt") + + +(define ns (make-base-empty-namespace)) +(namespace-attach-module (current-namespace) "coverage.rkt" ns) + +(define (test-files . paths) + (for ([p paths]) + (define stx + (with-module-reading-parameterization (thunk (read-syntax p (open-input-file p))))) + (define anned (annotate-top (expand stx) (namespace-base-phase ns))) + (eval-syntax anned ns)) + coverage) + +(define (clear-coverage!) + (dict-clear! coverage) + (set! ns (make-base-empty-namespace)) + (namespace-attach-module (current-namespace) "coverage.rkt" ns)) diff --git a/strace.rkt b/strace.rkt new file mode 100644 index 0000000..e525a6e --- /dev/null +++ b/strace.rkt @@ -0,0 +1,24 @@ +#lang racket/base +(provide annotate-top) +(require errortrace/stacktrace + racket/function + racket/unit + "coverage.rkt") + +(define (with-mark src dest phase) dest) +(define test-coverage-enabled (make-parameter #t)) + +(define (initialize-test-coverage-point stx) + (hash-set! coverage stx #f)) +(define (test-covered stx) + (thunk (hash-set! coverage stx #t))) + +(define profile-key (gensym)) + +(define profiling-enabled (make-parameter #f)) +(define initialize-profile-point void) +(define (register-profile-start . a) #f) +(define register-profile-done void) + +(define-values/invoke-unit/infer stacktrace@) +