aboutsummaryrefslogtreecommitdiff
path: root/src/clojure/contrib/test_contrib
diff options
context:
space:
mode:
authorStuart Halloway <stu@thinkrelevance.com>2009-08-05 17:00:17 -0500
committerStuart Halloway <stu@thinkrelevance.com>2009-08-05 17:00:17 -0500
commit2d0079c159a37740173bbe289daca41e48723bfd (patch)
treed164adc5447834943be2248d16266c8716f8a810 /src/clojure/contrib/test_contrib
parent6c95fe90829cc66f81345a011dc25fc487e4cf0b (diff)
minor fix to deftrace: traced functions can now refer to themselves
Diffstat (limited to 'src/clojure/contrib/test_contrib')
-rw-r--r--src/clojure/contrib/test_contrib/test_trace.clj12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/clojure/contrib/test_contrib/test_trace.clj b/src/clojure/contrib/test_contrib/test_trace.clj
new file mode 100644
index 00000000..4b283056
--- /dev/null
+++ b/src/clojure/contrib/test_contrib/test_trace.clj
@@ -0,0 +1,12 @@
+(ns clojure.contrib.test-contrib.test-trace
+ (:use clojure.test
+ [clojure.contrib trace str-utils]))
+
+(deftrace call-myself [n]
+ (when-not (< n 1)
+ (call-myself (dec n))))
+
+(deftest test-tracing-a-function-that-calls-itself
+ (let [output (with-out-str (call-myself 1))]
+ (is (re-find #"^TRACE t\d+: (call-myself 1)\nTRACE t\d+: | (call-myself 0)\nTRACE t\d+: | => nil\nTRACE t\d+: => nil$"
+ output)))) \ No newline at end of file