From 849b7756fd31a69791e67dfe010b1e10f0168c83 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Mattias=20Engdeg=C3=A5rd?= Date: Tue, 4 Oct 2022 16:13:12 +0200 Subject: [PATCH] Improve manual display tests of undisplayable chars (bug#58168) Test display of multibyte raw bytes, as well as undisplayable multibyte chars (C1 controls and other values). The test still assumes that raw bytes should be displayed identically to undisplayable characters (such as C1 controls) because that is how the display code currently works. * test/manual/redisplay-testsuite.el (test-redisplay-5-toggle) (test-redisplay-5): Fix likely typo (#x3fffc) of raw byte value. (test-redisplay-6): New. --- test/manual/redisplay-testsuite.el | 35 +++++++++++++++++++++++------- 1 file changed, 27 insertions(+), 8 deletions(-) diff --git a/test/manual/redisplay-testsuite.el b/test/manual/redisplay-testsuite.el index 01b0a895a42..5495146b872 100644 --- a/test/manual/redisplay-testsuite.el +++ b/test/manual/redisplay-testsuite.el @@ -305,7 +305,7 @@ static unsigned char x_bits[] = {0xff, 0x81, 0xbd, 0xa5, 0xa5, 0xbd, 0x81, 0xff (let ((label (if display-raw-bytes-as-hex "\\x80" "\\200"))) (overlay-put test-redisplay-5a-expected-overlay 'display (propertize label 'face 'escape-glyph))) - (let ((label (if display-raw-bytes-as-hex "\\x3fffc" "\\777774"))) + (let ((label (if display-raw-bytes-as-hex "\\xfc" "\\374"))) (overlay-put test-redisplay-5b-expected-overlay 'display (propertize label 'face 'escape-glyph)))) @@ -320,18 +320,36 @@ static unsigned char x_bits[] = {0xff, 0x81, 0xbd, 0xa5, 0xa5, 0xbd, 0x81, 0xff (test-insert-overlay " " 'display "\200")) (insert "\n\n") (insert " Expected: ") - ;; This tests a large codepoint, to make sure the internal buffer we - ;; use to produce the representation is large enough. - (aset printable-chars #x3fffc nil) (setq test-redisplay-5b-expected-overlay (test-insert-overlay " " 'display - (propertize "\\777774" 'face 'escape-glyph))) + (propertize "\\374" 'face 'escape-glyph))) (insert "\n Result: ") (setq test-redisplay-5b-result-overlay - (test-insert-overlay " " 'display (char-to-string #x3fffc))) + (test-insert-overlay " " 'display (char-to-string #x3ffffc))) + (insert "\n\n") + (insert-button "Toggle between octal and hex display for raw bytes" + 'action 'test-redisplay-5-toggle) + (insert "\n\n")) + +(defun test-redisplay-6 () + (insert "Test 6: Display of unprintable Unicode chars:\n\n") + (insert " Expected: ") + (test-insert-overlay " " 'display + (propertize "\\200" 'face 'escape-glyph)) + (insert " (representing U+0100)") + (insert "\n Result: ") + (test-insert-overlay " " 'display "\u0080") (insert "\n\n") - (insert-button "Toggle between octal and hex display" - 'action 'test-redisplay-5-toggle)) + ;; This tests a large codepoint, to make sure the internal buffer we + ;; use to produce the representation is large enough. + (insert " Expected: ") + (aset printable-chars #x10abcd nil) + (test-insert-overlay " " 'display + (propertize "\\4125715" 'face 'escape-glyph)) + (insert " (representing U+0010ABCD)") + (insert "\n Result: ") + (test-insert-overlay " " 'display "\U0010ABCD") + (insert "\n\n")) (defun test-redisplay () (interactive) @@ -349,6 +367,7 @@ static unsigned char x_bits[] = {0xff, 0x81, 0xbd, 0xa5, 0xa5, 0xbd, 0x81, 0xff (test-redisplay-3) (test-redisplay-4) (test-redisplay-5) + (test-redisplay-6) (goto-char (point-min)))) ;;; redisplay-testsuite.el ends here -- 2.39.2