(ert-deftest test-print-unreadable-function ()
;; Check that problem with unwinding properly is fixed (bug#56773).
- (with-temp-buffer
- (let ((buf (current-buffer)))
- (let ((_ (readablep (make-marker)))) nil) ; this `let' silences a
- ; warning
- (should (eq buf (current-buffer))))))
+ (let* ((before nil)
+ (after nil)
+ (r (with-temp-buffer
+ (setq before (current-buffer))
+ (prog1 (readablep (make-marker))
+ (setq after (current-buffer))))))
+ (should (equal after before))
+ (should (equal r nil))))
(ert-deftest test-string-lines ()
(should (equal (string-lines "") '("")))
0)))))))))))
(ert-deftest test-print-unreadable-function-buffer ()
- (with-temp-buffer
- (let ((current (current-buffer))
- callback-buffer)
- (let ((print-unreadable-function
- (lambda (_object _escape)
- (setq callback-buffer (current-buffer)))))
- (let ((_ (prin1-to-string (make-marker)))) nil)) ; this `let' silences a
- ; warning
- (should (eq current callback-buffer)))))
+ (let* ((buffer nil)
+ (callback-buffer nil)
+ (str (with-temp-buffer
+ (setq buffer (current-buffer))
+ (let ((print-unreadable-function
+ (lambda (_object _escape)
+ (setq callback-buffer (current-buffer))
+ "tata")))
+ (prin1-to-string (make-marker))))))
+ (should (eq callback-buffer buffer))
+ (should (equal str "tata"))))
(provide 'print-tests)
;;; print-tests.el ends here