+ (time
+ (assert (eq :ok (handler-case
+ (progn
+ (loop repeat 50 do (stress-gc))
+ :ok)
+ (storage-condition ()
+ :oom))))))
+
+(with-test (:name :bug-981106)
+ (gc :full t)
+ (time
+ (assert (eq :ok
+ (handler-case
+ (dotimes (runs 100 :ok)
+ (let* ((n (truncate (dynamic-space-size) 1200))
+ (len (length
+ (with-output-to-string (string)
+ (dotimes (i n)
+ (write-sequence "hi there!" string))))))
+ (assert (eql len (* n (length "hi there!"))))))
+ (storage-condition ()
+ :oom))))))
+
+(with-test (:name :gc-logfile)
+ (assert (not (gc-logfile)))
+ (let ((p #p"gc.log"))
+ (assert (not (probe-file p)))
+ (assert (equal p (setf (gc-logfile) p)))
+ (gc)
+ (let ((p2 (gc-logfile)))
+ (assert (equal (truename p2) (truename p))))
+ (assert (not (setf (gc-logfile) nil)))
+ (assert (not (gc-logfile)))
+ (delete-file p)))