Update image-circular-tests.el

* test/manual/image-circular-tests.el
(image-test-duplicate-keywords): Skip unless images are supported.
(image-test-circular-plist, image-test-:type-property-value): Ditto.
Wrap only failing forms in should[-error] rather than entire test
bodies.  Use simpler printed notation in place of function calls.
(image-test-circular-specs): Ditto.  Wrap overly wide docstring.
Mark as failing since shortly after its introduction (bug#36403#63).
This commit is contained in:
Basil L. Contovounesios 2022-10-03 23:34:07 +03:00
parent eeffc1f5ae
commit f5c6e628ed

View file

@ -27,8 +27,11 @@
(require 'ert)
(declare-function image-size "image.c" (spec &optional pixels frame))
(ert-deftest image-test-duplicate-keywords ()
"Test that duplicate keywords in an image spec lead to rejection."
(skip-unless (display-images-p))
(should-error (image-size `(image :type xbm :type xbm
:data-width 1 :data-height 1
:data ,(bool-vector t))
@ -36,33 +39,37 @@
(ert-deftest image-test-circular-plist ()
"Test that a circular image spec is rejected."
(should-error
(let ((l `(image :type xbm :data-width 1 :data-height 1
:data ,(bool-vector t))))
(setcdr (last l) '#1=(:invalid . #1#))
(image-size l t))))
(skip-unless (display-images-p))
(let ((spec `(image :type xbm :data-width 1 :data-height 1
:data ,(bool-vector t)
. ,'#1=(:invalid . #1#))))
(should-error (image-size spec t))))
(ert-deftest image-test-:type-property-value ()
"Test that :type is allowed as a property value in an image spec."
(skip-unless (display-images-p))
(should (equal (image-size `(image :dummy :type :type xbm
:data-width 1 :data-height 1
:data ,(bool-vector t))
t)
(cons 1 1))))
'(1 . 1))))
(ert-deftest image-test-circular-specs ()
"Test that circular image spec property values do not cause infinite recursion."
(should
(let* ((circ1 (cons :dummy nil))
(circ2 (cons :dummy nil))
(spec1 `(image :type xbm :data-width 1 :data-height 1
:data ,(bool-vector 1) :ignored ,circ1))
(spec2 `(image :type xbm :data-width 1 :data-height 1
"Test with circular image spec property values.
In particular, test that they do not cause infinite recursion."
:expected-result :failed ;; FIXME: bug#36403#63.
(skip-unless (display-images-p))
;; Two copies needed to warm up image cache.
(let* ((circ1 (list :dummy))
(circ2 (list :dummy))
(spec1 `(image :type xbm :data-width 1 :data-height 1
:data ,(bool-vector 1) :ignored ,circ1))
(spec2 `(image :type xbm :data-width 1 :data-height 1
:data ,(bool-vector 1) :ignored ,circ2)))
(setcdr circ1 circ1)
(setcdr circ2 circ2)
(and (equal (image-size spec1 t) (cons 1 1))
(equal (image-size spec2 t) (cons 1 1))))))
(setcdr circ1 circ1)
(setcdr circ2 circ2)
(should (equal (image-size spec1 t) '(1 . 1)))
(should (equal (image-size spec2 t) '(1 . 1)))))
(provide 'image-circular-tests)
;;; image-circular-tests.el ends here.