Recover full backtraces with generic arithmetic on x86 and x86-64
[sbcl.git] / tests / profile.impure.lisp
index ab1c95c..721fdeb 100644 (file)
     (unless (equal res want)
       (error "wanted ~S, got ~S" want res)))
   (report))
+
+(with-test (:name :profiling-counter)
+  ;; Make sure our profiling counters don't miscount
+  (let ((c (sb-profile::make-counter))
+        (i 0))
+    (loop repeat 1000000
+          do (let ((n (random (* 12 (ash 1 sb-vm:n-word-bits)))))
+               (sb-profile::incf-counter c n)
+               (incf i n))
+             (let ((n (random (ash 1 sb-vm:n-word-bits))))
+               (sb-profile::incf-counter c n)
+               (incf i n)))
+    (assert (= i (sb-profile::counter-count c)))))