From 11732128b30f25b854583af55f8921b76e9bbcc8 Mon Sep 17 00:00:00 2001 From: Vincent St-Amour Date: Wed, 5 Feb 2014 15:45:31 -0500 Subject: [PATCH] Check for incomplete blame information and error. --- pkgs/contract-profile/main.rkt | 6 ++++++ pkgs/contract-profile/utils.rkt | 4 ++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/pkgs/contract-profile/main.rkt b/pkgs/contract-profile/main.rkt index bdd28ca657..6204c09d08 100644 --- a/pkgs/contract-profile/main.rkt +++ b/pkgs/contract-profile/main.rkt @@ -31,6 +31,12 @@ (blame-swap b) ; swap back b)))) (define regular-profile (analyze-samples samples*)) + ;; all blames must be complete, otherwise we get bogus profiles + (for ([b (in-list all-blames)]) + (unless (and (blame-positive b) + (blame-negative b)) + (error (string-append "contract-profile: incomplete blame:\n" + (format-blame b))))) (contract-profile total-time live-contract-samples all-blames regular-profile)) diff --git a/pkgs/contract-profile/utils.rkt b/pkgs/contract-profile/utils.rkt index 0e9463f665..014a8e644c 100644 --- a/pkgs/contract-profile/utils.rkt +++ b/pkgs/contract-profile/utils.rkt @@ -35,8 +35,8 @@ (lambda () body ...)))) ;; for debugging -(define (print-blame b) - (printf (string-append "#