From 230fcf49df2723c79cf87c760b80df4f2b1ced28 Mon Sep 17 00:00:00 2001 From: Jon Rafkind Date: Tue, 29 Sep 2009 04:30:31 +0000 Subject: [PATCH] add simple trace tests svn: r16158 --- collects/tests/mzscheme/trace.ss | 53 ++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 collects/tests/mzscheme/trace.ss diff --git a/collects/tests/mzscheme/trace.ss b/collects/tests/mzscheme/trace.ss new file mode 100644 index 0000000000..6ca5b5d2d1 --- /dev/null +++ b/collects/tests/mzscheme/trace.ss @@ -0,0 +1,53 @@ +(load-relative "loadtest.ss") + +(Section 'trace) + +(require scheme/trace) + +(define-syntax-rule (trace-output expr ...) + (let ([out (list)]) + (parameterize ([current-trace-notify (lambda (e) + (set! out (cons e out)))]) + expr ... + (reverse out)))) + +(let ([n1 (let ([out (list)]) + (parameterize ([current-trace-notify (lambda (e) + (set! out (cons e out)))]) + (define (foo x) x) + (trace foo) + (foo 2) + out))]) + (test (reverse n1) 'test-it (list ">(foo 2)" "<2"))) + +(test (trace-output + (define (foo x) x) + (trace foo) + (foo 2)) + 'simple-trace + (list ">(foo 2)" + "<2")) + +(test (trace-output + (define (foo x) (add1 x)) + (trace foo) + (foo 2)) + 'simple-trace + (list ">(foo 2)" + "<3")) + +(test (trace-output + (define (a x) x) + (define (b x) (a x)) + (define (c x) (+ (b x) (b x))) + (trace a b c) + (c 1)) + 'trace2 + (list ">(c 1)" + "> (b 1)" + "> (a 1)" + "< 1" + "> (b 1)" + "> (a 1)" + "< 1" + "<2"))