X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=tests%2Fprofile.impure.lisp;h=95e4b7fcffc92e7097d76088b9acc5c066ba730e;hb=9b79c4c51954ffc46c631e56547ac865860e8855;hp=ab1c95c50da57056f4aca7717ae118b4301b1ed1;hpb=c461e239d10c94d77649856bbde06431666da4fd;p=sbcl.git diff --git a/tests/profile.impure.lisp b/tests/profile.impure.lisp index ab1c95c..95e4b7f 100644 --- a/tests/profile.impure.lisp +++ b/tests/profile.impure.lisp @@ -80,7 +80,7 @@ (in-package :cl-user) -(with-test (:name (profile threads)) +(with-test (:name (profile :threads)) (profile "PROFILE-TEST") ;; This used to signal an error with threads (let* ((n #+sb-thread 5 #-sb-thread 1) @@ -89,3 +89,16 @@ (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)))))