;;; buffer-tests.el --- tests for buffer.c functions -*- lexical-binding: t -*- ;; Copyright (C) 2015-2022 Free Software Foundation, Inc. ;; This file is part of GNU Emacs. ;; GNU Emacs is free software: you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by ;; the Free Software Foundation, either version 3 of the License, or ;; (at your option) any later version. ;; GNU Emacs is distributed in the hope that it will be useful, ;; but WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ;; GNU General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with GNU Emacs. If not, see . ;;; Code: (require 'ert) (require 'seq) (require 'ert-x) (require 'cl-lib) (require 'let-alist) (defun overlay-tests-start-recording-modification-hooks (overlay) "Start recording modification hooks on OVERLAY. Always overwrites the `insert-in-front-hooks', `modification-hooks' and `insert-behind-hooks' properties. Any recorded history from a previous call is erased. The history is stored in a property on the overlay itself. Call `overlay-tests-get-recorded-modification-hooks' to retrieve the recorded calls conveniently." (dolist (hooks-property '(insert-in-front-hooks modification-hooks insert-behind-hooks)) (overlay-put overlay hooks-property (list (lambda (ov &rest args) (message " %S called on %S with args %S" hooks-property ov args) (should inhibit-modification-hooks) (should (eq ov overlay)) (push (list hooks-property args) (overlay-get overlay 'recorded-modification-hook-calls))))) (overlay-put overlay 'recorded-modification-hook-calls nil))) (defun overlay-tests-get-recorded-modification-hooks (overlay) "Extract the recorded calls made to modification hooks on OVERLAY. Must be preceded by a call to `overlay-tests-start-recording-modification-hooks' on OVERLAY. Returns a list. Each element of the list represents a recorded call to a particular modification hook. Each call is itself a sub-list where the first element is a symbol matching the modification hook property (one of `insert-in-front-hooks', `modification-hooks' or `insert-behind-hooks') and the second element is the list of arguments passed to the hook. The first hook argument, the overlay itself, is omitted to make test result verification easier." (reverse (overlay-get overlay 'recorded-modification-hook-calls))) (ert-deftest overlay-modification-hooks () "Test the basic functionality of overlay modification hooks. This exercises hooks registered on the `insert-in-front-hooks', `modification-hooks' and `insert-behind-hooks' overlay properties." ;; This is a data driven test loop. Each test case is described ;; by an alist. The test loop initializes a new temporary buffer ;; for each case, creates an overlay, registers modification hooks ;; on the overlay, modifies the buffer, and then verifies which ;; modification hooks (if any) were called for the overlay, as ;; well as which arguments were passed to the hooks. ;; ;; The following keys are available in the alist: ;; ;; `buffer-text': the initial buffer text of the temporary buffer. ;; Defaults to "1234". ;; ;; `overlay-beg' and `overlay-end': the begin and end positions of ;; the overlay under test. Defaults to 2 and 4 respectively. ;; ;; `insert-at': move to the given position and insert the string ;; "x" into the test case's buffer. ;; ;; `replace': replace the first occurrence of the given string in ;; the test case's buffer with "x". The test will fail if the ;; string is not found. ;; ;; `expected-calls': a description of the expected buffer ;; modification hooks. See ;; `overlay-tests-get-recorded-modification-hooks' for the format. ;; May be omitted, in which case the test will insist that no ;; modification hooks are called. ;; ;; The test will fail itself in the degenerate case where no ;; buffer modifications are requested. (dolist (test-case '( ;; Remember that the default buffer text is "1234" and ;; the default overlay begins at position 2 and ends at ;; position 4. Most of the test cases below assume ;; this. ;; TODO: (info "(elisp) Special Properties") says this ;; about `modification-hooks': "Furthermore, insertion ;; will not modify any existing character, so this hook ;; will only be run when removing some characters, ;; replacing them with others, or changing their ;; text-properties." So, why are modification-hooks ;; being called when inserting at position 3 below? ((insert-at . 1)) ((insert-at . 2) (expected-calls . ((insert-in-front-hooks (nil 2 2)) (insert-in-front-hooks (t 2 3 0))))) ((insert-at . 3) (expected-calls . ((modification-hooks (nil 3 3)) (modification-hooks (t 3 4 0))))) ((insert-at . 4) (expected-calls . ((insert-behind-hooks (nil 4 4)) (insert-behind-hooks (t 4 5 0))))) ((insert-at . 5)) ;; Replacing text never calls `insert-in-front-hooks' ;; or `insert-behind-hooks'. It calls ;; `modification-hooks' if the overlay covers any text ;; that has changed. ((replace . "1")) ((replace . "2") (expected-calls . ((modification-hooks (nil 2 3)) (modification-hooks (t 2 3 1))))) ((replace . "3") (expected-calls . ((modification-hooks (nil 3 4)) (modification-hooks (t 3 4 1))))) ((replace . "4")) ((replace . "12") (expected-calls . ((modification-hooks (nil 1 3)) (modification-hooks (t 1 2 2))))) ((replace . "23") (expected-calls . ((modification-hooks (nil 2 4)) (modification-hooks (t 2 3 2))))) ((replace . "34") (expected-calls . ((modification-hooks (nil 3 5)) (modification-hooks (t 3 4 2))))) ((replace . "123") (expected-calls . ((modification-hooks (nil 1 4)) (modification-hooks (t 1 2 3))))) ((replace . "234") (expected-calls . ((modification-hooks (nil 2 5)) (modification-hooks (t 2 3 3))))) ((replace . "1234") (expected-calls . ((modification-hooks (nil 1 5)) (modification-hooks (t 1 2 4))))) ;; Inserting at the position of a zero-length overlay ;; calls both `insert-in-front-hooks' and ;; `insert-behind-hooks'. ((buffer-text . "") (overlay-beg . 1) (overlay-end . 1) (insert-at . 1) (expected-calls . ((insert-in-front-hooks (nil 1 1)) (insert-behind-hooks (nil 1 1)) (insert-in-front-hooks (t 1 2 0)) (insert-behind-hooks (t 1 2 0))))))) (message "BEGIN overlay-modification-hooks test-case %S" test-case) ;; All three hooks ignore the overlay's `front-advance' and ;; `rear-advance' option, so test both ways while expecting the same ;; result. (dolist (advance '(nil t)) (message " advance is %S" advance) (let-alist test-case (with-temp-buffer ;; Set up the temporary buffer and overlay as specified by ;; the test case. (insert (or .buffer-text "1234")) (let ((overlay (make-overlay (or .overlay-beg 2) (or .overlay-end 4) nil advance advance))) (message " (buffer-string) is %S" (buffer-string)) (message " overlay is %S" overlay) (overlay-tests-start-recording-modification-hooks overlay) ;; Modify the buffer, possibly inducing calls to the ;; overlay's modification hooks. (should (or .insert-at .replace)) (when .insert-at (goto-char .insert-at) (insert "x") (message " inserted \"x\" at %S, buffer-string now %S" .insert-at (buffer-string))) (when .replace (goto-char (point-min)) (search-forward .replace) (replace-match "x") (message " replaced %S with \"x\"" .replace)) ;; Verify that the expected and actual modification hook ;; calls match. (should (equal .expected-calls (overlay-tests-get-recorded-modification-hooks overlay))))))))) (ert-deftest overlay-modification-hooks-message-other-buf () "Test for bug#21824. After a modification-hook has been run and there is an overlay in the *Messages* buffer, the message coalescing [2 times] wrongly runs the modification-hook of the overlay in the 1st buffer, but with parameters from the *Messages* buffer modification." (let ((buf nil) (msg-ov nil)) (with-temp-buffer (insert "123") (overlay-put (make-overlay 1 3) 'modification-hooks (list (lambda (&rest _) (setq buf (current-buffer))))) (goto-char 2) (insert "x") (unwind-protect (progn (setq msg-ov (make-overlay 1 1 (get-buffer-create "*Messages*"))) (message "a message") (message "a message") (should (eq buf (current-buffer)))) (when msg-ov (delete-overlay msg-ov)))))) (ert-deftest overlay-modification-hooks-deleted-overlay () "Test for bug#30823." (let ((check-point nil) (ov-delete nil) (ov-set nil)) (with-temp-buffer (insert "abc") (setq ov-set (make-overlay 1 3)) (overlay-put ov-set 'modification-hooks (list (lambda (_o after &rest _args) (and after (setq check-point t))))) (setq ov-delete (make-overlay 1 3)) (overlay-put ov-delete 'modification-hooks (list (lambda (o after &rest _args) (and (not after) (delete-overlay o))))) (goto-char 2) (insert "1") (should (eq check-point t))))) (ert-deftest test-generate-new-buffer-name-bug27966 () (should-not (string-equal "nil" (progn (get-buffer-create "nil") (generate-new-buffer-name "nil"))))) (ert-deftest test-buffer-base-buffer-indirect () (with-temp-buffer (let* ((ind-buf-name (generate-new-buffer-name "indbuf")) (ind-buf (make-indirect-buffer (current-buffer) ind-buf-name))) (should (eq (buffer-base-buffer ind-buf) (current-buffer)))))) (ert-deftest test-buffer-base-buffer-non-indirect () (with-temp-buffer (should (eq (buffer-base-buffer (current-buffer)) nil)))) (ert-deftest overlay-evaporation-after-killed-buffer () (let* ((ols (with-temp-buffer (insert "toto") (list (make-overlay (point-min) (point-max)) (make-overlay (point-min) (point-max)) (make-overlay (point-min) (point-max))))) (ol (nth 1 ols))) (overlay-put ol 'evaporate t) ;; Evaporation within move-overlay of an overlay that was deleted because ;; of a kill-buffer, triggered an assertion failure in unchain_both. (with-temp-buffer (insert "toto") (move-overlay ol (point-min) (point-min))))) ;; +==========================================================================+ ;; | Overlay test setup ;; +==========================================================================+ (eval-and-compile (defun buffer-tests--make-test-name (fn x y) (intern (format "buffer-tests--%s-%s-%s" fn x y)))) (defun buffer-tests--unmake-test-name (symbol) (let ((name (if (stringp symbol) symbol (symbol-name symbol)))) (when (string-match "\\`buffer-tests--\\(.*\\)-\\(.*\\)-\\(.*\\)\\'" name) (list (match-string 1 name) (match-string 2 name) (match-string 3 name))))) (defmacro deftest-make-overlay-1 (id args) (declare (indent 1)) `(ert-deftest ,(buffer-tests--make-test-name 'make-overlay 1 id) () (with-temp-buffer (should ,(cons 'make-overlay args))))) (defmacro deftest-make-overlay-2 (id args condition) (declare (indent 1)) `(ert-deftest ,(buffer-tests--make-test-name 'make-overlay 2 id) () (with-temp-buffer (should-error ,(cons 'make-overlay args) :type ',condition :exclude-subtypes t)))) (defmacro deftest-overlay-start/end-1 (id start-end-args start-end-should) (declare (indent 1)) (cl-destructuring-bind (start end sstart send) (append start-end-args start-end-should) `(ert-deftest ,(buffer-tests--make-test-name 'overlay-start/end 1 id) () (with-temp-buffer (insert (make-string 9 ?\n)) (let ((ov (make-overlay ,start ,end))) (should (equal ,sstart (overlay-start ov))) (should (equal ,send (overlay-end ov)))))))) (defmacro deftest-overlay-buffer-1 (id arg-expr should-expr) (declare (indent 1)) `(ert-deftest ,(buffer-tests--make-test-name 'overlay-buffer 1 id) () (with-temp-buffer (should (equal (overlay-buffer (make-overlay 1 1 ,arg-expr)) ,should-expr))))) (defmacro deftest-overlayp-1 (id arg-expr should-expr) (declare (indent 1)) `(ert-deftest ,(buffer-tests--make-test-name 'overlayp 1 id) () (with-temp-buffer (should (equal ,should-expr (overlayp ,arg-expr)))))) (defmacro deftest-next-overlay-change-1 (id pos result &rest ov-tuple) `(ert-deftest ,(buffer-tests--make-test-name 'next-overlay-change 1 id) () (let ((tuple (copy-sequence ',ov-tuple))) (with-temp-buffer (insert (make-string (max 100 (if tuple (apply #'max (mapcar (lambda (m) (apply #'max m)) tuple)) 0)) ?\n)) (dolist (tup tuple) (make-overlay (car tup) (cadr tup))) (should (equal (next-overlay-change ,pos) ,result)))))) (defmacro deftest-previous-overlay-change-1 (id pos result &rest ov-tuple) `(ert-deftest ,(buffer-tests--make-test-name 'previous-overlay-change 1 id) () (let ((tuple ',ov-tuple)) (with-temp-buffer (insert (make-string (max 100 (if tuple (apply #'max (mapcar (lambda (m) (apply #'max m)) tuple)) 0)) ?\n)) (dolist (tup tuple) (make-overlay (car tup) (cadr tup))) (should (equal (previous-overlay-change ,pos) ,result)))))) (defmacro deftest-overlays-at-1 (id pos result &rest ov-triple) `(ert-deftest ,(buffer-tests--make-test-name 'overlays-at 1 id) () (let ((pos* ,pos)) (with-temp-buffer (insert (make-string 100 ?\s)) (should-not (memq nil ',result)) (dolist (v ',ov-triple) (cl-destructuring-bind (tag start end) v (overlay-put (make-overlay start end) 'tag tag))) (let ((ovl (overlays-at pos*))) (should (equal (length ovl) (length ',result))) (dolist (ov ovl) (should (memq (overlay-get ov 'tag) ',result)))))))) (defmacro deftest-overlays-in-1 (id beg end result &rest ov-triple) `(ert-deftest ,(buffer-tests--make-test-name 'overlays-in 1 id) () (let ((beg* ,beg) (end* ,end)) (with-temp-buffer (insert (make-string 100 ?\s)) (should-not (memq nil ',result)) (dolist (v ',ov-triple) (cl-destructuring-bind (tag start end) v (overlay-put (make-overlay start end) 'tag tag))) (let ((ovl (overlays-in beg* end*))) (should (equal (length ovl) (length ',result))) (dolist (ov ovl) (should (memq (overlay-get ov 'tag) ',result)))))))) (defmacro test-with-overlay-in-buffer (symbol-beg-end-fa-ra &rest body) (declare (indent 1)) (cl-destructuring-bind (symbol beg end &optional fa ra) symbol-beg-end-fa-ra `(with-temp-buffer (insert (make-string (max 1000 (1- ,end)) ?\s)) (goto-char 1) (let ((,symbol (make-overlay ,beg ,end nil ,fa ,ra))) ,@body)))) (defmacro deftest-overlays-equal-1 (id result ov1-args ov2-args) `(ert-deftest ,(buffer-tests--make-test-name 'overlays-equal 1 id) () (cl-flet ((create-overlay (args) (cl-destructuring-bind (start end &optional fa ra &rest properties) args (let ((ov (make-overlay start end nil fa ra))) (while properties (overlay-put ov (pop properties) (pop properties))) ov)))) (with-temp-buffer (insert (make-string 1024 ?\s)) (should (,(if result 'identity 'not) (equal (create-overlay ',ov1-args) (create-overlay ',ov2-args)))))))) (defun buffer-tests--find-ert-test (name) (let ((test (buffer-tests--unmake-test-name name))) (or (and test (cl-destructuring-bind (fn x y) test (let ((regexp (format "deftest-%s-%s +%s" fn x y))) (re-search-forward regexp nil t)))) (let ((find-function-regexp-alist (cl-remove #'buffer-tests--find-ert-test find-function-regexp-alist :key #'cdr))) (find-function-do-it name 'ert-deftest #'switch-to-buffer-other-window))))) (add-to-list 'find-function-regexp-alist `(ert-deftest . ,#'buffer-tests--find-ert-test)) ;; +==========================================================================+ ;; | make-overlay ;; +==========================================================================+ ;; Test if making an overlay succeeds. (deftest-make-overlay-1 A (1 1)) (deftest-make-overlay-1 B (7 26)) (deftest-make-overlay-1 C (29 7)) (deftest-make-overlay-1 D (most-positive-fixnum 1)) (deftest-make-overlay-1 E (most-negative-fixnum 1)) (deftest-make-overlay-1 F (1 most-positive-fixnum)) (deftest-make-overlay-1 G (1 most-negative-fixnum)) (deftest-make-overlay-1 H (1 1 nil t)) (deftest-make-overlay-1 I (1 1 nil nil)) (deftest-make-overlay-1 J (1 1 nil nil nil)) (deftest-make-overlay-1 K (1 1 nil nil t)) (deftest-make-overlay-1 L (1 1 nil t t)) (deftest-make-overlay-1 M (1 1 nil "yes" "yes")) ;; Test if trying to make an overlay signals conditions. (deftest-make-overlay-2 A () wrong-number-of-arguments) (deftest-make-overlay-2 B (1) wrong-number-of-arguments) (deftest-make-overlay-2 C (1 2 3 4 5 6) wrong-number-of-arguments) (deftest-make-overlay-2 D ("1") wrong-number-of-arguments) (deftest-make-overlay-2 E ("1" "2") wrong-type-argument) (deftest-make-overlay-2 F (1 2 "b") wrong-type-argument) (deftest-make-overlay-2 G (1 2 3.14) wrong-type-argument) (deftest-make-overlay-2 H (3.14 3) wrong-type-argument) (deftest-make-overlay-2 I (1 [1]) wrong-type-argument) (deftest-make-overlay-2 J (1 1 (with-temp-buffer (current-buffer))) error) ;; +==========================================================================+ ;; | overlay-start/end ;; +==========================================================================+ ;; Test if the overlays return proper positions. point-max of the ;; buffer will equal 10. ARG RESULT (deftest-overlay-start/end-1 A (1 1) (1 1)) (deftest-overlay-start/end-1 B (2 7) (2 7)) (deftest-overlay-start/end-1 C (7 2) (2 7)) (deftest-overlay-start/end-1 D (1 10) (1 10)) (deftest-overlay-start/end-1 E (1 11) (1 10)) (deftest-overlay-start/end-1 F (1 most-positive-fixnum) (1 10)) (deftest-overlay-start/end-1 G (most-positive-fixnum 1) (1 10)) (deftest-overlay-start/end-1 H (most-positive-fixnum most-positive-fixnum) (10 10)) (deftest-overlay-start/end-1 I (100 11) (10 10)) (deftest-overlay-start/end-1 J (11 100) (10 10)) (deftest-overlay-start/end-1 K (0 1) (1 1)) (deftest-overlay-start/end-1 L (1 0) (1 1)) (deftest-overlay-start/end-1 M (0 0) (1 1)) (ert-deftest test-overlay-start/end-2 () (should-not (overlay-start (with-temp-buffer (make-overlay 1 1)))) (should-not (overlay-end (with-temp-buffer (make-overlay 1 1))))) ;; +==========================================================================+ ;; | overlay-buffer ;; +==========================================================================+ ;; Test if overlay-buffer returns appropriate values. (deftest-overlay-buffer-1 A (current-buffer) (current-buffer)) (deftest-overlay-buffer-1 B nil (current-buffer)) (ert-deftest test-overlay-buffer-1-C () (should-error (make-overlay 1 1 (with-temp-buffer (current-buffer))))) ;; +==========================================================================+ ;; | overlayp ;; +==========================================================================+ ;; Check the overlay predicate. (deftest-overlayp-1 A (make-overlay 1 1) t) (deftest-overlayp-1 B (with-temp-buffer (make-overlay 1 1)) t) (deftest-overlayp-1 C nil nil) (deftest-overlayp-1 D 'symbol nil) (deftest-overlayp-1 E "string" nil) (deftest-overlayp-1 F 42 nil) (deftest-overlayp-1 G [1 2] nil) (deftest-overlayp-1 H (symbol-function 'car) nil) (deftest-overlayp-1 I float-pi nil) (deftest-overlayp-1 J (cons 1 2) nil) (deftest-overlayp-1 K (make-hash-table) nil) (deftest-overlayp-1 L (symbol-function 'ert-deftest) nil) (deftest-overlayp-1 M (current-buffer) nil) (deftest-overlayp-1 N (selected-window) nil) (deftest-overlayp-1 O (selected-frame) nil) ;; +==========================================================================+ ;; | overlay equality ;; +==========================================================================+ (deftest-overlays-equal-1 A t (1 1) (1 1)) (deftest-overlays-equal-1 B t (5 10) (5 10)) (deftest-overlays-equal-1 C nil (5 11) (5 10)) (deftest-overlays-equal-1 D t (10 20 t) (10 20)) (deftest-overlays-equal-1 E t (10 20 nil t) (10 20)) (deftest-overlays-equal-1 F t (10 20 t t) (10 20 nil t)) (deftest-overlays-equal-1 G t (10 20 t t) (10 20 t nil)) (deftest-overlays-equal-1 H t (10 20 nil nil foo 42) (10 20 nil nil foo 42)) (deftest-overlays-equal-1 I nil (10 20 nil nil foo 42) (10 20 nil nil foo 43)) ;; +==========================================================================+ ;; | overlay-lists ;; +==========================================================================+ ;; Check whether overlay-lists returns something sensible. (ert-deftest test-overlay-lists-1 () (with-temp-buffer (should (equal (cons nil nil) (overlay-lists))) (dotimes (i 10) (make-overlay 1 i)) (should (listp (car (overlay-lists)))) (should (listp (cdr (overlay-lists)))) (let ((list (append (car (overlay-lists)) (cdr (overlay-lists))))) (should (= 10 (length list))) (should (seq-every-p #'overlayp list))))) ;; +==========================================================================+ ;; | overlay-put/get/properties ;; +==========================================================================+ ;; Test if overlay-put properties can be retrieved by overlay-get and ;; overlay-properties. (ert-deftest test-overlay-props-1 () (with-temp-buffer (let* ((keys '(:k1 :k2 :k3)) (values '(1 "v2" v3)) (ov (make-overlay 1 1)) (n (length keys))) (should (equal (length keys) (length values))) (should (null (overlay-properties ov))) ;; Insert keys and values. (dotimes (i n) (should (equal (overlay-put ov (nth i keys) (nth i values)) (nth i values)))) ;; Compare with what overlay-get says. (dotimes (i n) (should (equal (overlay-get ov (nth i keys)) (nth i values)))) ;; Test if overlay-properties is a superset. (dotimes (i n) (should (equal (plist-get (overlay-properties ov) (nth i keys)) (nth i values)))) ;; Check if overlay-properties is a subset. (should (= (length (overlay-properties ov)) (* n 2)))))) ;; +==========================================================================+ ;; | next-overlay-change ;; +==========================================================================+ ;; Test if next-overlay-change returns RESULT if called with POS in a ;; buffer with overlays corresponding to OVS and point-max >= 100. ;; (POS RESULT &rest OVS) ;; 0 overlays (deftest-next-overlay-change-1 A (point-min) (point-max)) (deftest-next-overlay-change-1 B (point-max) (point-max)) ;; 1 non-empty overlay (deftest-next-overlay-change-1 C 1 10 (10 20)) (deftest-next-overlay-change-1 D 10 20 (10 20)) (deftest-next-overlay-change-1 E 15 20 (10 20)) (deftest-next-overlay-change-1 F 20 (point-max) (10 20)) (deftest-next-overlay-change-1 G 30 (point-max) (10 20)) ;; 1 empty overlay (deftest-next-overlay-change-1 H 1 10 (10 10)) (deftest-next-overlay-change-1 I 10 (point-max) (10 10)) (deftest-next-overlay-change-1 J 20 (point-max) (10 10)) ;; 2 non-empty, non-intersecting (deftest-next-overlay-change-1 D2 10 20 (20 30) (40 50)) (deftest-next-overlay-change-1 E2 35 40 (20 30) (40 50)) (deftest-next-overlay-change-1 F2 60 (point-max) (20 30) (40 50)) (deftest-next-overlay-change-1 G2 30 40 (20 30) (40 50)) (deftest-next-overlay-change-1 H2 50 (point-max) (20 30) (40 50)) ;; 2 non-empty, intersecting (deftest-next-overlay-change-1 I2 10 20 (20 30) (25 35)) (deftest-next-overlay-change-1 J2 20 25 (20 30) (25 35)) (deftest-next-overlay-change-1 K 23 25 (20 30) (25 35)) (deftest-next-overlay-change-1 L 25 30 (20 30) (25 35)) (deftest-next-overlay-change-1 M 28 30 (20 30) (25 35)) (deftest-next-overlay-change-1 N 30 35 (20 30) (25 35)) (deftest-next-overlay-change-1 O 35 (point-max) (20 30) (25 35)) (deftest-next-overlay-change-1 P 50 (point-max) (20 30) (25 35)) ;; 2 non-empty, continuous (deftest-next-overlay-change-1 Q 10 20 (20 30) (30 40)) (deftest-next-overlay-change-1 R 20 30 (20 30) (30 40)) (deftest-next-overlay-change-1 S 25 30 (20 30) (30 40)) (deftest-next-overlay-change-1 T 30 40 (20 30) (30 40)) (deftest-next-overlay-change-1 U 35 40 (20 30) (30 40)) (deftest-next-overlay-change-1 V 40 (point-max) (20 30) (30 40)) (deftest-next-overlay-change-1 W 50 (point-max) (20 30) (30 40)) ;; 1 empty, 1 non-empty, non-in (deftest-next-overlay-change-1 a 10 20 (20 20) (30 40)) (deftest-next-overlay-change-1 b 20 30 (20 30) (30 40)) (deftest-next-overlay-change-1 c 25 30 (20 30) (30 40)) (deftest-next-overlay-change-1 d 30 40 (20 30) (30 40)) (deftest-next-overlay-change-1 e 35 40 (20 30) (30 40)) (deftest-next-overlay-change-1 f 40 (point-max) (20 30) (30 40)) (deftest-next-overlay-change-1 g 50 (point-max) (20 30) (30 40)) ;; 1 empty, 1 non-empty, intersecting at begin (deftest-next-overlay-change-1 h 10 20 (20 20) (20 30)) (deftest-next-overlay-change-1 i 20 30 (20 20) (20 30)) (deftest-next-overlay-change-1 j 25 30 (20 20) (20 30)) (deftest-next-overlay-change-1 k 30 (point-max) (20 20) (20 30)) (deftest-next-overlay-change-1 l 40 (point-max) (20 20) (20 30)) ;; 1 empty, 1 non-empty, intersecting at end (deftest-next-overlay-change-1 h2 10 20 (30 30) (20 30)) (deftest-next-overlay-change-1 i2 20 30 (30 30) (20 30)) (deftest-next-overlay-change-1 j2 25 30 (30 30) (20 30)) (deftest-next-overlay-change-1 k2 30 (point-max) (20 20) (20 30)) (deftest-next-overlay-change-1 l2 40 (point-max) (20 20) (20 30)) ;; 1 empty, 1 non-empty, intersecting in the middle (deftest-next-overlay-change-1 m 10 20 (25 25) (20 30)) (deftest-next-overlay-change-1 n 20 25 (25 25) (20 30)) (deftest-next-overlay-change-1 o 25 30 (25 25) (20 30)) (deftest-next-overlay-change-1 p 30 (point-max) (25 25) (20 30)) (deftest-next-overlay-change-1 q 40 (point-max) (25 25) (20 30)) ;; 2 empty, intersecting (deftest-next-overlay-change-1 r 10 20 (20 20) (20 20)) (deftest-next-overlay-change-1 s 20 (point-max) (20 20) (20 20)) (deftest-next-overlay-change-1 t 30 (point-max) (20 20) (20 20)) ;; 2 empty, non-intersecting (deftest-next-overlay-change-1 u 10 20 (20 20) (30 30)) (deftest-next-overlay-change-1 v 20 30 (20 20) (30 30)) (deftest-next-overlay-change-1 w 25 30 (20 20) (30 30)) (deftest-next-overlay-change-1 x 30 (point-max) (20 20) (30 30)) (deftest-next-overlay-change-1 y 50 (point-max) (20 20) (30 30)) ;; 10 random (deftest-next-overlay-change-1 aa 1 5 (58 66) (41 10) (9 67) (28 88) (27 43) (24 27) (48 36) (5 90) (61 9)) (deftest-next-overlay-change-1 ab (point-max) (point-max) (58 66) (41 10) (9 67) (28 88) (27 43) (24 27) (48 36) (5 90) (61 9)) (deftest-next-overlay-change-1 ac 67 88 (58 66) (41 10) (9 67) (28 88) (27 43) (24 27) (48 36) (5 90) (61 9)) ;; +==========================================================================+ ;; | previous-overlay-change. ;; +==========================================================================+ ;; Same for previous-overlay-change. ;; 1 non-empty overlay (deftest-previous-overlay-change-1 A (point-max) 1) (deftest-previous-overlay-change-1 B 1 1) (deftest-previous-overlay-change-1 C 1 1 (10 20)) (deftest-previous-overlay-change-1 D 10 1 (10 20)) (deftest-previous-overlay-change-1 E 15 10 (10 20)) (deftest-previous-overlay-change-1 F 20 10 (10 20)) (deftest-previous-overlay-change-1 G 30 20 (10 20)) ;; 1 empty overlay (deftest-previous-overlay-change-1 H 1 1 (10 10)) (deftest-previous-overlay-change-1 I 10 1 (10 10)) (deftest-previous-overlay-change-1 J 20 10 (10 10)) ;; 2 non-empty, non-intersecting (deftest-previous-overlay-change-1 D2 10 1 (20 30) (40 50)) (deftest-previous-overlay-change-1 E2 35 30 (20 30) (40 50)) (deftest-previous-overlay-change-1 F2 60 50 (20 30) (40 50)) (deftest-previous-overlay-change-1 G2 30 20 (20 30) (40 50)) (deftest-previous-overlay-change-1 H2 50 40 (20 30) (40 50)) ;; 2 non-empty, intersecting (deftest-previous-overlay-change-1 I2 10 1 (20 30) (25 35)) (deftest-previous-overlay-change-1 J2 20 1 (20 30) (25 35)) (deftest-previous-overlay-change-1 K 23 20 (20 30) (25 35)) (deftest-previous-overlay-change-1 L 25 20 (20 30) (25 35)) (deftest-previous-overlay-change-1 M 28 25 (20 30) (25 35)) (deftest-previous-overlay-change-1 N 30 25 (20 30) (25 35)) (deftest-previous-overlay-change-1 O 35 30 (20 30) (25 35)) (deftest-previous-overlay-change-1 P 50 35 (20 30) (25 35)) ;; 2 non-empty, continuous (deftest-previous-overlay-change-1 Q 10 1 (20 30) (30 40)) (deftest-previous-overlay-change-1 R 20 1 (20 30) (30 40)) (deftest-previous-overlay-change-1 S 25 20 (20 30) (30 40)) (deftest-previous-overlay-change-1 T 30 20 (20 30) (30 40)) (deftest-previous-overlay-change-1 U 35 30 (20 30) (30 40)) (deftest-previous-overlay-change-1 V 40 30 (20 30) (30 40)) (deftest-previous-overlay-change-1 W 50 40 (20 30) (30 40)) ;; 1 empty, 1 non-empty, non-intersecting (deftest-previous-overlay-change-1 a 10 1 (20 20) (30 40)) (deftest-previous-overlay-change-1 b 20 1 (20 30) (30 40)) (deftest-previous-overlay-change-1 c 25 20 (20 30) (30 40)) (deftest-previous-overlay-change-1 d 30 20 (20 30) (30 40)) (deftest-previous-overlay-change-1 e 35 30 (20 30) (30 40)) (deftest-previous-overlay-change-1 f 40 30 (20 30) (30 40)) (deftest-previous-overlay-change-1 g 50 40 (20 30) (30 40)) ;; 1 empty, 1 non-empty, intersecting at begin (deftest-previous-overlay-change-1 h 10 1 (20 20) (20 30)) (deftest-previous-overlay-change-1 i 20 1 (20 20) (20 30)) (deftest-previous-overlay-change-1 j 25 20 (20 20) (20 30)) (deftest-previous-overlay-change-1 k 30 20 (20 20) (20 30)) (deftest-previous-overlay-change-1 l 40 30 (20 20) (20 30)) ;; 1 empty, 1 non-empty, intersecting at end (deftest-previous-overlay-change-1 m 10 1 (30 30) (20 30)) (deftest-previous-overlay-change-1 n 20 1 (30 30) (20 30)) (deftest-previous-overlay-change-1 o 25 20 (30 30) (20 30)) (deftest-previous-overlay-change-1 p 30 20 (20 20) (20 30)) (deftest-previous-overlay-change-1 q 40 30 (20 20) (20 30)) ;; 1 empty, 1 non-empty, intersecting in the middle (deftest-previous-overlay-change-1 r 10 1 (25 25) (20 30)) (deftest-previous-overlay-change-1 s 20 1 (25 25) (20 30)) (deftest-previous-overlay-change-1 t 25 20 (25 25) (20 30)) (deftest-previous-overlay-change-1 u 30 25 (25 25) (20 30)) (deftest-previous-overlay-change-1 v 40 30 (25 25) (20 30)) ;; 2 empty, intersecting (deftest-previous-overlay-change-1 w 10 1 (20 20) (20 20)) (deftest-previous-overlay-change-1 x 20 1 (20 20) (20 20)) (deftest-previous-overlay-change-1 y 30 20 (20 20) (20 20)) ;; 2 empty, non-intersecting (deftest-previous-overlay-change-1 z 10 1 (20 20) (30 30)) (deftest-previous-overlay-change-1 aa 20 1 (20 20) (30 30)) (deftest-previous-overlay-change-1 ab 25 20 (20 20) (30 30)) (deftest-previous-overlay-change-1 ac 30 20 (20 20) (30 30)) (deftest-previous-overlay-change-1 ad 50 30 (20 20) (30 30)) ;; 10 random (deftest-previous-overlay-change-1 ae 100 90 (58 66) (41 10) (9 67) (28 88) (27 43) (24 27) (48 36) (5 90) (61 9)) (deftest-previous-overlay-change-1 af (point-min) (point-min) (58 66) (41 10) (9 67) (28 88) (27 43) (24 27) (48 36) (5 90) (61 9)) (deftest-previous-overlay-change-1 ag 29 28 (58 66) (41 10) (9 67) (28 88) (27 43) (24 27) (48 36) (5 90) (61 9)) ;; +==========================================================================+ ;; | overlays-at ;; +==========================================================================+ ;; Test whether overlay-at returns RESULT at POS after overlays OVL were ;; created in a buffer. POS RES OVL (deftest-overlays-at-1 A 1 ()) ;; 1 overlay (deftest-overlays-at-1 B 10 (a) (a 10 20)) (deftest-overlays-at-1 C 15 (a) (a 10 20)) (deftest-overlays-at-1 D 19 (a) (a 10 20)) (deftest-overlays-at-1 E 20 () (a 10 20)) (deftest-overlays-at-1 F 1 () (a 10 20)) ;; 2 non-empty overlays non-intersecting (deftest-overlays-at-1 G 1 () (a 10 20) (b 30 40)) (deftest-overlays-at-1 H 10 (a) (a 10 20) (b 30 40)) (deftest-overlays-at-1 I 15 (a) (a 10 20) (b 30 40)) (deftest-overlays-at-1 K 20 () (a 10 20) (b 30 40)) (deftest-overlays-at-1 L 25 () (a 10 20) (b 30 40)) (deftest-overlays-at-1 M 30 (b) (a 10 20) (b 30 40)) (deftest-overlays-at-1 N 35 (b) (a 10 20) (b 30 40)) (deftest-overlays-at-1 O 40 () (a 10 20) (b 30 40)) (deftest-overlays-at-1 P 50 () (a 10 20) (b 30 40)) ;; 2 non-empty overlays intersecting (deftest-overlays-at-1 G2 1 () (a 10 30) (b 20 40)) (deftest-overlays-at-1 H2 10 (a) (a 10 30) (b 20 40)) (deftest-overlays-at-1 I2 15 (a) (a 10 30) (b 20 40)) (deftest-overlays-at-1 K2 20 (a b) (a 10 30) (b 20 40)) (deftest-overlays-at-1 L2 25 (a b) (a 10 30) (b 20 40)) (deftest-overlays-at-1 M2 30 (b) (a 10 30) (b 20 40)) (deftest-overlays-at-1 N2 35 (b) (a 10 30) (b 20 40)) (deftest-overlays-at-1 O2 40 () (a 10 30) (b 20 40)) (deftest-overlays-at-1 P2 50 () (a 10 30) (b 20 40)) ;; 2 non-empty overlays continuous (deftest-overlays-at-1 G3 1 () (a 10 20) (b 20 30)) (deftest-overlays-at-1 H3 10 (a) (a 10 20) (b 20 30)) (deftest-overlays-at-1 I3 15 (a) (a 10 20) (b 20 30)) (deftest-overlays-at-1 K3 20 (b) (a 10 20) (b 20 30)) (deftest-overlays-at-1 L3 25 (b) (a 10 20) (b 20 30)) (deftest-overlays-at-1 M3 30 () (a 10 20) (b 20 30)) ;; overlays-at never returns empty overlays. (deftest-overlays-at-1 N3 1 (a) (a 1 60) (c 1 1) (b 30 30) (d 50 50)) (deftest-overlays-at-1 O3 20 (a) (a 1 60) (c 1 1) (b 30 30) (d 50 50)) (deftest-overlays-at-1 P3 30 (a) (a 1 60) (c 1 1) (b 30 30) (d 50 50)) (deftest-overlays-at-1 Q 40 (a) (a 1 60) (c 1 1) (b 30 30) (d 50 50)) (deftest-overlays-at-1 R 50 (a) (a 1 60) (c 1 1) (b 30 30) (d 50 50)) (deftest-overlays-at-1 S 60 () (a 1 60) (c 1 1) (b 30 30) (d 50 50)) ;; behavior at point-min and point-max (ert-deftest test-overlays-at-2 () (cl-macrolet ((should-length (n list) `(should (= ,n (length ,list))))) (with-temp-buffer (insert (make-string 100 ?\s)) (make-overlay 1 (point-max)) (make-overlay 10 10) (make-overlay 20 20) (make-overlay (point-max) (point-max)) (should-length 1 (overlays-at 1)) (should-length 1 (overlays-at 10)) (should-length 1 (overlays-at 20)) (should-length 0 (overlays-at (point-max))) (narrow-to-region 10 20) (should-length 1 (overlays-at (point-min))) (should-length 1 (overlays-at 15)) (should-length 1 (overlays-at (point-max)))))) ;; +==========================================================================+ ;; | overlay-in ;; +==========================================================================+ ;; Test whether overlays-in returns RES in BEG,END after overlays OVL were ;; created in a buffer. (deftest-overlays-in-1 A 1 (point-max) ());;POS RES OVL ;; 1 overlay (deftest-overlays-in-1 B 1 10 () (a 10 20)) (deftest-overlays-in-1 C 5 10 () (a 10 20)) (deftest-overlays-in-1 D 5 15 (a) (a 10 20)) (deftest-overlays-in-1 E 10 15 (a) (a 10 20)) (deftest-overlays-in-1 F 10 20 (a) (a 10 20)) (deftest-overlays-in-1 G 15 20 (a) (a 10 20)) (deftest-overlays-in-1 H 15 25 (a) (a 10 20)) (deftest-overlays-in-1 I 20 25 () (a 10 20)) (deftest-overlays-in-1 J 30 50 () (a 10 20)) ;; 2 non-empty overlays non-intersecting (deftest-overlays-in-1 K 1 5 () (a 10 20) (b 30 40)) (deftest-overlays-in-1 L 5 10 () (a 10 20) (b 30 40)) (deftest-overlays-in-1 M 5 15 (a) (a 10 20) (b 30 40)) (deftest-overlays-in-1 N 10 15 (a) (a 10 20) (b 30 40)) (deftest-overlays-in-1 O 15 20 (a) (a 10 20) (b 30 40)) (deftest-overlays-in-1 P 15 25 (a) (a 10 20) (b 30 40)) (deftest-overlays-in-1 Q 20 25 () (a 10 20) (b 30 40)) (deftest-overlays-in-1 R 20 30 () (a 10 20) (b 30 40)) (deftest-overlays-in-1 S 25 30 () (a 10 20) (b 30 40)) (deftest-overlays-in-1 T 25 35 (b) (a 10 20) (b 30 40)) (deftest-overlays-in-1 U 30 35 (b) (a 10 20) (b 30 40)) (deftest-overlays-in-1 V 40 50 () (a 10 20) (b 30 40)) (deftest-overlays-in-1 W 50 60 () (a 10 20) (b 30 40)) (deftest-overlays-in-1 X 1 50 (a b) (a 10 20) (b 30 40)) (deftest-overlays-in-1 Y 10 40 (a b) (a 10 20) (b 30 40)) (deftest-overlays-in-1 Z 10 41 (a b) (a 10 20) (b 30 40)) ;; 2 non-empty overlays intersecting (deftest-overlays-in-1 a 1 5 () (a 10 30) (b 20 40)) (deftest-overlays-in-1 b 5 10 () (a 10 30) (b 20 40)) (deftest-overlays-in-1 c 5 15 (a) (a 10 30) (b 20 40)) (deftest-overlays-in-1 d 10 15 (a) (a 10 30) (b 20 40)) (deftest-overlays-in-1 e 10 20 (a) (a 10 30) (b 20 40)) (deftest-overlays-in-1 f 15 20 (a) (a 10 30) (b 20 40)) (deftest-overlays-in-1 g 20 30 (a b) (a 10 30) (b 20 40)) (deftest-overlays-in-1 h 20 40 (a b) (a 10 30) (b 20 40)) (deftest-overlays-in-1 i 25 30 (a b) (a 10 30) (b 20 40)) (deftest-overlays-in-1 j 30 30 (b) (a 10 30) (b 20 40)) (deftest-overlays-in-1 k 30 35 (b) (a 10 30) (b 20 40)) (deftest-overlays-in-1 l 35 40 (b) (a 10 30) (b 20 40)) (deftest-overlays-in-1 m 40 45 () (a 10 30) (b 20 40)) (deftest-overlays-in-1 n 41 45 () (a 10 30) (b 20 40)) (deftest-overlays-in-1 o 50 60 () (a 10 30) (b 20 40)) ;; 2 non-empty overlays continuous (deftest-overlays-in-1 p 1 5 () (a 10 20) (b 20 30)) (deftest-overlays-in-1 q 5 10 () (a 10 20) (b 20 30)) (deftest-overlays-in-1 r 15 20 (a) (a 10 20) (b 20 30)) (deftest-overlays-in-1 s 15 25 (a b) (a 10 20) (b 20 30)) (deftest-overlays-in-1 t 20 25 (b) (a 10 20) (b 20 30)) (deftest-overlays-in-1 u 25 30 (b) (a 10 20) (b 20 30)) (deftest-overlays-in-1 v 29 35 (b) (a 10 20) (b 20 30)) (deftest-overlays-in-1 w 30 35 () (a 10 20) (b 20 30)) (deftest-overlays-in-1 x 35 50 () (a 10 20) (b 20 30)) (deftest-overlays-in-1 y 1 50 (a b) (a 10 20) (b 20 30)) (deftest-overlays-in-1 z 15 50 (a b) (a 10 20) (b 20 30)) (deftest-overlays-in-1 aa 1 25 (a b) (a 10 20) (b 20 30)) ;; 1 empty overlay (deftest-overlays-in-1 ab 1 10 () (a 10 10)) (deftest-overlays-in-1 ac 10 10 (a) (a 10 10)) (deftest-overlays-in-1 ad 9 10 () (a 10 10)) (deftest-overlays-in-1 ae 9 11 (a) (a 10 10)) (deftest-overlays-in-1 af 10 11 (a) (a 10 10)) ;; behavior at point-max (ert-deftest test-overlays-in-2 () (cl-macrolet ((should-length (n list) `(should (= ,n (length ,list))))) (with-temp-buffer (insert (make-string 100 ?\s)) (make-overlay (point-max) (point-max)) (make-overlay 50 50) (should-length 1 (overlays-in 50 50)) (should-length 2 (overlays-in 1 (point-max))) (should-length 1 (overlays-in (point-max) (point-max))) (narrow-to-region 1 50) (should-length 1 (overlays-in 1 (point-max))) (should-length 1 (overlays-in (point-max) (point-max)))))) ;; +==========================================================================+ ;; | overlay-recenter ;; +==========================================================================+ ;; This function is a noop in the overlay tree branch. (ert-deftest test-overlay-recenter () (with-temp-buffer (should-not (overlay-recenter 1)) (insert (make-string 100 ?\s)) (dotimes (i 10) (make-overlay i (1+ i)) (should-not (overlay-recenter i))))) ;; +==========================================================================+ ;; | move-overlay ;; +==========================================================================+ ;; buffer nil with live overlay (ert-deftest test-move-overlay-1 () (test-with-overlay-in-buffer (ov 1 100) (move-overlay ov 50 60) (should (= 50 (overlay-start ov))) (should (= 60 (overlay-end ov))) (should (eq (current-buffer) (overlay-buffer ov))))) ;; buffer nil, dead overlay (ert-deftest test-move-overlay-2 () (with-temp-buffer (let ((ov (test-with-overlay-in-buffer (ov 1 100) ov))) (insert (make-string 100 ?\s)) (move-overlay ov 50 60) (should (= 50 (overlay-start ov))) (should (= 60 (overlay-end ov))) (should (eq (current-buffer) (overlay-buffer ov)))))) ;; buffer non-nil, live overlay (ert-deftest test-move-overlay-3 () (test-with-overlay-in-buffer (ov 10 100) (with-temp-buffer (move-overlay ov 1 1 (current-buffer)) (should (= 1 (overlay-start ov))) (should (= 1 (overlay-end ov))) (should (eq (current-buffer) (overlay-buffer ov)))) (should-not (overlay-start ov)) (should-not (overlay-end ov)) (should-not (overlay-buffer ov)))) ;; buffer non-nil, dead overlay (ert-deftest test-move-overlay-4 () (let ((ov (test-with-overlay-in-buffer (ov 1 1) ov))) (with-temp-buffer (move-overlay ov 1 1 (current-buffer)) (should (= 1 (overlay-start ov))) (should (= 1 (overlay-end ov))) (should (eq (current-buffer) (overlay-buffer ov)))) (should-not (overlay-start ov)) (should-not (overlay-end ov)) (should-not (overlay-buffer ov)))) ;; +==========================================================================+ ;; | delete-(all-)overlay ;; +==========================================================================+ ;; delete live overlay (ert-deftest test-delete-overlay-1 () (test-with-overlay-in-buffer (ov 10 100) (should (buffer-live-p (overlay-buffer ov))) (delete-overlay ov) (should-not (overlay-start ov)) (should-not (overlay-end ov)) (should-not (overlay-buffer ov)))) ;; delete dead overlay (ert-deftest test-delete-overlay-2 () (let ((ov (test-with-overlay-in-buffer (ov 10 100) ov))) (should-not (overlay-start ov)) (should-not (overlay-end ov)) (should-not (overlay-buffer ov)) (should-not (delete-overlay ov)) (should-not (overlay-start ov)) (should-not (overlay-end ov)) (should-not (overlay-buffer ov)))) (ert-deftest test-delete-all-overlay-1 () (with-temp-buffer (should-not (delete-all-overlays)) (should-not (delete-all-overlays (current-buffer))) (insert (make-string 100 ?\s)) (dotimes (i 10) (make-overlay i (1+ i))) (should-not (delete-all-overlays (current-buffer))) (should-not (delete-all-overlays)))) ;; +==========================================================================+ ;; | get-char-property(-and-overlay) ;; +==========================================================================+ ;; FIXME: TBD ;; +==========================================================================+ ;; | Moving by insertions ;; +==========================================================================+ (defmacro deftest-moving-insert-1 (id beg-end insert sbeg-send fa ra) (cl-destructuring-bind (beg end ipos ilen sbeg send fa ra) (append beg-end insert sbeg-send (list fa ra) nil) `(ert-deftest ,(buffer-tests--make-test-name 'moving-insert 1 id) () (test-with-overlay-in-buffer (ov ,beg ,end ,fa ,ra) (should (= ,beg (overlay-start ov))) (should (= ,end (overlay-end ov))) (goto-char ,ipos) (insert (make-string ,ilen ?x)) (should (= ,sbeg (overlay-start ov))) (should (= ,send (overlay-end ov))))))) ;; non-empty, no fa, no ra ;; -------------------- OV INS RESULT (deftest-moving-insert-1 A (10 20) (15 3) (10 23) nil nil) (deftest-moving-insert-1 B (10 20) (20 4) (10 20) nil nil) (deftest-moving-insert-1 C (10 20) (5 5) (15 25) nil nil) (deftest-moving-insert-1 D (10 20) (10 3) (10 23) nil nil) (deftest-moving-insert-1 E (10 20) (20 4) (10 20) nil nil) ;; non-empty no fa, ra (deftest-moving-insert-1 F (10 20) (15 3) (10 23) nil t) (deftest-moving-insert-1 G (10 20) (20 4) (10 24) nil t) (deftest-moving-insert-1 H (10 20) (5 5) (15 25) nil t) (deftest-moving-insert-1 I (10 20) (10 3) (10 23) nil t) (deftest-moving-insert-1 J (10 20) (20 4) (10 24) nil t) ;; non-empty, fa, no r (deftest-moving-insert-1 K (10 20) (15 3) (10 23) t nil) (deftest-moving-insert-1 L (10 20) (20 4) (10 20) t nil) (deftest-moving-insert-1 M (10 20) (5 5) (15 25) t nil) (deftest-moving-insert-1 N (10 20) (10 3) (13 23) t nil) (deftest-moving-insert-1 O (10 20) (20 4) (10 20) t nil) ;; This used to fail. (ert-deftest test-moving-insert-2-a () (with-temp-buffer (insert (make-string 1 ?.)) (let ((ov (make-overlay 1 1 nil t nil))) (insert "()") (should (= 1 (overlay-end ov)))))) ;; non-empty, fa, ra (deftest-moving-insert-1 P (10 20) (15 3) (10 23) t t) (deftest-moving-insert-1 Q (10 20) (20 4) (10 24) t t) (deftest-moving-insert-1 R (10 20) (5 5) (15 25) t t) (deftest-moving-insert-1 S (10 20) (10 3) (13 23) t t) (deftest-moving-insert-1 T (10 20) (20 4) (10 24) t t) ;; empty, no fa, no ra (deftest-moving-insert-1 U (15 15) (20 4) (15 15) nil nil) (deftest-moving-insert-1 V (15 15) (5 5) (20 20) nil nil) (deftest-moving-insert-1 W (15 15) (15 3) (15 15) nil nil) ;; empty no fa, ra (deftest-moving-insert-1 X (15 15) (20 4) (15 15) nil t) (deftest-moving-insert-1 Y (15 15) (5 5) (20 20) nil t) (deftest-moving-insert-1 Z (15 15) (15 3) (15 18) nil t) ;; empty, fa, no ra (deftest-moving-insert-1 a (15 15) (20 4) (15 15) t nil) (deftest-moving-insert-1 b (15 15) (5 5) (20 20) t nil) (deftest-moving-insert-1 c (15 15) (15 3) (15 15) t nil) ;; empty, fa, ra (deftest-moving-insert-1 d (15 15) (20 4) (15 15) t t) (deftest-moving-insert-1 e (15 15) (5 5) (20 20) t t) (deftest-moving-insert-1 f (15 15) (15 3) (18 18) t t) ;; Try to trigger a pathological case where the tree could become ;; unordered due to an insert operation. (ert-deftest test-moving-insert-2 () (with-temp-buffer (insert (make-string 1000 ?x)) (let ((root (make-overlay 50 75 nil nil 'rear-advance)) (left (make-overlay 25 50 nil 'front-advance 'rear-advance)) (right (make-overlay 75 100 nil nil nil))) ;; [50] <--- start ;; / \ ;; (25) (75) (delete-region 25 75) ;; [25] ;; / \ ;; (25) (25) (should (= 25 (overlay-start root))) (should (= 25 (overlay-end root))) (should (= 25 (overlay-start left))) (should (= 25 (overlay-end left))) (should (= 25 (overlay-start right))) (should (= 50 (overlay-end right))) ;; Inserting at start should make left advance while right and ;; root stay, thus we would have left > right . (goto-char 25) (insert (make-string 25 ?x)) ;; [25] ;; / \ ;; (50) (25) (should (= 25 (overlay-start root))) (should (= 50 (overlay-end root))) (should (= 50 (overlay-start left))) (should (= 50 (overlay-end left))) (should (= 25 (overlay-start right))) (should (= 75 (overlay-end right))) ;; Try to detect the error, by removing left. The should fail ;; an eassert, since it won't be found by a regular tree ;; traversal - in theory. (delete-overlay left) (should (= 2 (length (overlays-in 1 (point-max)))))))) ;; +==========================================================================+ ;; | Moving by deletions ;; +==========================================================================+ (defmacro deftest-moving-delete-1 (id beg-end delete sbeg-send fa ra) (cl-destructuring-bind (beg end dpos dlen sbeg send fa ra) (append beg-end delete sbeg-send (list fa ra) nil) `(ert-deftest ,(buffer-tests--make-test-name 'moving-delete 1 id) () (test-with-overlay-in-buffer (ov ,beg ,end ,fa ,ra) (should (= ,beg (overlay-start ov))) (should (= ,end (overlay-end ov))) (delete-region ,dpos (+ ,dpos ,dlen)) (should (= ,sbeg (overlay-start ov))) (should (= ,send (overlay-end ov))))))) ;; non-empty, no fa, no ra ;; -------------------- OV DEL RESULT (deftest-moving-delete-1 A (10 20) (15 3) (10 17) nil nil) (deftest-moving-delete-1 B (10 20) (20 4) (10 20) nil nil) (deftest-moving-delete-1 C (10 20) (5 5) (5 15) nil nil) (deftest-moving-delete-1 D (10 20) (10 3) (10 17) nil nil) (deftest-moving-delete-1 E (10 20) (20 4) (10 20) nil nil) ;; non-empty no fa, ra (deftest-moving-delete-1 F (10 20) (15 3) (10 17) nil t) (deftest-moving-delete-1 G (10 20) (20 4) (10 20) nil t) (deftest-moving-delete-1 H (10 20) (5 5) (5 15) nil t) (deftest-moving-delete-1 I (10 20) (10 3) (10 17) nil t) (deftest-moving-delete-1 J (10 20) (20 4) (10 20) nil t) ;; non-empty, fa, no ra (deftest-moving-delete-1 K (10 20) (15 3) (10 17) t nil) (deftest-moving-delete-1 L (10 20) (20 4) (10 20) t nil) (deftest-moving-delete-1 M (10 20) (5 5) (5 15) t nil) (deftest-moving-delete-1 N (10 20) (10 3) (10 17) t nil) (deftest-moving-delete-1 O (10 20) (20 4) (10 20) t nil) ;; non-empty, fa, ra (deftest-moving-delete-1 P (10 20) (15 3) (10 17) t t) (deftest-moving-delete-1 Q (10 20) (20 4) (10 20) t t) (deftest-moving-delete-1 R (10 20) (5 5) (5 15) t t) (deftest-moving-delete-1 S (10 20) (10 3) (10 17) t t) (deftest-moving-delete-1 T (10 20) (20 4) (10 20) t t) ;; empty, no fa, no ra (deftest-moving-delete-1 U (15 15) (20 4) (15 15) nil nil) (deftest-moving-delete-1 V (15 15) (5 5) (10 10) nil nil) (deftest-moving-delete-1 W (15 15) (15 3) (15 15) nil nil) ;; empty no fa, ra (deftest-moving-delete-1 X (15 15) (20 4) (15 15) nil t) (deftest-moving-delete-1 Y (15 15) (5 5) (10 10) nil t) (deftest-moving-delete-1 Z (15 15) (15 3) (15 15) nil t) ;; empty, fa, no ra (deftest-moving-delete-1 a (15 15) (20 4) (15 15) t nil) (deftest-moving-delete-1 b (15 15) (5 5) (10 10) t nil) (deftest-moving-delete-1 c (15 15) (15 3) (15 15) t nil) ;; empty, fa, ra (deftest-moving-delete-1 d (15 15) (20 4) (15 15) t t) (deftest-moving-delete-1 e (15 15) (5 5) (10 10) t t) (deftest-moving-delete-1 f (15 15) (15 3) (15 15) t t) ;; +==========================================================================+ ;; | make-indirect-buffer ;; +==========================================================================+ ;; Check if overlays are cloned/separate from indirect buffer. (ert-deftest test-make-indirect-buffer-1 () (with-temp-buffer (dotimes (_ 10) (make-overlay 1 1)) (let (indirect clone) (unwind-protect (progn (setq indirect (make-indirect-buffer (current-buffer) "indirect")) (with-current-buffer indirect (should-not (overlays-in (point-min) (point-max))) (dotimes (_ 20) (make-overlay 1 1)) (should (= 20 (length (overlays-in (point-min) (point-max))))) (delete-all-overlays) (should-not (overlays-in (point-min) (point-max)))) (should (= 10 (length (overlays-in (point-min) (point-max))))) (setq clone (make-indirect-buffer (current-buffer) "clone" 'clone)) (with-current-buffer clone (should (= 10 (length (overlays-in (point-min) (point-max))))) (dotimes (_ 30) (make-overlay 1 1)) (should (= 40 (length (overlays-in (point-min) (point-max)))))) ;; back in temp buffer (should (= 10 (length (overlays-in (point-min) (point-max))))) (with-current-buffer clone (mapc #'delete-overlay (seq-take (overlays-in (point-min) (point-max)) 10)) (should (= 30 (length (overlays-in (point-min) (point-max)))))) (should (= 10 (length (overlays-in (point-min) (point-max))))) (delete-all-overlays) (with-current-buffer clone (should (= 30 (length (overlays-in (point-min) (point-max))))))) (when (buffer-live-p clone) (kill-buffer clone)) (when (buffer-live-p indirect) (kill-buffer indirect)))))) ;; +==========================================================================+ ;; | buffer-swap-text ;; +==========================================================================+ (defmacro buffer-tests--with-temp-buffers (vars &rest body) (declare (indent 1) (debug (sexp &rest form))) (if (null vars) `(progn ,@body) `(with-temp-buffer (let ((,(car vars) (current-buffer))) (buffer-tests--with-temp-buffers ,(cdr vars) ,@body))))) ;; basic (ert-deftest test-buffer-swap-text-1 () (buffer-tests--with-temp-buffers (buffer other) (with-current-buffer buffer (let ((ov (make-overlay 1 1))) (buffer-swap-text other) (should-not (overlays-in 1 1)) (with-current-buffer other (should (overlays-in 1 1)) (should (eq ov (car (overlays-in 1 1))))))))) ;; properties (ert-deftest test-buffer-swap-text-2 () (buffer-tests--with-temp-buffers (buffer other) (with-current-buffer other (overlay-put (make-overlay 1 1) 'buffer 'other)) (with-current-buffer buffer (overlay-put (make-overlay 1 1) 'buffer 'buffer) (buffer-swap-text other) (should (= 1 (length (overlays-in 1 1)))) (should (eq (overlay-get (car (overlays-in 1 1)) 'buffer) 'other))) (with-current-buffer other (should (= 1 (length (overlays-in 1 1)))) (should (eq (overlay-get (car (overlays-in 1 1)) 'buffer) 'buffer))))) ;; +==========================================================================+ ;; | priorities ;; +==========================================================================+ (ert-deftest test-overlay-priorities-1 () (with-temp-buffer (insert " ") (dotimes (i 10) (let ((ov (make-overlay 1 2))) (overlay-put ov 'priority i) (overlay-put ov 'value i))) (should (eq 9 (get-char-property 1 'value))))) (ert-deftest test-overlay-priorities-2 () (with-temp-buffer (insert " ") (dotimes (j 10) (let* ((i (- 9 j)) (ov (make-overlay 1 2))) (overlay-put ov 'priority i) (overlay-put ov 'value i))) (should (eq 9 (get-char-property 1 'value))))) ;; +==========================================================================+ ;; | Other ;; +==========================================================================+ (defun test-overlay-regions () (sort (mapcar (lambda (ov) (cons (overlay-start ov) (overlay-end ov))) (overlays-in (point-min) (point-max))) (lambda (o1 o2) (or (< (car o1) (car o2)) (and (= (car o1) (car o2)) (< (cdr o1) (cdr o2))))))) ;; This test used to fail. (ert-deftest overlay-complex-delete-with-offset () (with-temp-buffer (let (todelete) (insert (make-string 1000 ?\s)) (make-overlay 1 2 nil t nil) (make-overlay 2 3 nil t nil) (make-overlay 3 4 nil t nil) (make-overlay 4 5 nil t nil) (setq todelete (make-overlay 280 287 nil t nil)) (make-overlay 265 275 nil t nil) (make-overlay 329 386 nil t nil) (make-overlay 386 390 nil t nil) (goto-char 50) (delete-char 50) (goto-char 1) (delete-char 2) (delete-overlay todelete) (should (equal (test-overlay-regions) '((1 . 1) (1 . 1) (1 . 2) (2 . 3) (213 . 223) (277 . 334) (334 . 338))))))) ;; This test used to fail. (ert-deftest overlay-complex-insert-1 () (with-temp-buffer (insert " ") (make-overlay 8 11 nil nil t) (make-overlay 2 7 nil nil nil) (make-overlay 2 4 nil t nil) (goto-char 1) (insert " ") (should (equal (test-overlay-regions) '((7 . 9) (7 . 12) (13 . 16)))))) ;; This test used to fail. (ert-deftest overlay-complex-insert-2 () (with-temp-buffer (insert (make-string 100 ?\s)) (make-overlay 77 7 nil nil t) (make-overlay 21 53 nil t t) (make-overlay 84 14 nil nil nil) (make-overlay 38 69 nil t nil) (make-overlay 93 15 nil nil t) (make-overlay 73 48 nil t t) (make-overlay 96 51 nil t t) (make-overlay 6 43 nil t t) (make-overlay 15 100 nil t t) (make-overlay 22 17 nil nil nil) (make-overlay 72 45 nil t nil) (make-overlay 2 74 nil nil t) (make-overlay 15 29 nil t t) (make-overlay 17 34 nil t t) (make-overlay 101 66 nil t nil) (make-overlay 94 24 nil nil nil) (goto-char 78) (insert " ") (narrow-to-region 47 19) (goto-char 46) (widen) (narrow-to-region 13 3) (goto-char 9) (delete-char 0) (goto-char 11) (insert " ") (goto-char 3) (insert " ") (goto-char 8) (insert " ") (goto-char 26) (insert " ") (goto-char 14) (widen) (narrow-to-region 71 35) (should (equal (test-overlay-regions) '((2 . 104) (23 . 73) (24 . 107) (44 . 125) (45 . 59) (45 . 134) (45 . 141) (47 . 52) (47 . 64) (51 . 83) (54 . 135) (68 . 99)))))) (ert-deftest test-overlay-multibyte-transition-1 () (with-temp-buffer (set-buffer-multibyte t) (insert "ääää") ;; aeaeaeae ;; 1 2 3 4 5 ;; 123456789 (let ((nonempty-bob (make-overlay 1 2)) (empty-bob (make-overlay 1 1)) (empty (make-overlay 2 2)) (nonempty (make-overlay 2 4)) (nonempty-eob (make-overlay 4 5)) (empty-eob (make-overlay 5 5))) (set-buffer-multibyte nil) (cl-macrolet ((ovshould (ov begin end) `(should (equal (list (overlay-start ,ov) (overlay-end ,ov)) (list ,begin ,end))))) (ovshould nonempty-bob 1 3) (ovshould empty-bob 1 1) (ovshould empty 3 3) (ovshould nonempty 3 7) (ovshould nonempty-eob 7 9) (ovshould empty-eob 9 9))))) (ert-deftest test-overlay-multibyte-transition-2 () (with-temp-buffer (set-buffer-multibyte t) (insert "ääää") (set-buffer-multibyte nil) ;; aeaeaeae ;; 1 2 3 4 5 ;; 123456789 (let ((nonempty-bob-end (make-overlay 1 2)) (nonempty-bob-beg (make-overlay 1 3)) (empty-bob (make-overlay 1 1)) (empty-beg (make-overlay 3 3)) (empty-end (make-overlay 2 2)) (nonempty-beg-beg (make-overlay 3 7)) (nonempty-beg-end (make-overlay 3 8)) (nonempty-end-beg (make-overlay 4 7)) (nonempty-end-end (make-overlay 4 8)) (nonempty-eob-beg (make-overlay 5 9)) (nonempty-eob-end (make-overlay 6 9)) (empty-eob (make-overlay 9 9))) (set-buffer-multibyte t) (cl-macrolet ((ovshould (ov begin end) `(should (equal (list (overlay-start ,ov) (overlay-end ,ov)) (list ,begin ,end))))) (ovshould nonempty-bob-end 1 2) (ovshould nonempty-bob-beg 1 2) (ovshould empty-bob 1 1) (ovshould empty-beg 2 2) (ovshould empty-end 2 2) (ovshould nonempty-beg-beg 2 4) (ovshould nonempty-beg-end 2 5) (ovshould nonempty-end-beg 3 4) (ovshould nonempty-end-end 3 5) (ovshould nonempty-eob-beg 3 5) (ovshould nonempty-eob-end 4 5) (ovshould empty-eob 5 5))))) ;; +===================================================================================+ ;; | Autogenerated insert/delete/narrow tests ;; +===================================================================================+ (when nil ;; Let's comment these out for now. ;; (defun test-overlay-generate-test (name) ;; (interactive) ;; (with-temp-buffer ;; (let ((forms nil) ;; (buffer-size 64) ;; (noverlays 16) ;; (nforms 32) ;; (dist '(0.5 0.4 0.1))) ;; (cl-labels ((brand () ;; (+ (point-min) ;; (random (1+ (- (point-max) (point-min))))))) ;; (cl-macrolet ((push-eval (form) ;; `(cl-destructuring-bind (&rest args) ;; (list ,@(cdr form)) ;; (push (cons ',(car form) args) forms) ;; (apply #',(car form) args)))) ;; (push-eval (insert (make-string buffer-size ?.))) ;; (dotimes (_ noverlays) ;; (push-eval (make-overlay (brand) (brand) ;; nil ;; (= 0 (random 2)) ;; (= 0 (random 2))))) ;; (dotimes (_ nforms) ;; (push-eval (goto-char (brand))) ;; (pcase (/ (random 100) 100.0) ;; ((and x (guard (< x (nth 0 dist)))) ;; (push-eval (insert (make-string (random 16) ?.)))) ;; ((and x (guard (< x (+ (nth 0 dist) (nth 1 dist))))) ;; (push-eval (delete-char (random (1+ (- (point-max) (point))))))) ;; (_ ;; (push-eval (widen)) ;; (push-eval (narrow-to-region (brand) (brand)))))) ;; `(ert-deftest ,name () ;; (with-temp-buffer ;; ,@(nreverse forms) ;; (should (equal (test-overlay-regions) ;; ',(test-overlay-regions)))))))))) ;; (defun test-overlay-generate-tests (n) ;; (let ((namefmt "overlay-autogenerated-test-%d") ;; (standard-output (current-buffer)) ;; (print-length nil) ;; (print-level nil) ;; (print-quoted t)) ;; (dotimes (i n) ;; (pp (test-overlay-generate-test (intern (format namefmt i)))) ;; (terpri)))) ;; (progn (random "4711") (test-overlay-generate-tests 64)) (ert-deftest overlay-autogenerated-test-0 nil (with-temp-buffer (insert "................................................................") (make-overlay 63 7 nil t t) (make-overlay 47 9 nil nil nil) (make-overlay 50 43 nil nil nil) (make-overlay 20 53 nil nil t) (make-overlay 62 4 nil nil t) (make-overlay 40 27 nil t t) (make-overlay 58 44 nil t t) (make-overlay 46 38 nil nil nil) (make-overlay 51 28 nil t nil) (make-overlay 12 53 nil t t) (make-overlay 52 60 nil nil nil) (make-overlay 13 47 nil nil nil) (make-overlay 16 31 nil nil nil) (make-overlay 9 48 nil t t) (make-overlay 43 29 nil nil t) (make-overlay 48 13 nil t nil) (goto-char 44) (delete-char 15) (goto-char 19) (widen) (narrow-to-region 20 8) (goto-char 9) (delete-char 3) (goto-char 16) (insert "..............") (goto-char 12) (delete-char 15) (goto-char 12) (delete-char 4) (goto-char 12) (delete-char 0) (goto-char 12) (insert "......") (goto-char 13) (delete-char 5) (goto-char 8) (insert "...") (goto-char 10) (insert ".............") (goto-char 14) (insert ".......") (goto-char 25) (delete-char 4) (goto-char 26) (insert "...............") (goto-char 27) (insert "...") (goto-char 29) (delete-char 7) (goto-char 24) (insert "...") (goto-char 30) (insert "..........") (goto-char 29) (widen) (narrow-to-region 34 41) (goto-char 40) (delete-char 0) (goto-char 35) (delete-char 4) (goto-char 36) (widen) (narrow-to-region 80 66) (goto-char 74) (delete-char 5) (goto-char 69) (delete-char 5) (goto-char 70) (widen) (narrow-to-region 50 71) (goto-char 66) (insert "...............") (goto-char 54) (insert "...............") (goto-char 84) (insert "....") (goto-char 72) (insert "...........") (goto-char 84) (insert "..........") (goto-char 102) (insert "") (goto-char 80) (delete-char 25) (should (equal (test-overlay-regions) '((4 . 99) (7 . 100) (48 . 99) (48 . 99) (48 . 99) (49 . 99) (49 . 99) (51 . 80) (51 . 99) (80 . 99) (80 . 99) (80 . 99) (99 . 99) (99 . 99) (99 . 99) (99 . 99)))))) (ert-deftest overlay-autogenerated-test-1 nil (with-temp-buffer (insert "................................................................") (make-overlay 17 27 nil nil nil) (make-overlay 13 28 nil nil t) (make-overlay 8 56 nil nil nil) (make-overlay 34 64 nil nil nil) (make-overlay 51 4 nil t t) (make-overlay 1 19 nil nil nil) (make-overlay 53 59 nil nil t) (make-overlay 25 13 nil nil nil) (make-overlay 19 28 nil t nil) (make-overlay 33 23 nil t nil) (make-overlay 10 46 nil t t) (make-overlay 18 39 nil nil nil) (make-overlay 1 49 nil t nil) (make-overlay 57 21 nil t t) (make-overlay 10 58 nil t t) (make-overlay 39 49 nil nil t) (goto-char 37) (delete-char 9) (goto-char 3) (insert "......") (goto-char 38) (delete-char 14) (goto-char 18) (insert "..........") (goto-char 53) (insert "....") (goto-char 49) (delete-char 10) (goto-char 11) (delete-char 12) (goto-char 17) (delete-char 22) (goto-char 8) (insert ".") (goto-char 16) (insert "........") (goto-char 16) (delete-char 5) (goto-char 11) (delete-char 0) (goto-char 22) (insert ".......") (goto-char 18) (delete-char 11) (goto-char 16) (delete-char 0) (goto-char 9) (insert "...........") (goto-char 7) (insert "...............") (goto-char 2) (insert ".......") (goto-char 21) (delete-char 11) (goto-char 13) (insert "..............") (goto-char 17) (delete-char 3) (goto-char 21) (insert "......") (goto-char 15) (delete-char 32) (goto-char 10) (insert "........") (goto-char 25) (widen) (narrow-to-region 15 20) (goto-char 17) (insert ".............") (goto-char 22) (insert "............") (goto-char 21) (delete-char 8) (goto-char 36) (delete-char 1) (goto-char 32) (delete-char 2) (goto-char 21) (insert ".....") (goto-char 31) (insert "......") (should (equal (test-overlay-regions) '((1 . 58) (1 . 58)))))) (ert-deftest overlay-autogenerated-test-2 nil (with-temp-buffer (insert "................................................................") (make-overlay 15 59 nil t t) (make-overlay 56 16 nil nil nil) (make-overlay 65 51 nil t nil) (make-overlay 14 24 nil t nil) (make-overlay 28 9 nil t nil) (make-overlay 58 50 nil t t) (make-overlay 13 32 nil t t) (make-overlay 12 21 nil t nil) (make-overlay 60 23 nil t nil) (make-overlay 39 38 nil nil t) (make-overlay 15 64 nil t nil) (make-overlay 17 21 nil nil t) (make-overlay 46 23 nil t t) (make-overlay 19 40 nil t nil) (make-overlay 13 48 nil nil t) (make-overlay 35 11 nil t nil) (goto-char 41) (delete-char 19) (goto-char 45) (insert "......") (goto-char 3) (delete-char 32) (goto-char 19) (insert "") (goto-char 16) (insert "...............") (goto-char 2) (insert "") (goto-char 30) (delete-char 0) (goto-char 18) (delete-char 17) (goto-char 2) (insert "...............") (goto-char 12) (insert "...") (goto-char 2) (insert ".............") (goto-char 16) (insert ".......") (goto-char 15) (insert ".......") (goto-char 43) (insert "......") (goto-char 22) (insert ".........") (goto-char 25) (delete-char 1) (goto-char 38) (insert "...............") (goto-char 76) (delete-char 3) (goto-char 12) (delete-char 5) (goto-char 70) (delete-char 9) (goto-char 36) (delete-char 4) (goto-char 18) (insert "...............") (goto-char 52) (delete-char 14) (goto-char 23) (insert "..........") (goto-char 64) (insert "...........") (goto-char 68) (delete-char 21) (goto-char 71) (insert "........") (goto-char 28) (delete-char 43) (goto-char 25) (insert "....") (goto-char 2) (insert "...............") (goto-char 40) (insert "....") (goto-char 56) (delete-char 2) (should (equal (test-overlay-regions) '((51 . 51) (51 . 51) (51 . 51) (51 . 51) (51 . 51) (51 . 51) (51 . 51) (51 . 51) (51 . 51) (51 . 51) (51 . 51) (51 . 51) (51 . 51) (51 . 51) (51 . 51) (51 . 58)))))) (ert-deftest overlay-autogenerated-test-3 nil (with-temp-buffer (insert "................................................................") (make-overlay 53 38 nil t nil) (make-overlay 17 40 nil t t) (make-overlay 64 26 nil t t) (make-overlay 48 24 nil t nil) (make-overlay 21 18 nil nil nil) (make-overlay 2 20 nil nil t) (make-overlay 43 26 nil t t) (make-overlay 56 28 nil t nil) (make-overlay 19 51 nil nil nil) (make-overlay 39 61 nil t nil) (make-overlay 59 12 nil t nil) (make-overlay 65 7 nil t nil) (make-overlay 41 7 nil t nil) (make-overlay 62 50 nil t nil) (make-overlay 7 10 nil t t) (make-overlay 45 28 nil t nil) (goto-char 13) (insert "...") (goto-char 37) (widen) (narrow-to-region 2 10) (goto-char 8) (delete-char 1) (goto-char 3) (delete-char 6) (goto-char 2) (insert "...........") (goto-char 5) (widen) (narrow-to-region 55 70) (goto-char 55) (insert "......") (goto-char 64) (delete-char 12) (goto-char 61) (insert ".....") (goto-char 64) (insert "..............") (goto-char 72) (delete-char 6) (goto-char 63) (delete-char 12) (goto-char 63) (delete-char 2) (goto-char 57) (insert "..............") (goto-char 68) (insert "........") (goto-char 77) (delete-char 6) (goto-char 77) (insert ".............") (goto-char 67) (delete-char 0) (goto-char 84) (insert "........") (goto-char 74) (delete-char 12) (goto-char 78) (insert "...") (goto-char 80) (insert "............") (goto-char 69) (insert "......") (goto-char 89) (insert ".") (goto-char 56) (insert "....") (goto-char 100) (insert ".............") (goto-char 114) (delete-char 0) (goto-char 61) (widen) (narrow-to-region 94 50) (goto-char 55) (insert "............") (goto-char 53) (insert ".............") (goto-char 116) (delete-char 3) (goto-char 81) (insert "...............") (should (equal (test-overlay-regions) '((14 . 166) (16 . 164) (26 . 164) (31 . 68) (33 . 165) (35 . 52) (35 . 164) (45 . 164) (46 . 164)))))) (ert-deftest overlay-autogenerated-test-4 nil (with-temp-buffer (insert "................................................................") (make-overlay 25 15 nil nil t) (make-overlay 8 13 nil nil nil) (make-overlay 45 49 nil t t) (make-overlay 22 13 nil t t) (make-overlay 34 17 nil nil t) (make-overlay 42 15 nil nil t) (make-overlay 43 28 nil t t) (make-overlay 3 28 nil t nil) (make-overlay 32 61 nil nil t) (make-overlay 30 64 nil t t) (make-overlay 21 39 nil nil t) (make-overlay 32 62 nil t nil) (make-overlay 25 29 nil t nil) (make-overlay 34 43 nil t nil) (make-overlay 9 11 nil t nil) (make-overlay 21 65 nil nil t) (goto-char 21) (delete-char 4) (goto-char 25) (insert "..") (goto-char 53) (insert "..") (goto-char 2) (insert "...............") (goto-char 42) (delete-char 36) (goto-char 23) (delete-char 12) (goto-char 22) (widen) (narrow-to-region 30 32) (goto-char 30) (delete-char 0) (goto-char 31) (delete-char 1) (goto-char 31) (widen) (narrow-to-region 28 27) (goto-char 27) (delete-char 1) (goto-char 27) (delete-char 0) (goto-char 27) (delete-char 0) (goto-char 27) (insert ".") (goto-char 28) (insert "......") (goto-char 34) (delete-char 0) (goto-char 27) (delete-char 5) (goto-char 27) (delete-char 1) (goto-char 27) (insert ".............") (goto-char 30) (insert "..............") (goto-char 37) (delete-char 15) (goto-char 32) (delete-char 2) (goto-char 36) (delete-char 1) (goto-char 34) (delete-char 0) (goto-char 34) (delete-char 1) (goto-char 32) (widen) (narrow-to-region 24 19) (goto-char 21) (delete-char 1) (goto-char 21) (widen) (narrow-to-region 11 38) (goto-char 27) (widen) (narrow-to-region 20 22) (goto-char 20) (delete-char 1) (goto-char 20) (widen) (narrow-to-region 36 4) (goto-char 26) (delete-char 9) (should (equal (test-overlay-regions) '((18 . 25) (21 . 21) (21 . 21) (21 . 22) (21 . 22) (21 . 27) (21 . 27) (22 . 25) (22 . 27) (22 . 28) (26 . 27)))))) (ert-deftest overlay-autogenerated-test-5 nil (with-temp-buffer (insert "................................................................") (make-overlay 64 1 nil nil nil) (make-overlay 38 43 nil nil nil) (make-overlay 42 19 nil t nil) (make-overlay 22 12 nil nil nil) (make-overlay 12 30 nil t t) (make-overlay 38 46 nil nil nil) (make-overlay 18 23 nil nil nil) (make-overlay 58 65 nil nil t) (make-overlay 52 41 nil nil nil) (make-overlay 12 26 nil nil nil) (make-overlay 39 4 nil nil nil) (make-overlay 20 1 nil nil t) (make-overlay 36 60 nil nil nil) (make-overlay 24 18 nil t nil) (make-overlay 9 50 nil nil nil) (make-overlay 19 17 nil t nil) (goto-char 40) (insert "") (goto-char 64) (insert ".............") (goto-char 32) (delete-char 40) (goto-char 25) (insert "...") (goto-char 31) (delete-char 1) (goto-char 8) (delete-char 14) (goto-char 20) (delete-char 5) (goto-char 20) (insert "...........") (goto-char 20) (insert ".........") (goto-char 17) (widen) (narrow-to-region 11 21) (goto-char 14) (widen) (narrow-to-region 9 24) (goto-char 24) (insert ".............") (goto-char 30) (widen) (narrow-to-region 47 45) (goto-char 47) (insert ".") (goto-char 46) (widen) (narrow-to-region 30 42) (goto-char 32) (delete-char 0) (goto-char 34) (insert ".......") (goto-char 42) (delete-char 4) (goto-char 39) (delete-char 6) (goto-char 31) (delete-char 6) (goto-char 31) (insert "............") (goto-char 30) (insert "......") (goto-char 50) (delete-char 0) (goto-char 30) (insert "....") (goto-char 53) (insert "............") (goto-char 41) (delete-char 12) (goto-char 52) (insert ".......") (goto-char 56) (insert "...........") (goto-char 68) (insert ".......") (goto-char 52) (insert "......") (goto-char 71) (delete-char 10) (goto-char 47) (insert "") (should (equal (test-overlay-regions) '((20 . 89)))))) (ert-deftest overlay-autogenerated-test-6 nil (with-temp-buffer (insert "................................................................") (make-overlay 28 59 nil nil nil) (make-overlay 36 21 nil t t) (make-overlay 60 19 nil t nil) (make-overlay 26 30 nil t nil) (make-overlay 47 27 nil nil t) (make-overlay 8 25 nil t t) (make-overlay 57 43 nil t t) (make-overlay 28 61 nil nil t) (make-overlay 42 31 nil nil t) (make-overlay 15 44 nil t nil) (make-overlay 56 38 nil nil nil) (make-overlay 39 44 nil nil t) (make-overlay 50 6 nil t nil) (make-overlay 6 19 nil t nil) (make-overlay 50 44 nil t t) (make-overlay 34 60 nil nil t) (goto-char 27) (insert "...............") (goto-char 23) (insert "..............") (goto-char 50) (widen) (narrow-to-region 53 67) (goto-char 60) (delete-char 0) (goto-char 54) (insert "......") (goto-char 64) (delete-char 1) (goto-char 66) (delete-char 3) (goto-char 58) (insert ".............") (goto-char 58) (insert ".........") (goto-char 76) (insert "...........") (goto-char 57) (insert "....") (goto-char 106) (widen) (narrow-to-region 5 45) (goto-char 31) (delete-char 8) (goto-char 36) (insert "...") (goto-char 6) (insert "........") (goto-char 33) (insert ".............") (goto-char 38) (delete-char 3) (goto-char 28) (delete-char 6) (goto-char 42) (widen) (narrow-to-region 17 25) (goto-char 19) (insert "..............") (goto-char 37) (delete-char 1) (goto-char 22) (delete-char 9) (goto-char 28) (insert "..............") (goto-char 37) (delete-char 3) (goto-char 18) (insert "...............") (goto-char 30) (widen) (narrow-to-region 68 25) (goto-char 38) (delete-char 22) (goto-char 43) (widen) (narrow-to-region 47 96) (goto-char 86) (insert ".") (goto-char 63) (insert "......") (goto-char 78) (widen) (narrow-to-region 61 27) (goto-char 43) (delete-char 8) (should (equal (test-overlay-regions) '((14 . 38) (14 . 132) (16 . 43) (38 . 118) (38 . 126) (38 . 142) (44 . 115) (45 . 129)))))) (ert-deftest overlay-autogenerated-test-7 nil (with-temp-buffer (insert "................................................................") (make-overlay 13 50 nil t nil) (make-overlay 28 44 nil nil t) (make-overlay 56 27 nil t nil) (make-overlay 8 34 nil nil nil) (make-overlay 22 8 nil nil t) (make-overlay 8 28 nil t nil) (make-overlay 65 31 nil nil t) (make-overlay 44 8 nil nil nil) (make-overlay 52 64 nil nil t) (make-overlay 52 27 nil t t) (make-overlay 47 32 nil nil nil) (make-overlay 18 62 nil nil nil) (make-overlay 18 24 nil t t) (make-overlay 33 46 nil nil t) (make-overlay 20 8 nil t nil) (make-overlay 51 51 nil t nil) (goto-char 2) (delete-char 46) (goto-char 12) (delete-char 5) (goto-char 2) (delete-char 12) (goto-char 2) (insert "..") (goto-char 2) (widen) (narrow-to-region 2 4) (goto-char 4) (insert "......") (goto-char 4) (widen) (narrow-to-region 4 6) (goto-char 5) (insert "") (goto-char 6) (insert "...............") (goto-char 9) (insert "...") (goto-char 7) (delete-char 13) (goto-char 8) (delete-char 1) (goto-char 9) (insert "...............") (goto-char 24) (delete-char 1) (goto-char 15) (insert "...............") (goto-char 16) (insert "............") (goto-char 17) (delete-char 8) (goto-char 36) (widen) (narrow-to-region 47 38) (goto-char 43) (delete-char 0) (goto-char 46) (delete-char 0) (goto-char 40) (delete-char 4) (goto-char 39) (insert ".......") (goto-char 50) (delete-char 0) (goto-char 47) (insert "...........") (goto-char 45) (insert ".....") (goto-char 38) (delete-char 3) (goto-char 59) (delete-char 1) (goto-char 42) (insert "...............") (goto-char 65) (insert "...........") (goto-char 73) (delete-char 13) (goto-char 72) (insert "....") (goto-char 47) (insert "..") (should (equal (test-overlay-regions) '((2 . 81) (2 . 81) (2 . 81) (2 . 81) (2 . 81) (81 . 81) (81 . 81)))))) (ert-deftest overlay-autogenerated-test-8 nil (with-temp-buffer (insert "................................................................") (make-overlay 20 6 nil t nil) (make-overlay 48 13 nil t nil) (make-overlay 58 65 nil nil t) (make-overlay 63 65 nil nil nil) (make-overlay 42 40 nil t t) (make-overlay 40 6 nil nil t) (make-overlay 37 46 nil t nil) (make-overlay 4 14 nil nil nil) (make-overlay 58 44 nil t t) (make-overlay 14 16 nil nil t) (make-overlay 31 61 nil t nil) (make-overlay 34 3 nil nil nil) (make-overlay 11 16 nil t nil) (make-overlay 19 42 nil nil t) (make-overlay 30 9 nil nil t) (make-overlay 63 52 nil t t) (goto-char 57) (delete-char 2) (goto-char 8) (insert "........") (goto-char 30) (insert "...........") (goto-char 35) (insert "...........") (goto-char 66) (insert "...............") (goto-char 53) (delete-char 15) (goto-char 75) (delete-char 10) (goto-char 62) (delete-char 21) (goto-char 52) (delete-char 10) (goto-char 10) (insert "............") (goto-char 42) (insert "...........") (goto-char 68) (insert ".............") (goto-char 12) (insert "........") (goto-char 1) (insert "...............") (goto-char 89) (insert "") (goto-char 94) (insert ".............") (goto-char 57) (insert "...........") (goto-char 130) (insert "...") (goto-char 69) (insert "..") (goto-char 101) (insert "......") (goto-char 128) (delete-char 13) (goto-char 19) (delete-char 100) (goto-char 22) (insert "..") (goto-char 13) (widen) (narrow-to-region 30 16) (goto-char 19) (insert "..........") (goto-char 22) (delete-char 3) (goto-char 19) (insert ".........") (goto-char 17) (insert "..") (goto-char 16) (insert "............") (goto-char 47) (insert ".") (goto-char 50) (insert "..........") (goto-char 70) (delete-char 1) (should (equal (test-overlay-regions) '((32 . 75) (33 . 33) (33 . 33) (33 . 33) (33 . 60) (33 . 75) (33 . 75) (33 . 75) (60 . 75)))))) (ert-deftest overlay-autogenerated-test-9 nil (with-temp-buffer (insert "................................................................") (make-overlay 58 13 nil nil nil) (make-overlay 29 4 nil nil t) (make-overlay 3 53 nil nil nil) (make-overlay 31 9 nil t t) (make-overlay 48 30 nil nil nil) (make-overlay 43 50 nil nil nil) (make-overlay 7 27 nil nil t) (make-overlay 30 59 nil nil nil) (make-overlay 42 25 nil nil t) (make-overlay 15 13 nil t t) (make-overlay 39 11 nil t t) (make-overlay 21 62 nil t t) (make-overlay 35 2 nil t nil) (make-overlay 60 53 nil nil t) (make-overlay 64 8 nil nil t) (make-overlay 58 59 nil t t) (goto-char 28) (insert ".............") (goto-char 28) (insert "...............") (goto-char 71) (insert ".......") (goto-char 65) (insert "......") (goto-char 3) (delete-char 12) (goto-char 79) (delete-char 11) (goto-char 65) (widen) (narrow-to-region 12 53) (goto-char 38) (insert ".......") (goto-char 20) (insert ".........") (goto-char 27) (insert "...........") (goto-char 75) (insert "........") (goto-char 85) (insert "............") (goto-char 52) (insert "..........") (goto-char 16) (delete-char 8) (goto-char 15) (insert "...............") (goto-char 112) (insert "") (goto-char 61) (insert "..") (goto-char 29) (delete-char 34) (goto-char 52) (delete-char 32) (goto-char 43) (insert "........") (goto-char 45) (insert "..") (goto-char 35) (insert "...........") (goto-char 29) (insert ".......") (goto-char 75) (widen) (narrow-to-region 69 55) (goto-char 67) (delete-char 2) (goto-char 66) (delete-char 0) (goto-char 62) (delete-char 1) (goto-char 61) (delete-char 3) (goto-char 63) (insert ".") (goto-char 56) (insert ".....") (goto-char 67) (insert ".............") (goto-char 76) (delete-char 3) (should (equal (test-overlay-regions) '((2 . 90) (3 . 90) (3 . 90) (3 . 99) (3 . 117) (3 . 117) (3 . 120) (9 . 118) (13 . 102)))))) (ert-deftest overlay-autogenerated-test-10 nil (with-temp-buffer (insert "................................................................") (make-overlay 16 60 nil nil nil) (make-overlay 36 53 nil nil nil) (make-overlay 44 39 nil t t) (make-overlay 61 47 nil t t) (make-overlay 58 39 nil nil t) (make-overlay 23 54 nil nil t) (make-overlay 65 59 nil t t) (make-overlay 13 57 nil nil t) (make-overlay 22 64 nil nil t) (make-overlay 16 19 nil nil nil) (make-overlay 16 1 nil nil t) (make-overlay 28 21 nil t t) (make-overlay 10 62 nil nil nil) (make-overlay 12 18 nil nil t) (make-overlay 15 5 nil nil t) (make-overlay 36 31 nil nil t) (goto-char 42) (insert "...") (goto-char 25) (delete-char 28) (goto-char 30) (delete-char 10) (goto-char 8) (delete-char 9) (goto-char 5) (insert "........") (goto-char 6) (delete-char 2) (goto-char 4) (insert "") (goto-char 21) (insert ".............") (goto-char 6) (delete-char 33) (goto-char 1) (delete-char 1) (goto-char 6) (insert "..........") (goto-char 8) (insert "...........") (goto-char 21) (insert "........") (goto-char 16) (delete-char 18) (goto-char 5) (insert "...") (goto-char 5) (delete-char 8) (goto-char 11) (insert ".") (goto-char 1) (insert ".......") (goto-char 9) (delete-char 9) (goto-char 5) (insert "") (goto-char 8) (delete-char 0) (goto-char 11) (insert "..............") (goto-char 12) (insert "") (goto-char 11) (delete-char 8) (goto-char 7) (delete-char 3) (goto-char 5) (delete-char 3) (goto-char 1) (delete-char 8) (goto-char 1) (insert "....") (goto-char 1) (insert "..") (goto-char 7) (insert "...") (goto-char 8) (widen) (narrow-to-region 9 11) (goto-char 11) (delete-char 0) (should (equal (test-overlay-regions) '((1 . 10) (1 . 10) (1 . 10) (1 . 10) (1 . 10) (1 . 12) (1 . 12) (1 . 12) (10 . 10) (10 . 10) (10 . 12)))))) (ert-deftest overlay-autogenerated-test-11 nil (with-temp-buffer (insert "................................................................") (make-overlay 33 18 nil nil nil) (make-overlay 56 38 nil t nil) (make-overlay 2 45 nil nil t) (make-overlay 19 55 nil nil t) (make-overlay 28 42 nil t t) (make-overlay 50 29 nil t nil) (make-overlay 40 63 nil nil nil) (make-overlay 13 2 nil nil t) (make-overlay 26 7 nil t t) (make-overlay 22 25 nil nil nil) (make-overlay 14 14 nil t nil) (make-overlay 15 39 nil t t) (make-overlay 51 22 nil t t) (make-overlay 58 5 nil t nil) (make-overlay 16 10 nil nil nil) (make-overlay 32 33 nil t nil) (goto-char 40) (delete-char 20) (goto-char 45) (delete-char 0) (goto-char 6) (insert "..") (goto-char 45) (insert "...") (goto-char 26) (insert "...............") (goto-char 27) (insert "...........") (goto-char 38) (insert "......") (goto-char 62) (insert "...............") (goto-char 18) (insert "...........") (goto-char 99) (widen) (narrow-to-region 37 17) (goto-char 29) (delete-char 2) (goto-char 28) (delete-char 2) (goto-char 17) (insert ".....") (goto-char 21) (widen) (narrow-to-region 34 96) (goto-char 44) (delete-char 22) (goto-char 39) (insert "..") (goto-char 53) (insert "...............") (goto-char 58) (insert ".............") (goto-char 93) (insert ".........") (goto-char 78) (widen) (narrow-to-region 27 104) (goto-char 93) (delete-char 11) (goto-char 59) (insert "....") (goto-char 59) (insert "..............") (goto-char 74) (delete-char 5) (goto-char 70) (insert ".") (goto-char 37) (insert "...........") (goto-char 34) (delete-char 46) (goto-char 49) (insert "......") (goto-char 55) (insert "...") (goto-char 42) (insert "...") (goto-char 70) (delete-char 8) (goto-char 48) (delete-char 28) (should (equal (test-overlay-regions) '((2 . 62) (5 . 62) (9 . 34) (22 . 61) (33 . 55) (33 . 62) (34 . 34) (34 . 62)))))) (ert-deftest overlay-autogenerated-test-12 nil (with-temp-buffer (insert "................................................................") (make-overlay 18 50 nil nil nil) (make-overlay 63 3 nil nil t) (make-overlay 44 20 nil t t) (make-overlay 58 38 nil nil t) (make-overlay 3 17 nil t nil) (make-overlay 31 62 nil t nil) (make-overlay 12 17 nil t nil) (make-overlay 17 52 nil nil nil) (make-overlay 9 35 nil nil nil) (make-overlay 17 38 nil nil nil) (make-overlay 53 54 nil nil t) (make-overlay 65 34 nil t nil) (make-overlay 12 33 nil t nil) (make-overlay 54 58 nil nil nil) (make-overlay 42 26 nil t nil) (make-overlay 2 4 nil t nil) (goto-char 4) (delete-char 26) (goto-char 39) (insert ".") (goto-char 2) (delete-char 14) (goto-char 16) (widen) (narrow-to-region 19 1) (goto-char 7) (delete-char 9) (goto-char 6) (insert ".........") (goto-char 6) (insert "..........") (goto-char 16) (insert ".............") (goto-char 36) (delete-char 1) (goto-char 4) (insert "..........") (goto-char 49) (delete-char 2) (goto-char 16) (insert "............") (goto-char 52) (widen) (narrow-to-region 36 38) (goto-char 37) (delete-char 1) (goto-char 37) (insert ".............") (goto-char 46) (insert ".") (goto-char 40) (delete-char 5) (goto-char 45) (delete-char 0) (goto-char 46) (delete-char 0) (goto-char 40) (insert "..........") (goto-char 39) (delete-char 4) (goto-char 39) (delete-char 3) (goto-char 40) (widen) (narrow-to-region 8 9) (goto-char 8) (delete-char 1) (goto-char 8) (delete-char 0) (goto-char 8) (widen) (narrow-to-region 45 15) (goto-char 40) (insert "...............") (goto-char 29) (delete-char 7) (goto-char 30) (delete-char 6) (goto-char 21) (delete-char 9) (goto-char 22) (insert "...............") (goto-char 51) (insert "..............") (should (equal (test-overlay-regions) '((2 . 92) (2 . 92) (2 . 93) (2 . 96) (2 . 97) (2 . 99)))))) (ert-deftest overlay-autogenerated-test-13 nil (with-temp-buffer (insert "................................................................") (make-overlay 18 30 nil t t) (make-overlay 54 37 nil nil t) (make-overlay 16 61 nil nil t) (make-overlay 58 7 nil nil t) (make-overlay 27 39 nil nil t) (make-overlay 39 31 nil nil t) (make-overlay 11 47 nil nil nil) (make-overlay 47 40 nil t t) (make-overlay 27 18 nil nil nil) (make-overlay 33 26 nil nil t) (make-overlay 55 4 nil t t) (make-overlay 62 50 nil t t) (make-overlay 47 65 nil t t) (make-overlay 17 23 nil nil t) (make-overlay 30 31 nil t nil) (make-overlay 10 37 nil t nil) (goto-char 8) (delete-char 6) (goto-char 56) (delete-char 0) (goto-char 28) (insert ".........") (goto-char 19) (insert "..............") (goto-char 4) (delete-char 28) (goto-char 49) (delete-char 4) (goto-char 2) (insert "............") (goto-char 10) (delete-char 37) (goto-char 19) (delete-char 2) (goto-char 20) (delete-char 0) (goto-char 16) (insert "..") (goto-char 8) (widen) (narrow-to-region 12 3) (goto-char 10) (delete-char 2) (goto-char 9) (insert "..") (goto-char 12) (insert "...............") (goto-char 25) (insert ".....") (goto-char 10) (widen) (narrow-to-region 42 18) (goto-char 20) (insert ".......") (goto-char 18) (insert ".........") (goto-char 55) (delete-char 3) (goto-char 48) (insert ".......") (goto-char 52) (delete-char 6) (goto-char 45) (delete-char 11) (goto-char 27) (delete-char 13) (goto-char 22) (insert "...........") (goto-char 19) (delete-char 15) (goto-char 20) (delete-char 0) (goto-char 23) (widen) (narrow-to-region 12 25) (goto-char 16) (insert "..........") (goto-char 25) (widen) (narrow-to-region 2 38) (goto-char 34) (delete-char 0) (goto-char 31) (insert "...............") (should (equal (test-overlay-regions) '((12 . 12) (12 . 12) (12 . 12) (12 . 12) (12 . 53) (12 . 53) (12 . 53) (12 . 53) (12 . 53) (12 . 53) (12 . 55)))))) (ert-deftest overlay-autogenerated-test-14 nil (with-temp-buffer (insert "................................................................") (make-overlay 29 37 nil t nil) (make-overlay 15 44 nil nil nil) (make-overlay 31 34 nil nil t) (make-overlay 35 33 nil t t) (make-overlay 4 27 nil t t) (make-overlay 37 5 nil nil t) (make-overlay 58 19 nil nil t) (make-overlay 57 47 nil nil t) (make-overlay 49 5 nil t t) (make-overlay 21 59 nil t t) (make-overlay 42 33 nil t nil) (make-overlay 22 16 nil t t) (make-overlay 9 51 nil t nil) (make-overlay 20 24 nil nil t) (make-overlay 21 7 nil t t) (make-overlay 58 52 nil t t) (goto-char 39) (widen) (narrow-to-region 55 54) (goto-char 54) (insert ".............") (goto-char 55) (insert "............") (goto-char 66) (delete-char 10) (goto-char 62) (insert "...............") (goto-char 82) (delete-char 2) (goto-char 82) (delete-char 0) (goto-char 76) (insert "..............") (goto-char 60) (insert ".............") (goto-char 71) (insert "...............") (goto-char 122) (delete-char 0) (goto-char 93) (delete-char 3) (goto-char 108) (delete-char 1) (goto-char 121) (insert "........") (goto-char 92) (insert "") (goto-char 103) (insert "..........") (goto-char 85) (delete-char 13) (goto-char 116) (delete-char 7) (goto-char 103) (widen) (narrow-to-region 60 27) (goto-char 28) (delete-char 16) (goto-char 35) (insert ".......") (goto-char 47) (insert "........") (goto-char 38) (delete-char 1) (goto-char 43) (insert "..........") (goto-char 59) (insert "........") (goto-char 57) (insert "........") (goto-char 36) (insert "...........") (goto-char 82) (delete-char 11) (goto-char 67) (insert "..........") (goto-char 46) (delete-char 1) (goto-char 47) (insert "......") (goto-char 69) (delete-char 7) (should (equal (test-overlay-regions) '((5 . 28) (5 . 33) (9 . 35) (15 . 28) (19 . 154) (21 . 155) (28 . 28) (28 . 28) (28 . 28) (28 . 28) (31 . 153) (58 . 154)))))) (ert-deftest overlay-autogenerated-test-15 nil (with-temp-buffer (insert "................................................................") (make-overlay 3 19 nil t t) (make-overlay 11 18 nil t nil) (make-overlay 28 51 nil nil t) (make-overlay 29 15 nil t t) (make-overlay 46 57 nil t t) (make-overlay 26 24 nil nil nil) (make-overlay 29 43 nil nil nil) (make-overlay 54 29 nil nil nil) (make-overlay 34 52 nil t nil) (make-overlay 10 32 nil nil nil) (make-overlay 28 34 nil nil t) (make-overlay 11 43 nil nil nil) (make-overlay 18 50 nil t t) (make-overlay 28 39 nil nil nil) (make-overlay 62 62 nil t t) (make-overlay 30 62 nil t nil) (goto-char 30) (widen) (narrow-to-region 6 22) (goto-char 9) (insert "..") (goto-char 12) (insert ".............") (goto-char 29) (insert "..............") (goto-char 47) (insert "........") (goto-char 46) (insert ".............") (goto-char 55) (insert "..........") (goto-char 62) (insert "...............") (goto-char 47) (delete-char 49) (goto-char 11) (insert "...........") (goto-char 40) (delete-char 1) (goto-char 27) (insert "..............") (goto-char 51) (insert "......") (goto-char 60) (delete-char 10) (goto-char 37) (insert ".........") (goto-char 69) (insert ".") (goto-char 36) (insert "............") (goto-char 75) (insert ".............") (goto-char 21) (widen) (narrow-to-region 44 21) (goto-char 37) (insert ".............") (goto-char 55) (widen) (narrow-to-region 84 28) (goto-char 58) (widen) (narrow-to-region 96 49) (goto-char 62) (delete-char 0) (goto-char 72) (delete-char 24) (goto-char 61) (widen) (narrow-to-region 105 83) (goto-char 96) (widen) (narrow-to-region 109 46) (goto-char 95) (delete-char 4) (goto-char 81) (insert ".") (goto-char 51) (delete-char 8) (goto-char 52) (insert ".") (goto-char 60) (delete-char 10) (goto-char 50) (insert "......") (should (equal (test-overlay-regions) '((3 . 81) (23 . 88) (66 . 99) (69 . 81) (78 . 85) (81 . 106) (84 . 85) (85 . 90) (85 . 95) (85 . 99) (85 . 107) (85 . 110) (86 . 118) (90 . 108)))))) (ert-deftest overlay-autogenerated-test-16 nil (with-temp-buffer (insert "................................................................") (make-overlay 3 55 nil t nil) (make-overlay 45 47 nil nil nil) (make-overlay 23 57 nil t t) (make-overlay 64 55 nil nil nil) (make-overlay 37 26 nil t t) (make-overlay 29 38 nil nil t) (make-overlay 33 3 nil t t) (make-overlay 49 16 nil t nil) (make-overlay 35 56 nil t t) (make-overlay 9 39 nil nil nil) (make-overlay 2 61 nil nil nil) (make-overlay 59 26 nil nil t) (make-overlay 5 50 nil t t) (make-overlay 19 19 nil nil t) (make-overlay 64 21 nil t nil) (make-overlay 21 8 nil nil t) (goto-char 17) (insert ".....") (goto-char 29) (insert "............") (goto-char 42) (delete-char 38) (goto-char 24) (insert "") (goto-char 9) (delete-char 2) (goto-char 20) (insert "..") (goto-char 27) (delete-char 8) (goto-char 25) (delete-char 6) (goto-char 8) (delete-char 21) (goto-char 9) (insert "..............") (goto-char 3) (insert "....") (goto-char 8) (delete-char 18) (goto-char 6) (widen) (narrow-to-region 5 8) (goto-char 5) (delete-char 3) (goto-char 5) (insert "...") (goto-char 8) (insert "..........") (goto-char 5) (insert "") (goto-char 7) (delete-char 8) (goto-char 8) (widen) (narrow-to-region 2 2) (goto-char 2) (delete-char 0) (goto-char 2) (delete-char 0) (goto-char 2) (delete-char 0) (goto-char 2) (delete-char 0) (goto-char 2) (widen) (narrow-to-region 10 3) (goto-char 8) (delete-char 2) (goto-char 7) (insert ".......") (goto-char 8) (delete-char 3) (goto-char 12) (insert "..") (goto-char 9) (delete-char 2) (goto-char 7) (insert "......") (goto-char 15) (insert "..........") (goto-char 4) (insert "........") (should (equal (test-overlay-regions) '((2 . 13) (13 . 13) (13 . 13) (13 . 13) (13 . 13) (13 . 13) (13 . 13) (13 . 36) (13 . 36) (13 . 36) (13 . 36)))))) (ert-deftest overlay-autogenerated-test-17 nil (with-temp-buffer (insert "................................................................") (make-overlay 15 37 nil t nil) (make-overlay 40 3 nil t t) (make-overlay 61 19 nil t t) (make-overlay 46 9 nil nil t) (make-overlay 64 39 nil nil t) (make-overlay 50 58 nil nil t) (make-overlay 21 30 nil t nil) (make-overlay 44 54 nil t nil) (make-overlay 32 2 nil t nil) (make-overlay 14 9 nil t t) (make-overlay 41 40 nil t nil) (make-overlay 17 26 nil t nil) (make-overlay 57 50 nil t t) (make-overlay 16 65 nil nil t) (make-overlay 13 61 nil t t) (make-overlay 39 64 nil nil t) (goto-char 37) (widen) (narrow-to-region 12 1) (goto-char 12) (insert "......") (goto-char 8) (delete-char 4) (goto-char 11) (delete-char 3) (goto-char 6) (insert ".....") (goto-char 6) (widen) (narrow-to-region 53 48) (goto-char 48) (delete-char 5) (goto-char 48) (widen) (narrow-to-region 59 58) (goto-char 59) (delete-char 0) (goto-char 58) (insert "...") (goto-char 60) (insert "...............") (goto-char 58) (insert ".............") (goto-char 67) (insert ".....") (goto-char 73) (insert "") (goto-char 68) (insert ".....") (goto-char 64) (insert "....") (goto-char 62) (insert "..") (goto-char 91) (insert "..........") (goto-char 80) (insert "............") (goto-char 100) (delete-char 21) (goto-char 74) (insert "...") (goto-char 60) (delete-char 30) (goto-char 64) (widen) (narrow-to-region 71 23) (goto-char 53) (delete-char 11) (goto-char 23) (delete-char 21) (goto-char 39) (delete-char 0) (goto-char 35) (insert "") (goto-char 35) (insert ".........") (goto-char 30) (insert "...........") (goto-char 35) (insert "..") (goto-char 37) (delete-char 1) (goto-char 28) (delete-char 3) (should (equal (test-overlay-regions) '((13 . 27) (17 . 67) (20 . 71) (23 . 23) (23 . 24) (23 . 67) (23 . 70) (23 . 70) (27 . 41) (28 . 41) (28 . 41)))))) (ert-deftest overlay-autogenerated-test-18 nil (with-temp-buffer (insert "................................................................") (make-overlay 43 52 nil nil t) (make-overlay 27 29 nil nil t) (make-overlay 24 18 nil nil nil) (make-overlay 39 52 nil nil nil) (make-overlay 33 62 nil t t) (make-overlay 16 7 nil t nil) (make-overlay 47 39 nil nil t) (make-overlay 59 41 nil nil nil) (make-overlay 22 55 nil nil t) (make-overlay 60 16 nil t t) (make-overlay 55 20 nil nil t) (make-overlay 25 12 nil nil t) (make-overlay 26 2 nil nil t) (make-overlay 17 35 nil nil t) (make-overlay 46 41 nil t nil) (make-overlay 57 53 nil t t) (goto-char 52) (insert "") (goto-char 4) (delete-char 21) (goto-char 17) (insert "") (goto-char 35) (insert "...............") (goto-char 8) (insert "...............") (goto-char 9) (insert "........") (goto-char 73) (delete-char 9) (goto-char 62) (insert "...............") (goto-char 27) (widen) (narrow-to-region 34 84) (goto-char 81) (insert "...........") (goto-char 48) (insert "...") (goto-char 74) (insert ".......") (goto-char 41) (widen) (narrow-to-region 37 105) (goto-char 75) (insert "...............") (goto-char 47) (insert "..........") (goto-char 99) (delete-char 13) (goto-char 105) (delete-char 4) (goto-char 94) (delete-char 5) (goto-char 96) (insert "..............") (goto-char 74) (insert "") (goto-char 121) (insert "...") (goto-char 102) (insert "...") (goto-char 64) (insert "......") (goto-char 67) (insert "...") (goto-char 95) (delete-char 19) (goto-char 37) (insert "..........") (goto-char 50) (widen) (narrow-to-region 67 96) (goto-char 88) (insert "..........") (goto-char 91) (insert ".............") (goto-char 70) (delete-char 8) (goto-char 111) (widen) (narrow-to-region 72 103) (goto-char 101) (insert "...............") (should (equal (test-overlay-regions) '((4 . 119) (4 . 119) (4 . 162) (35 . 162) (51 . 78) (53 . 162) (55 . 78) (79 . 162)))))) (ert-deftest overlay-autogenerated-test-19 nil (with-temp-buffer (insert "................................................................") (make-overlay 19 31 nil t t) (make-overlay 40 5 nil nil nil) (make-overlay 13 41 nil t t) (make-overlay 41 43 nil nil t) (make-overlay 7 60 nil t nil) (make-overlay 40 23 nil t nil) (make-overlay 32 15 nil t t) (make-overlay 12 45 nil nil nil) (make-overlay 18 1 nil nil nil) (make-overlay 58 32 nil t t) (make-overlay 30 3 nil t t) (make-overlay 43 61 nil t nil) (make-overlay 54 57 nil nil t) (make-overlay 34 14 nil t t) (make-overlay 26 49 nil nil t) (make-overlay 54 49 nil nil t) (goto-char 28) (insert "........") (goto-char 32) (insert "...........") (goto-char 78) (delete-char 6) (goto-char 37) (delete-char 0) (goto-char 49) (insert ".........") (goto-char 40) (widen) (narrow-to-region 8 30) (goto-char 20) (delete-char 4) (goto-char 23) (delete-char 1) (goto-char 10) (insert ".") (goto-char 22) (delete-char 2) (goto-char 22) (insert "......") (goto-char 17) (insert "..........") (goto-char 34) (delete-char 0) (goto-char 21) (insert "............") (goto-char 45) (delete-char 7) (goto-char 39) (insert "...............") (goto-char 29) (insert "........") (goto-char 9) (delete-char 3) (goto-char 63) (delete-char 1) (goto-char 33) (insert "........") (goto-char 16) (delete-char 36) (goto-char 20) (delete-char 2) (goto-char 28) (delete-char 0) (goto-char 24) (insert "...........") (goto-char 43) (insert "..........") (goto-char 30) (delete-char 1) (goto-char 40) (delete-char 13) (goto-char 22) (delete-char 19) (goto-char 10) (delete-char 8) (goto-char 14) (delete-char 0) (goto-char 12) (delete-char 2) (goto-char 11) (delete-char 0) (should (equal (test-overlay-regions) '((1 . 12) (3 . 40) (5 . 50) (7 . 69) (10 . 42) (10 . 44) (10 . 51) (10 . 55)))))) (ert-deftest overlay-autogenerated-test-20 nil (with-temp-buffer (insert "................................................................") (make-overlay 44 42 nil t t) (make-overlay 47 1 nil nil nil) (make-overlay 24 48 nil nil nil) (make-overlay 62 50 nil nil t) (make-overlay 54 38 nil nil nil) (make-overlay 3 9 nil nil nil) (make-overlay 61 28 nil t nil) (make-overlay 33 33 nil nil t) (make-overlay 37 37 nil t nil) (make-overlay 20 13 nil nil t) (make-overlay 54 36 nil t nil) (make-overlay 18 58 nil nil t) (make-overlay 55 3 nil nil t) (make-overlay 23 21 nil t t) (make-overlay 47 55 nil t t) (make-overlay 50 12 nil nil nil) (goto-char 11) (delete-char 46) (goto-char 7) (delete-char 3) (goto-char 14) (delete-char 1) (goto-char 14) (insert "......") (goto-char 14) (delete-char 4) (goto-char 12) (widen) (narrow-to-region 11 12) (goto-char 11) (insert "...") (goto-char 13) (delete-char 1) (goto-char 14) (insert ".") (goto-char 13) (delete-char 2) (goto-char 11) (delete-char 2) (goto-char 11) (insert "") (goto-char 11) (delete-char 0) (goto-char 11) (delete-char 0) (goto-char 11) (delete-char 0) (goto-char 11) (insert ".") (goto-char 11) (insert ".") (goto-char 12) (insert "......") (goto-char 14) (delete-char 2) (goto-char 11) (delete-char 2) (goto-char 14) (insert "............") (goto-char 19) (insert "..............") (goto-char 29) (insert ".....") (goto-char 42) (delete-char 1) (goto-char 22) (insert ".....") (goto-char 19) (insert "..............") (goto-char 42) (insert ".....") (goto-char 63) (widen) (narrow-to-region 26 42) (goto-char 36) (insert "..........") (goto-char 40) (delete-char 11) (goto-char 26) (delete-char 13) (goto-char 28) (delete-char 0) (should (equal (test-overlay-regions) '((8 . 56)))))) (ert-deftest overlay-autogenerated-test-21 nil (with-temp-buffer (insert "................................................................") (make-overlay 65 15 nil nil nil) (make-overlay 52 31 nil nil nil) (make-overlay 12 51 nil t t) (make-overlay 42 20 nil nil t) (make-overlay 51 48 nil nil nil) (make-overlay 59 28 nil t t) (make-overlay 51 53 nil t nil) (make-overlay 50 59 nil nil t) (make-overlay 24 40 nil t nil) (make-overlay 51 61 nil nil nil) (make-overlay 12 58 nil nil t) (make-overlay 64 17 nil t t) (make-overlay 26 38 nil t t) (make-overlay 23 36 nil nil nil) (make-overlay 57 50 nil nil nil) (make-overlay 42 15 nil nil t) (goto-char 14) (insert "............") (goto-char 37) (insert ".") (goto-char 73) (insert "..........") (goto-char 17) (delete-char 31) (goto-char 21) (delete-char 35) (goto-char 9) (delete-char 0) (goto-char 7) (delete-char 2) (goto-char 1) (insert "") (goto-char 5) (insert ".......") (goto-char 8) (insert "....") (goto-char 27) (delete-char 0) (goto-char 10) (insert ".............") (goto-char 24) (delete-char 16) (goto-char 14) (insert ".............") (goto-char 25) (delete-char 11) (goto-char 3) (insert "........") (goto-char 38) (insert "............") (goto-char 41) (insert "..............") (goto-char 56) (delete-char 3) (goto-char 15) (widen) (narrow-to-region 16 53) (goto-char 19) (widen) (narrow-to-region 18 33) (goto-char 32) (insert "......") (goto-char 38) (delete-char 1) (goto-char 19) (widen) (narrow-to-region 11 11) (goto-char 11) (insert ".........") (goto-char 11) (insert ".........") (goto-char 20) (widen) (narrow-to-region 22 69) (goto-char 49) (insert ".........") (goto-char 54) (delete-char 22) (goto-char 44) (insert "........") (goto-char 40) (delete-char 7) (goto-char 29) (delete-char 22) (should (equal (test-overlay-regions) '((33 . 33) (33 . 33) (33 . 33) (33 . 33) (33 . 33) (33 . 33) (33 . 33) (33 . 33) (33 . 33) (33 . 33) (33 . 33) (33 . 33) (33 . 33) (33 . 33) (33 . 33) (33 . 33)))))) (ert-deftest overlay-autogenerated-test-22 nil (with-temp-buffer (insert "................................................................") (make-overlay 12 14 nil nil t) (make-overlay 54 7 nil nil t) (make-overlay 8 3 nil nil nil) (make-overlay 42 32 nil nil nil) (make-overlay 10 27 nil t t) (make-overlay 50 28 nil t t) (make-overlay 39 35 nil nil nil) (make-overlay 12 4 nil t t) (make-overlay 29 54 nil nil nil) (make-overlay 14 52 nil t t) (make-overlay 9 15 nil t nil) (make-overlay 44 11 nil nil nil) (make-overlay 46 29 nil t t) (make-overlay 40 58 nil t t) (make-overlay 40 61 nil t nil) (make-overlay 13 59 nil nil t) (goto-char 32) (insert ".............") (goto-char 25) (delete-char 10) (goto-char 3) (insert ".............") (goto-char 33) (delete-char 32) (goto-char 39) (widen) (narrow-to-region 41 46) (goto-char 43) (delete-char 2) (goto-char 42) (delete-char 2) (goto-char 42) (insert "...") (goto-char 43) (delete-char 1) (goto-char 42) (widen) (narrow-to-region 8 46) (goto-char 25) (delete-char 7) (goto-char 12) (delete-char 10) (goto-char 23) (insert "...............") (goto-char 41) (delete-char 3) (goto-char 17) (insert ".........") (goto-char 37) (insert "...............") (goto-char 53) (delete-char 7) (goto-char 53) (delete-char 0) (goto-char 42) (widen) (narrow-to-region 20 54) (goto-char 20) (delete-char 28) (goto-char 23) (insert "..........") (goto-char 30) (insert "......") (goto-char 26) (delete-char 1) (goto-char 27) (widen) (narrow-to-region 40 37) (goto-char 37) (insert ".....") (goto-char 41) (widen) (narrow-to-region 13 37) (goto-char 29) (insert "...........") (goto-char 33) (delete-char 7) (goto-char 33) (delete-char 8) (goto-char 20) (insert "") (goto-char 23) (delete-char 7) (goto-char 14) (widen) (narrow-to-region 33 33) (should (equal (test-overlay-regions) '((15 . 39) (16 . 38) (16 . 39)))))) (ert-deftest overlay-autogenerated-test-23 nil (with-temp-buffer (insert "................................................................") (make-overlay 51 32 nil t t) (make-overlay 13 61 nil t nil) (make-overlay 47 19 nil nil t) (make-overlay 11 30 nil nil nil) (make-overlay 50 26 nil t t) (make-overlay 64 13 nil t t) (make-overlay 29 8 nil t t) (make-overlay 25 42 nil t t) (make-overlay 33 28 nil t t) (make-overlay 54 7 nil nil nil) (make-overlay 30 59 nil nil nil) (make-overlay 65 50 nil t t) (make-overlay 64 15 nil t nil) (make-overlay 16 35 nil nil nil) (make-overlay 40 36 nil nil t) (make-overlay 31 35 nil t nil) (goto-char 61) (insert "......") (goto-char 55) (delete-char 2) (goto-char 20) (insert "..............") (goto-char 56) (insert "............") (goto-char 48) (delete-char 6) (goto-char 9) (delete-char 54) (goto-char 20) (delete-char 2) (goto-char 16) (delete-char 12) (goto-char 18) (insert ".............") (goto-char 24) (delete-char 7) (goto-char 5) (delete-char 2) (goto-char 1) (insert ".......") (goto-char 1) (insert ".......") (goto-char 33) (insert "") (goto-char 4) (insert "..") (goto-char 5) (widen) (narrow-to-region 17 4) (goto-char 13) (insert ".") (goto-char 8) (insert "............") (goto-char 9) (delete-char 3) (goto-char 4) (widen) (narrow-to-region 32 32) (goto-char 32) (delete-char 0) (goto-char 32) (delete-char 0) (goto-char 32) (delete-char 0) (goto-char 32) (insert "...............") (goto-char 43) (delete-char 4) (goto-char 32) (delete-char 1) (goto-char 40) (widen) (narrow-to-region 33 19) (goto-char 27) (insert "........") (goto-char 38) (delete-char 2) (goto-char 26) (insert "") (goto-char 33) (delete-char 1) (goto-char 27) (insert ".") (should (equal (test-overlay-regions) '((38 . 56)))))) (ert-deftest overlay-autogenerated-test-24 nil (with-temp-buffer (insert "................................................................") (make-overlay 63 8 nil t t) (make-overlay 10 13 nil nil t) (make-overlay 40 38 nil nil nil) (make-overlay 21 34 nil t t) (make-overlay 55 29 nil nil nil) (make-overlay 36 65 nil t t) (make-overlay 29 12 nil t nil) (make-overlay 41 3 nil nil t) (make-overlay 20 9 nil t t) (make-overlay 52 42 nil t t) (make-overlay 21 56 nil nil t) (make-overlay 25 65 nil nil nil) (make-overlay 38 4 nil t t) (make-overlay 48 23 nil t t) (make-overlay 52 9 nil nil t) (make-overlay 48 19 nil nil nil) (goto-char 43) (delete-char 8) (goto-char 30) (delete-char 16) (goto-char 7) (insert "...") (goto-char 14) (delete-char 5) (goto-char 36) (delete-char 0) (goto-char 9) (insert "...............") (goto-char 13) (delete-char 17) (goto-char 16) (delete-char 2) (goto-char 9) (insert "") (goto-char 11) (delete-char 5) (goto-char 18) (insert "........") (goto-char 15) (insert "....") (goto-char 16) (delete-char 14) (goto-char 20) (insert ".") (goto-char 25) (delete-char 1) (goto-char 14) (delete-char 14) (goto-char 3) (delete-char 7) (goto-char 3) (delete-char 4) (goto-char 1) (insert "...........") (goto-char 9) (insert ".......") (goto-char 5) (delete-char 7) (goto-char 12) (insert ".........") (goto-char 2) (delete-char 4) (goto-char 3) (widen) (narrow-to-region 14 6) (goto-char 9) (insert "..........") (goto-char 13) (delete-char 8) (goto-char 7) (delete-char 7) (goto-char 7) (insert "..") (goto-char 9) (insert ".............") (goto-char 9) (insert "..........") (goto-char 21) (insert "...............") (goto-char 42) (insert ".........") (should (equal (test-overlay-regions) 'nil)))) (ert-deftest overlay-autogenerated-test-25 nil (with-temp-buffer (insert "................................................................") (make-overlay 24 8 nil nil t) (make-overlay 41 16 nil t nil) (make-overlay 3 16 nil nil nil) (make-overlay 26 42 nil nil nil) (make-overlay 32 45 nil nil t) (make-overlay 34 19 nil nil nil) (make-overlay 37 54 nil nil t) (make-overlay 44 34 nil t nil) (make-overlay 49 40 nil t t) (make-overlay 29 34 nil t nil) (make-overlay 54 16 nil t t) (make-overlay 29 4 nil t nil) (make-overlay 44 57 nil nil nil) (make-overlay 5 32 nil nil nil) (make-overlay 12 33 nil nil t) (make-overlay 38 29 nil t nil) (goto-char 12) (delete-char 53) (goto-char 1) (delete-char 6) (goto-char 5) (widen) (narrow-to-region 6 1) (goto-char 6) (insert "......") (goto-char 10) (insert "...............") (goto-char 17) (delete-char 5) (goto-char 7) (insert ".....") (goto-char 8) (insert "...............") (goto-char 4) (insert ".....") (goto-char 44) (widen) (narrow-to-region 18 11) (goto-char 15) (delete-char 1) (goto-char 17) (delete-char 0) (goto-char 13) (delete-char 3) (goto-char 14) (insert "..") (goto-char 16) (insert "..") (goto-char 15) (delete-char 3) (goto-char 13) (delete-char 0) (goto-char 14) (insert "..........") (goto-char 19) (insert ".") (goto-char 23) (delete-char 1) (goto-char 12) (widen) (narrow-to-region 23 40) (goto-char 35) (insert "....") (goto-char 33) (insert "..........") (goto-char 37) (delete-char 16) (goto-char 37) (delete-char 0) (goto-char 23) (widen) (narrow-to-region 30 8) (goto-char 29) (delete-char 0) (goto-char 15) (delete-char 15) (goto-char 9) (insert "...........") (goto-char 9) (delete-char 1) (goto-char 22) (delete-char 3) (goto-char 10) (insert ".........") (should (equal (test-overlay-regions) '((1 . 30) (1 . 30) (1 . 30) (2 . 53) (30 . 30) (30 . 30) (30 . 30) (30 . 30) (30 . 30) (30 . 30) (30 . 30) (30 . 53) (30 . 53) (30 . 53)))))) (ert-deftest overlay-autogenerated-test-26 nil (with-temp-buffer (insert "................................................................") (make-overlay 60 59 nil t nil) (make-overlay 18 11 nil nil t) (make-overlay 4 44 nil nil nil) (make-overlay 7 22 nil nil nil) (make-overlay 54 50 nil t nil) (make-overlay 59 28 nil nil nil) (make-overlay 49 23 nil nil t) (make-overlay 21 5 nil t nil) (make-overlay 17 39 nil t nil) (make-overlay 16 14 nil nil nil) (make-overlay 50 26 nil nil nil) (make-overlay 37 14 nil nil nil) (make-overlay 6 59 nil nil t) (make-overlay 30 17 nil nil t) (make-overlay 17 34 nil nil t) (make-overlay 7 22 nil t nil) (goto-char 35) (delete-char 25) (goto-char 30) (delete-char 7) (goto-char 25) (widen) (narrow-to-region 3 19) (goto-char 6) (insert ".........") (goto-char 21) (insert "...............") (goto-char 12) (insert ".............") (goto-char 34) (widen) (narrow-to-region 64 37) (goto-char 62) (insert ".............") (goto-char 50) (widen) (narrow-to-region 72 38) (goto-char 66) (insert "") (goto-char 54) (insert "...") (goto-char 70) (delete-char 4) (goto-char 49) (delete-char 13) (goto-char 38) (insert "....") (goto-char 46) (insert ".") (goto-char 43) (widen) (narrow-to-region 74 53) (goto-char 60) (delete-char 10) (goto-char 53) (insert "..............") (goto-char 72) (insert "............") (goto-char 87) (delete-char 2) (goto-char 73) (insert "............") (goto-char 81) (insert "........") (goto-char 106) (insert "...") (goto-char 95) (widen) (narrow-to-region 77 39) (goto-char 43) (insert "..........") (goto-char 40) (insert "...............") (goto-char 101) (insert "") (goto-char 53) (insert "....") (goto-char 79) (delete-char 21) (goto-char 85) (insert "........") (goto-char 52) (delete-char 41) (goto-char 43) (insert ".....") (should (equal (test-overlay-regions) '((4 . 90) (5 . 57) (6 . 90) (29 . 57) (29 . 57) (33 . 57)))))) (ert-deftest overlay-autogenerated-test-27 nil (with-temp-buffer (insert "................................................................") (make-overlay 20 12 nil t nil) (make-overlay 3 10 nil t t) (make-overlay 11 53 nil t nil) (make-overlay 59 3 nil t nil) (make-overlay 28 19 nil t t) (make-overlay 16 30 nil t t) (make-overlay 39 19 nil t t) (make-overlay 33 50 nil t nil) (make-overlay 36 54 nil nil nil) (make-overlay 42 59 nil nil nil) (make-overlay 30 48 nil t nil) (make-overlay 20 13 nil nil t) (make-overlay 63 48 nil t nil) (make-overlay 48 12 nil t t) (make-overlay 64 50 nil nil nil) (make-overlay 7 7 nil nil nil) (goto-char 20) (widen) (narrow-to-region 21 54) (goto-char 40) (insert "..........") (goto-char 21) (delete-char 2) (goto-char 35) (widen) (narrow-to-region 70 11) (goto-char 45) (insert "...............") (goto-char 74) (insert ".") (goto-char 28) (widen) (narrow-to-region 77 67) (goto-char 72) (insert "..........") (goto-char 85) (delete-char 1) (goto-char 82) (widen) (narrow-to-region 83 86) (goto-char 83) (delete-char 0) (goto-char 86) (delete-char 0) (goto-char 86) (insert "...........") (goto-char 97) (insert ".......") (goto-char 103) (widen) (narrow-to-region 44 68) (goto-char 49) (insert "..") (goto-char 65) (insert ".............") (goto-char 59) (delete-char 0) (goto-char 57) (insert "........") (goto-char 55) (delete-char 30) (goto-char 45) (insert "...............") (goto-char 44) (insert "") (goto-char 62) (insert "............") (goto-char 63) (widen) (narrow-to-region 12 5) (goto-char 8) (delete-char 4) (goto-char 6) (delete-char 0) (goto-char 7) (insert "..........") (goto-char 15) (delete-char 0) (goto-char 16) (insert "............") (goto-char 20) (insert ".........") (goto-char 13) (insert "..") (goto-char 32) (insert "..............") (should (equal (test-overlay-regions) '((3 . 55) (3 . 173) (7 . 7)))))) (ert-deftest overlay-autogenerated-test-28 nil (with-temp-buffer (insert "................................................................") (make-overlay 59 48 nil t nil) (make-overlay 59 4 nil nil t) (make-overlay 45 35 nil t nil) (make-overlay 13 18 nil t t) (make-overlay 10 7 nil t t) (make-overlay 9 8 nil nil nil) (make-overlay 33 47 nil nil t) (make-overlay 1 57 nil t nil) (make-overlay 16 59 nil nil t) (make-overlay 43 58 nil nil t) (make-overlay 6 11 nil nil nil) (make-overlay 59 7 nil t nil) (make-overlay 3 57 nil t t) (make-overlay 61 35 nil nil nil) (make-overlay 57 8 nil nil nil) (make-overlay 5 32 nil t nil) (goto-char 18) (insert "............") (goto-char 43) (delete-char 2) (goto-char 38) (delete-char 26) (goto-char 42) (insert ".....") (goto-char 52) (insert "..........") (goto-char 45) (delete-char 11) (goto-char 33) (insert "....") (goto-char 23) (delete-char 14) (goto-char 33) (widen) (narrow-to-region 30 33) (goto-char 30) (delete-char 0) (goto-char 30) (insert "...........") (goto-char 30) (delete-char 7) (goto-char 30) (insert ".") (goto-char 32) (delete-char 4) (goto-char 34) (delete-char 0) (goto-char 34) (delete-char 0) (goto-char 32) (insert "...............") (goto-char 46) (insert ".........") (goto-char 45) (delete-char 3) (goto-char 49) (delete-char 2) (goto-char 42) (delete-char 2) (goto-char 32) (insert "..........") (goto-char 47) (insert "....") (goto-char 59) (insert ".......") (goto-char 35) (insert ".") (goto-char 45) (insert "..............") (goto-char 37) (insert "..") (goto-char 80) (insert ".....") (goto-char 30) (insert ".............") (goto-char 102) (insert "............") (goto-char 113) (insert "") (goto-char 66) (widen) (narrow-to-region 47 38) (should (equal (test-overlay-regions) '((1 . 45) (3 . 117) (4 . 121) (7 . 121) (8 . 45) (16 . 121) (28 . 121) (28 . 121) (28 . 121)))))) (ert-deftest overlay-autogenerated-test-29 nil (with-temp-buffer (insert "................................................................") (make-overlay 5 63 nil nil t) (make-overlay 20 28 nil t t) (make-overlay 58 53 nil t nil) (make-overlay 4 57 nil t t) (make-overlay 4 16 nil nil nil) (make-overlay 33 26 nil t nil) (make-overlay 9 32 nil t t) (make-overlay 11 8 nil nil nil) (make-overlay 59 35 nil nil t) (make-overlay 15 25 nil t t) (make-overlay 36 16 nil nil nil) (make-overlay 8 37 nil nil nil) (make-overlay 65 63 nil nil t) (make-overlay 3 20 nil nil t) (make-overlay 44 55 nil t t) (make-overlay 45 25 nil t nil) (goto-char 39) (insert "...") (goto-char 22) (insert "........") (goto-char 60) (insert ".........") (goto-char 17) (insert "............") (goto-char 13) (widen) (narrow-to-region 79 16) (goto-char 19) (delete-char 11) (goto-char 25) (insert "........") (goto-char 61) (insert "....") (goto-char 45) (widen) (narrow-to-region 73 66) (goto-char 71) (insert "............") (goto-char 81) (delete-char 2) (goto-char 73) (insert "..........") (goto-char 74) (insert "............") (goto-char 82) (delete-char 7) (goto-char 78) (delete-char 18) (goto-char 75) (insert ".........") (goto-char 66) (insert ".........") (goto-char 86) (delete-char 12) (goto-char 77) (widen) (narrow-to-region 23 55) (goto-char 43) (insert ".") (goto-char 50) (insert "..") (goto-char 25) (delete-char 18) (goto-char 33) (delete-char 7) (goto-char 26) (insert "........") (goto-char 29) (insert "...........") (goto-char 33) (insert "...") (goto-char 40) (insert "..........") (goto-char 26) (insert "") (goto-char 35) (insert ".") (goto-char 59) (insert ".") (goto-char 51) (insert "..") (goto-char 59) (insert ".............") (should (equal (test-overlay-regions) '((4 . 130) (5 . 136) (8 . 82) (9 . 82) (15 . 25) (16 . 82) (21 . 77) (25 . 105) (75 . 82)))))) (ert-deftest overlay-autogenerated-test-30 nil (with-temp-buffer (insert "................................................................") (make-overlay 27 65 nil t t) (make-overlay 39 51 nil t t) (make-overlay 53 2 nil nil nil) (make-overlay 3 17 nil nil t) (make-overlay 35 4 nil nil t) (make-overlay 65 53 nil t nil) (make-overlay 8 21 nil t t) (make-overlay 18 62 nil t t) (make-overlay 42 59 nil nil t) (make-overlay 12 37 nil t t) (make-overlay 64 31 nil t nil) (make-overlay 39 54 nil nil t) (make-overlay 41 24 nil t nil) (make-overlay 10 21 nil nil t) (make-overlay 49 15 nil t nil) (make-overlay 49 63 nil nil t) (goto-char 43) (insert "..........") (goto-char 44) (delete-char 29) (goto-char 32) (insert "..") (goto-char 13) (insert ".") (goto-char 42) (insert ".........") (goto-char 39) (insert "..........") (goto-char 15) (insert "............") (goto-char 58) (delete-char 9) (goto-char 63) (insert ".........") (goto-char 49) (insert ".") (goto-char 28) (delete-char 51) (goto-char 12) (delete-char 6) (goto-char 20) (delete-char 2) (goto-char 7) (widen) (narrow-to-region 2 9) (goto-char 5) (insert "...............") (goto-char 18) (delete-char 1) (goto-char 4) (insert ".............") (goto-char 13) (delete-char 22) (goto-char 12) (insert "") (goto-char 3) (insert ".............") (goto-char 22) (insert "...............") (goto-char 9) (insert "....") (goto-char 8) (insert "...........") (goto-char 6) (delete-char 34) (goto-char 21) (insert "....") (goto-char 14) (insert ".....") (goto-char 20) (insert ".......") (goto-char 34) (widen) (narrow-to-region 3 2) (goto-char 3) (delete-char 0) (goto-char 2) (insert "..............") (goto-char 15) (delete-char 2) (goto-char 11) (insert "......") (should (equal (test-overlay-regions) '((2 . 68)))))) (ert-deftest overlay-autogenerated-test-31 nil (with-temp-buffer (insert "................................................................") (make-overlay 54 64 nil nil nil) (make-overlay 49 12 nil nil t) (make-overlay 40 12 nil t nil) (make-overlay 17 38 nil nil nil) (make-overlay 21 36 nil t t) (make-overlay 8 38 nil t nil) (make-overlay 50 22 nil t nil) (make-overlay 65 15 nil nil t) (make-overlay 57 60 nil t t) (make-overlay 35 11 nil nil t) (make-overlay 49 44 nil nil t) (make-overlay 45 31 nil nil t) (make-overlay 51 24 nil t t) (make-overlay 20 14 nil nil nil) (make-overlay 6 18 nil t t) (make-overlay 25 3 nil nil nil) (goto-char 18) (delete-char 10) (goto-char 36) (delete-char 13) (goto-char 8) (delete-char 4) (goto-char 2) (delete-char 8) (goto-char 12) (delete-char 10) (goto-char 15) (delete-char 4) (goto-char 16) (insert ".........") (goto-char 17) (insert "...............") (goto-char 33) (delete-char 0) (goto-char 38) (delete-char 0) (goto-char 11) (insert "...........") (goto-char 8) (delete-char 14) (goto-char 32) (insert "........") (goto-char 40) (widen) (narrow-to-region 14 6) (goto-char 10) (delete-char 1) (goto-char 7) (widen) (narrow-to-region 18 39) (goto-char 36) (delete-char 1) (goto-char 34) (widen) (narrow-to-region 39 14) (goto-char 22) (widen) (narrow-to-region 25 21) (goto-char 23) (delete-char 2) (goto-char 23) (delete-char 0) (goto-char 23) (insert ".........") (goto-char 32) (delete-char 0) (goto-char 31) (insert ".........") (goto-char 32) (insert "...") (goto-char 30) (widen) (narrow-to-region 10 56) (goto-char 10) (insert ".........") (goto-char 38) (insert ".........") (goto-char 19) (insert "..") (goto-char 11) (insert "..............") (goto-char 66) (insert "...............") (goto-char 13) (insert "......") (should (equal (test-overlay-regions) '((2 . 41) (3 . 117) (6 . 41) (8 . 41) (9 . 41) (10 . 42) (41 . 42)))))) (ert-deftest overlay-autogenerated-test-32 nil (with-temp-buffer (insert "................................................................") (make-overlay 35 60 nil nil t) (make-overlay 45 46 nil nil nil) (make-overlay 47 11 nil nil t) (make-overlay 12 51 nil t nil) (make-overlay 61 17 nil t nil) (make-overlay 7 24 nil t nil) (make-overlay 36 37 nil nil t) (make-overlay 5 39 nil t t) (make-overlay 5 40 nil nil t) (make-overlay 38 40 nil t t) (make-overlay 47 45 nil t nil) (make-overlay 61 48 nil nil nil) (make-overlay 23 39 nil t t) (make-overlay 11 52 nil nil nil) (make-overlay 37 35 nil nil nil) (make-overlay 19 20 nil t nil) (goto-char 43) (insert "........") (goto-char 7) (insert "") (goto-char 28) (delete-char 41) (goto-char 3) (delete-char 17) (goto-char 2) (insert ".") (goto-char 7) (insert ".........") (goto-char 21) (delete-char 4) (goto-char 13) (delete-char 1) (goto-char 2) (insert "...............") (goto-char 7) (insert "") (goto-char 14) (insert ".....") (goto-char 16) (insert ".") (goto-char 10) (insert "..............") (goto-char 16) (delete-char 18) (goto-char 1) (delete-char 36) (goto-char 1) (delete-char 0) (goto-char 1) (delete-char 0) (goto-char 1) (insert ".............") (goto-char 9) (insert ".") (goto-char 14) (insert ".....") (goto-char 9) (delete-char 0) (goto-char 15) (delete-char 0) (goto-char 6) (delete-char 4) (goto-char 11) (delete-char 5) (goto-char 5) (insert "....") (goto-char 5) (insert ".....") (goto-char 12) (insert "") (goto-char 13) (insert ".......") (goto-char 14) (insert "......") (goto-char 9) (delete-char 3) (goto-char 17) (delete-char 0) (goto-char 7) (delete-char 12) (should (equal (test-overlay-regions) '((1 . 1) (1 . 1) (1 . 1) (1 . 1) (1 . 1) (1 . 1) (1 . 1) (1 . 1) (1 . 1) (1 . 18) (1 . 18) (1 . 18) (1 . 18) (18 . 18) (18 . 18) (18 . 18)))))) (ert-deftest overlay-autogenerated-test-33 nil (with-temp-buffer (insert "................................................................") (make-overlay 65 33 nil t nil) (make-overlay 45 54 nil t t) (make-overlay 17 38 nil t nil) (make-overlay 58 46 nil nil t) (make-overlay 21 36 nil t t) (make-overlay 31 63 nil nil t) (make-overlay 37 64 nil t t) (make-overlay 42 19 nil nil nil) (make-overlay 51 60 nil t nil) (make-overlay 47 15 nil t t) (make-overlay 57 47 nil nil nil) (make-overlay 40 45 nil nil nil) (make-overlay 44 47 nil t nil) (make-overlay 42 35 nil t nil) (make-overlay 1 65 nil nil t) (make-overlay 29 63 nil t nil) (goto-char 33) (insert "...........") (goto-char 56) (insert ".........") (goto-char 67) (insert "....") (goto-char 28) (delete-char 35) (goto-char 9) (insert "......") (goto-char 43) (delete-char 17) (goto-char 29) (insert ".......") (goto-char 20) (insert "....") (goto-char 53) (insert ".......") (goto-char 14) (widen) (narrow-to-region 38 57) (goto-char 51) (insert "") (goto-char 57) (insert ".......") (goto-char 64) (insert ".....") (goto-char 59) (delete-char 3) (goto-char 45) (delete-char 12) (goto-char 43) (insert "......") (goto-char 48) (insert "......") (goto-char 52) (insert "........") (goto-char 57) (delete-char 16) (goto-char 43) (delete-char 9) (goto-char 40) (insert "") (goto-char 39) (insert "..........") (goto-char 50) (widen) (narrow-to-region 31 27) (goto-char 27) (insert "..........") (goto-char 33) (delete-char 0) (goto-char 37) (insert "..") (goto-char 38) (delete-char 4) (goto-char 38) (insert "..........") (goto-char 45) (insert ".....") (goto-char 53) (insert "...") (goto-char 51) (insert ".") (goto-char 28) (insert "...") (should (equal (test-overlay-regions) '((1 . 93) (25 . 92) (41 . 88) (60 . 88)))))) (ert-deftest overlay-autogenerated-test-34 nil (with-temp-buffer (insert "................................................................") (make-overlay 2 63 nil nil t) (make-overlay 54 30 nil t nil) (make-overlay 21 57 nil t nil) (make-overlay 61 19 nil nil nil) (make-overlay 55 8 nil nil t) (make-overlay 14 51 nil nil nil) (make-overlay 33 13 nil t t) (make-overlay 36 25 nil t t) (make-overlay 22 21 nil nil t) (make-overlay 21 48 nil nil t) (make-overlay 36 7 nil nil t) (make-overlay 2 40 nil nil nil) (make-overlay 21 27 nil nil t) (make-overlay 26 2 nil nil nil) (make-overlay 60 43 nil nil nil) (make-overlay 12 50 nil t t) (goto-char 44) (delete-char 6) (goto-char 5) (insert "..") (goto-char 17) (insert "........") (goto-char 48) (insert "..") (goto-char 27) (delete-char 29) (goto-char 10) (delete-char 2) (goto-char 35) (insert ".............") (goto-char 20) (delete-char 0) (goto-char 6) (insert ".") (goto-char 9) (delete-char 6) (goto-char 38) (insert ".........") (goto-char 5) (insert ".........") (goto-char 10) (delete-char 20) (goto-char 6) (delete-char 6) (goto-char 14) (insert ".............") (goto-char 31) (delete-char 10) (goto-char 20) (widen) (narrow-to-region 27 39) (goto-char 34) (delete-char 5) (goto-char 32) (delete-char 1) (goto-char 27) (insert "..") (goto-char 28) (insert "........") (goto-char 39) (insert "........") (goto-char 38) (delete-char 7) (goto-char 44) (delete-char 0) (goto-char 30) (insert "...............") (goto-char 43) (insert "............") (goto-char 56) (delete-char 1) (goto-char 65) (delete-char 3) (goto-char 36) (insert ".........") (goto-char 74) (insert ".....") (goto-char 67) (delete-char 5) (goto-char 38) (insert "..") (should (equal (test-overlay-regions) '((2 . 80) (6 . 78)))))) (ert-deftest overlay-autogenerated-test-35 nil (with-temp-buffer (insert "................................................................") (make-overlay 38 16 nil nil nil) (make-overlay 19 22 nil t nil) (make-overlay 16 43 nil nil t) (make-overlay 27 5 nil nil nil) (make-overlay 43 34 nil t nil) (make-overlay 47 4 nil nil t) (make-overlay 1 47 nil nil t) (make-overlay 27 35 nil t nil) (make-overlay 41 41 nil nil t) (make-overlay 21 19 nil nil nil) (make-overlay 16 38 nil nil t) (make-overlay 33 39 nil t nil) (make-overlay 34 51 nil nil t) (make-overlay 45 36 nil t nil) (make-overlay 42 18 nil t t) (make-overlay 12 30 nil nil nil) (goto-char 18) (insert "") (goto-char 58) (delete-char 3) (goto-char 58) (delete-char 0) (goto-char 1) (insert ".......") (goto-char 48) (delete-char 17) (goto-char 39) (delete-char 6) (goto-char 33) (widen) (narrow-to-region 45 46) (goto-char 46) (insert "") (goto-char 46) (delete-char 0) (goto-char 46) (insert ".....") (goto-char 51) (widen) (narrow-to-region 17 26) (goto-char 25) (widen) (narrow-to-region 50 41) (goto-char 45) (insert "..............") (goto-char 59) (insert "...........") (goto-char 47) (delete-char 9) (goto-char 59) (insert "") (goto-char 46) (insert "") (goto-char 54) (delete-char 5) (goto-char 57) (widen) (narrow-to-region 57 31) (goto-char 42) (delete-char 2) (goto-char 52) (insert "....") (goto-char 44) (insert "..") (goto-char 44) (insert "...............") (goto-char 72) (delete-char 1) (goto-char 66) (delete-char 6) (goto-char 64) (delete-char 5) (goto-char 49) (delete-char 12) (goto-char 32) (insert "......") (goto-char 44) (delete-char 2) (goto-char 39) (delete-char 12) (goto-char 42) (insert "......") (goto-char 36) (widen) (narrow-to-region 14 47) (should (equal (test-overlay-regions) '((1 . 39) (11 . 39) (12 . 39) (19 . 39) (23 . 39) (23 . 39) (23 . 39) (25 . 39) (26 . 28) (26 . 29) (39 . 39) (39 . 39) (39 . 39) (39 . 39) (39 . 39) (39 . 39)))))) (ert-deftest overlay-autogenerated-test-36 nil (with-temp-buffer (insert "................................................................") (make-overlay 1 38 nil t t) (make-overlay 58 34 nil t nil) (make-overlay 6 33 nil nil t) (make-overlay 63 54 nil nil t) (make-overlay 54 54 nil t t) (make-overlay 21 61 nil nil nil) (make-overlay 64 55 nil nil t) (make-overlay 28 65 nil nil t) (make-overlay 32 51 nil t nil) (make-overlay 36 38 nil nil nil) (make-overlay 35 21 nil nil nil) (make-overlay 65 48 nil nil nil) (make-overlay 32 27 nil nil t) (make-overlay 27 55 nil t t) (make-overlay 30 22 nil t nil) (make-overlay 14 58 nil t nil) (goto-char 40) (delete-char 7) (goto-char 42) (insert "......") (goto-char 11) (widen) (narrow-to-region 64 9) (goto-char 21) (delete-char 23) (goto-char 24) (insert "...") (goto-char 13) (insert "..........") (goto-char 12) (delete-char 5) (goto-char 10) (delete-char 0) (goto-char 21) (widen) (narrow-to-region 9 5) (goto-char 6) (delete-char 0) (goto-char 9) (delete-char 0) (goto-char 9) (delete-char 0) (goto-char 7) (insert "............") (goto-char 9) (insert "...") (goto-char 18) (insert ".") (goto-char 23) (delete-char 1) (goto-char 9) (insert "....") (goto-char 6) (insert ".....") (goto-char 23) (widen) (narrow-to-region 28 1) (goto-char 6) (insert "...........") (goto-char 30) (delete-char 8) (goto-char 2) (insert ".") (goto-char 18) (insert "......") (goto-char 5) (delete-char 9) (goto-char 5) (delete-char 20) (goto-char 4) (delete-char 3) (goto-char 3) (delete-char 2) (goto-char 3) (delete-char 0) (goto-char 1) (insert "......") (goto-char 8) (widen) (narrow-to-region 39 2) (goto-char 13) (delete-char 12) (goto-char 24) (delete-char 0) (should (equal (test-overlay-regions) '((7 . 20) (9 . 20) (13 . 36) (20 . 20) (20 . 20) (20 . 20) (20 . 20) (20 . 29) (20 . 33) (20 . 36) (20 . 39) (20 . 43) (20 . 43)))))) (ert-deftest overlay-autogenerated-test-37 nil (with-temp-buffer (insert "................................................................") (make-overlay 26 30 nil nil nil) (make-overlay 55 50 nil nil t) (make-overlay 43 54 nil nil t) (make-overlay 53 48 nil nil nil) (make-overlay 37 51 nil nil t) (make-overlay 15 30 nil nil nil) (make-overlay 2 24 nil t t) (make-overlay 56 61 nil t nil) (make-overlay 65 46 nil t nil) (make-overlay 28 47 nil t nil) (make-overlay 21 24 nil t t) (make-overlay 17 13 nil t t) (make-overlay 7 44 nil t nil) (make-overlay 28 63 nil nil nil) (make-overlay 22 16 nil t t) (make-overlay 26 44 nil t t) (goto-char 57) (delete-char 6) (goto-char 42) (insert ".....") (goto-char 63) (insert ".............") (goto-char 17) (insert "") (goto-char 57) (insert "...........") (goto-char 3) (delete-char 47) (goto-char 15) (insert ".............") (goto-char 28) (insert "") (goto-char 17) (delete-char 31) (goto-char 7) (delete-char 16) (goto-char 2) (insert "...........") (goto-char 2) (insert "..") (goto-char 18) (widen) (narrow-to-region 20 8) (goto-char 13) (widen) (narrow-to-region 12 10) (goto-char 10) (delete-char 1) (goto-char 11) (delete-char 0) (goto-char 10) (insert "...") (goto-char 11) (delete-char 0) (goto-char 13) (insert "..") (goto-char 16) (delete-char 0) (goto-char 10) (delete-char 2) (goto-char 11) (insert ".....") (goto-char 16) (widen) (narrow-to-region 6 13) (goto-char 10) (insert "..") (goto-char 6) (delete-char 6) (goto-char 8) (insert "...............") (goto-char 21) (delete-char 0) (goto-char 21) (widen) (narrow-to-region 36 11) (goto-char 12) (insert "...............") (goto-char 19) (insert ".......") (goto-char 56) (delete-char 2) (goto-char 42) (delete-char 11) (should (equal (test-overlay-regions) '((44 . 45)))))) (ert-deftest overlay-autogenerated-test-38 nil (with-temp-buffer (insert "................................................................") (make-overlay 29 13 nil t t) (make-overlay 19 28 nil nil t) (make-overlay 47 33 nil nil nil) (make-overlay 8 44 nil t nil) (make-overlay 48 4 nil t nil) (make-overlay 8 20 nil t t) (make-overlay 38 31 nil nil t) (make-overlay 17 65 nil nil t) (make-overlay 49 31 nil nil nil) (make-overlay 39 19 nil nil t) (make-overlay 40 49 nil t t) (make-overlay 24 16 nil t t) (make-overlay 4 41 nil t nil) (make-overlay 61 42 nil t nil) (make-overlay 46 11 nil nil nil) (make-overlay 1 43 nil nil t) (goto-char 62) (delete-char 2) (goto-char 25) (widen) (narrow-to-region 30 38) (goto-char 37) (delete-char 1) (goto-char 37) (insert "...........") (goto-char 41) (delete-char 3) (goto-char 39) (delete-char 5) (goto-char 39) (widen) (narrow-to-region 31 9) (goto-char 11) (insert "..............") (goto-char 9) (widen) (narrow-to-region 62 30) (goto-char 32) (widen) (narrow-to-region 17 48) (goto-char 39) (delete-char 7) (goto-char 24) (delete-char 8) (goto-char 19) (insert "") (goto-char 25) (delete-char 5) (goto-char 28) (delete-char 0) (goto-char 22) (widen) (narrow-to-region 52 35) (goto-char 49) (delete-char 0) (goto-char 49) (delete-char 3) (goto-char 48) (insert "...........") (goto-char 37) (delete-char 23) (goto-char 36) (delete-char 0) (goto-char 35) (insert "....") (goto-char 35) (insert "..") (goto-char 39) (delete-char 4) (goto-char 39) (delete-char 0) (goto-char 36) (delete-char 3) (goto-char 36) (delete-char 0) (goto-char 36) (delete-char 0) (goto-char 36) (delete-char 0) (goto-char 36) (insert ".....") (goto-char 38) (delete-char 1) (goto-char 35) (delete-char 3) (should (equal (test-overlay-regions) '((1 . 37) (24 . 44) (25 . 37)))))) (ert-deftest overlay-autogenerated-test-39 nil (with-temp-buffer (insert "................................................................") (make-overlay 15 49 nil t t) (make-overlay 27 20 nil t nil) (make-overlay 55 50 nil t nil) (make-overlay 17 5 nil t t) (make-overlay 26 56 nil nil t) (make-overlay 42 11 nil t t) (make-overlay 24 35 nil nil t) (make-overlay 47 45 nil t t) (make-overlay 37 12 nil nil t) (make-overlay 17 25 nil t nil) (make-overlay 32 53 nil nil nil) (make-overlay 20 34 nil nil t) (make-overlay 56 58 nil nil t) (make-overlay 42 31 nil nil t) (make-overlay 22 55 nil t t) (make-overlay 55 11 nil t nil) (goto-char 16) (insert ".............") (goto-char 30) (insert ".") (goto-char 12) (delete-char 56) (goto-char 9) (insert ".............") (goto-char 6) (insert "....") (goto-char 19) (delete-char 19) (goto-char 19) (insert "...............") (goto-char 13) (delete-char 21) (goto-char 7) (delete-char 0) (goto-char 14) (widen) (narrow-to-region 5 6) (goto-char 5) (delete-char 0) (goto-char 6) (insert "......") (goto-char 10) (delete-char 0) (goto-char 7) (widen) (narrow-to-region 2 6) (goto-char 2) (insert "..........") (goto-char 2) (delete-char 9) (goto-char 7) (insert "...") (goto-char 9) (insert "...") (goto-char 10) (insert "......") (goto-char 4) (delete-char 14) (goto-char 4) (insert ".") (goto-char 5) (insert "..............") (goto-char 13) (insert "......") (goto-char 10) (insert "......") (goto-char 20) (insert "............") (goto-char 16) (widen) (narrow-to-region 3 32) (goto-char 18) (insert "..") (goto-char 6) (insert "......") (goto-char 38) (delete-char 0) (goto-char 31) (insert "............") (goto-char 28) (insert "") (goto-char 9) (delete-char 23) (should (equal (test-overlay-regions) 'nil)))) (ert-deftest overlay-autogenerated-test-40 nil (with-temp-buffer (insert "................................................................") (make-overlay 52 3 nil t nil) (make-overlay 35 41 nil t t) (make-overlay 4 2 nil t nil) (make-overlay 51 48 nil nil t) (make-overlay 44 57 nil t t) (make-overlay 13 32 nil nil nil) (make-overlay 46 29 nil t nil) (make-overlay 28 13 nil t nil) (make-overlay 10 65 nil t t) (make-overlay 41 48 nil nil t) (make-overlay 36 44 nil nil t) (make-overlay 29 61 nil t nil) (make-overlay 25 24 nil nil t) (make-overlay 22 45 nil nil t) (make-overlay 37 55 nil nil t) (make-overlay 36 39 nil nil nil) (goto-char 16) (delete-char 48) (goto-char 17) (delete-char 0) (goto-char 7) (insert "..............") (goto-char 30) (insert "........") (goto-char 11) (insert "..........") (goto-char 5) (delete-char 14) (goto-char 19) (insert ".") (goto-char 27) (insert "..") (goto-char 35) (delete-char 1) (goto-char 29) (delete-char 0) (goto-char 33) (delete-char 2) (goto-char 33) (insert "..") (goto-char 28) (insert ".........") (goto-char 30) (delete-char 4) (goto-char 40) (delete-char 1) (goto-char 15) (widen) (narrow-to-region 40 8) (goto-char 10) (delete-char 13) (goto-char 11) (delete-char 5) (goto-char 15) (insert "........") (goto-char 26) (delete-char 4) (goto-char 11) (delete-char 1) (goto-char 14) (insert "............") (goto-char 33) (insert ".") (goto-char 10) (insert "...") (goto-char 30) (widen) (narrow-to-region 28 9) (goto-char 27) (delete-char 0) (goto-char 27) (delete-char 1) (goto-char 26) (insert "..") (goto-char 27) (insert "..") (goto-char 20) (delete-char 5) (goto-char 12) (widen) (narrow-to-region 40 30) (goto-char 37) (delete-char 3) (should (equal (test-overlay-regions) '((13 . 37) (14 . 37) (14 . 37) (14 . 37) (14 . 37) (14 . 37) (14 . 37) (37 . 37) (37 . 37)))))) (ert-deftest overlay-autogenerated-test-41 nil (with-temp-buffer (insert "................................................................") (make-overlay 28 48 nil nil t) (make-overlay 30 11 nil nil t) (make-overlay 7 12 nil t nil) (make-overlay 65 35 nil t nil) (make-overlay 22 61 nil t nil) (make-overlay 37 42 nil nil nil) (make-overlay 33 38 nil nil t) (make-overlay 48 45 nil t t) (make-overlay 45 62 nil t nil) (make-overlay 63 7 nil nil t) (make-overlay 23 42 nil t nil) (make-overlay 21 4 nil t nil) (make-overlay 64 41 nil t nil) (make-overlay 20 33 nil t t) (make-overlay 41 26 nil t nil) (make-overlay 43 31 nil t t) (goto-char 55) (delete-char 3) (goto-char 12) (insert "..") (goto-char 62) (insert "") (goto-char 24) (delete-char 2) (goto-char 41) (insert "............") (goto-char 2) (insert ".") (goto-char 55) (insert "........") (goto-char 67) (delete-char 6) (goto-char 58) (delete-char 10) (goto-char 29) (insert "") (goto-char 6) (widen) (narrow-to-region 44 45) (goto-char 44) (delete-char 1) (goto-char 44) (widen) (narrow-to-region 24 37) (goto-char 30) (delete-char 7) (goto-char 27) (insert "......") (goto-char 35) (delete-char 0) (goto-char 32) (insert "...............") (goto-char 37) (delete-char 9) (goto-char 40) (insert "..........") (goto-char 35) (insert "......") (goto-char 25) (delete-char 7) (goto-char 40) (delete-char 4) (goto-char 25) (delete-char 14) (goto-char 28) (insert "") (goto-char 28) (widen) (narrow-to-region 17 43) (goto-char 20) (insert "..........") (goto-char 22) (delete-char 2) (goto-char 48) (insert "............") (goto-char 47) (insert ".........") (goto-char 69) (widen) (narrow-to-region 52 25) (goto-char 26) (insert "......") (goto-char 53) (insert "..") (should (equal (test-overlay-regions) '((5 . 38) (8 . 97) (12 . 47) (37 . 47) (39 . 52) (39 . 87) (39 . 95) (46 . 90) (47 . 49) (47 . 90) (47 . 99) (48 . 87)))))) (ert-deftest overlay-autogenerated-test-42 nil (with-temp-buffer (insert "................................................................") (make-overlay 20 23 nil nil nil) (make-overlay 45 51 nil t nil) (make-overlay 34 58 nil t nil) (make-overlay 27 11 nil nil nil) (make-overlay 14 8 nil t t) (make-overlay 64 43 nil t nil) (make-overlay 61 56 nil nil t) (make-overlay 28 14 nil t nil) (make-overlay 21 46 nil t t) (make-overlay 30 34 nil t t) (make-overlay 47 40 nil nil nil) (make-overlay 5 44 nil t t) (make-overlay 11 45 nil nil nil) (make-overlay 65 8 nil nil t) (make-overlay 47 54 nil t t) (make-overlay 37 57 nil t nil) (goto-char 11) (insert "....") (goto-char 65) (delete-char 0) (goto-char 56) (delete-char 4) (goto-char 11) (delete-char 2) (goto-char 23) (insert ".............") (goto-char 2) (insert "............") (goto-char 84) (delete-char 1) (goto-char 10) (insert "..............") (goto-char 19) (insert "............") (goto-char 69) (delete-char 6) (goto-char 15) (insert "........") (goto-char 104) (insert "") (goto-char 94) (delete-char 11) (goto-char 66) (insert ".....") (goto-char 67) (insert "") (goto-char 53) (delete-char 22) (goto-char 42) (insert ".") (goto-char 38) (delete-char 13) (goto-char 27) (insert "......") (goto-char 16) (insert "............") (goto-char 71) (widen) (narrow-to-region 59 15) (goto-char 46) (insert "..") (goto-char 20) (widen) (narrow-to-region 95 93) (goto-char 94) (insert ".............") (goto-char 103) (widen) (narrow-to-region 97 7) (goto-char 93) (insert "....") (goto-char 85) (insert "...........") (goto-char 69) (delete-char 24) (goto-char 87) (insert ".............") (goto-char 7) (delete-char 28) (goto-char 65) (delete-char 8) (goto-char 48) (insert "......") (should (equal (test-overlay-regions) '((31 . 44) (33 . 33) (33 . 41) (33 . 41) (33 . 41) (33 . 41) (33 . 82) (40 . 44) (41 . 41) (41 . 41) (41 . 47) (41 . 48) (44 . 45) (44 . 46) (44 . 63) (46 . 57)))))) (ert-deftest overlay-autogenerated-test-43 nil (with-temp-buffer (insert "................................................................") (make-overlay 8 53 nil t nil) (make-overlay 11 50 nil t nil) (make-overlay 1 30 nil nil nil) (make-overlay 54 15 nil t t) (make-overlay 22 30 nil nil nil) (make-overlay 1 33 nil nil nil) (make-overlay 18 15 nil t nil) (make-overlay 43 39 nil nil t) (make-overlay 43 17 nil t nil) (make-overlay 2 29 nil t nil) (make-overlay 57 42 nil t nil) (make-overlay 40 1 nil nil nil) (make-overlay 8 64 nil nil nil) (make-overlay 64 15 nil nil nil) (make-overlay 9 11 nil nil t) (make-overlay 40 21 nil t nil) (goto-char 5) (delete-char 37) (goto-char 25) (delete-char 2) (goto-char 17) (insert "...........") (goto-char 19) (widen) (narrow-to-region 20 20) (goto-char 20) (delete-char 0) (goto-char 20) (insert "..........") (goto-char 24) (delete-char 5) (goto-char 24) (insert "...") (goto-char 28) (widen) (narrow-to-region 20 36) (goto-char 26) (delete-char 2) (goto-char 31) (insert ".............") (goto-char 22) (insert ".....") (goto-char 38) (delete-char 0) (goto-char 31) (delete-char 4) (goto-char 27) (insert "...") (goto-char 23) (widen) (narrow-to-region 37 20) (goto-char 22) (insert ".............") (goto-char 33) (insert "......") (goto-char 43) (insert "............") (goto-char 59) (insert ".......") (goto-char 25) (delete-char 26) (goto-char 49) (insert ".........") (goto-char 50) (insert ".......") (goto-char 39) (widen) (narrow-to-region 54 86) (goto-char 64) (insert "...............") (goto-char 83) (insert "............") (goto-char 70) (insert "........") (goto-char 58) (insert "..............") (goto-char 83) (insert "............") (goto-char 83) (insert "..........") (goto-char 69) (delete-char 75) (goto-char 75) (delete-char 3) (should (equal (test-overlay-regions) '((5 . 75) (5 . 75) (5 . 80) (5 . 80)))))) (ert-deftest overlay-autogenerated-test-44 nil (with-temp-buffer (insert "................................................................") (make-overlay 8 48 nil nil t) (make-overlay 52 38 nil nil nil) (make-overlay 3 63 nil nil nil) (make-overlay 44 15 nil nil t) (make-overlay 27 44 nil nil t) (make-overlay 43 9 nil nil t) (make-overlay 11 27 nil t nil) (make-overlay 36 41 nil nil t) (make-overlay 23 25 nil t t) (make-overlay 19 60 nil t t) (make-overlay 11 55 nil t nil) (make-overlay 59 2 nil t nil) (make-overlay 32 64 nil t nil) (make-overlay 15 8 nil nil nil) (make-overlay 61 15 nil nil nil) (make-overlay 64 30 nil t t) (goto-char 42) (delete-char 20) (goto-char 44) (delete-char 1) (goto-char 43) (insert "...........") (goto-char 43) (delete-char 1) (goto-char 28) (delete-char 8) (goto-char 37) (delete-char 9) (goto-char 4) (delete-char 30) (goto-char 6) (delete-char 0) (goto-char 7) (delete-char 0) (goto-char 2) (delete-char 2) (goto-char 5) (delete-char 0) (goto-char 5) (delete-char 0) (goto-char 2) (insert ".....") (goto-char 10) (insert "...........") (goto-char 21) (insert "...") (goto-char 10) (delete-char 13) (goto-char 9) (insert "..........") (goto-char 16) (delete-char 1) (goto-char 16) (delete-char 4) (goto-char 16) (delete-char 0) (goto-char 14) (delete-char 1) (goto-char 3) (widen) (narrow-to-region 2 9) (goto-char 2) (insert "") (goto-char 2) (insert ".............") (goto-char 17) (insert "....") (goto-char 12) (insert "........") (goto-char 8) (widen) (narrow-to-region 32 23) (goto-char 29) (insert ".....") (goto-char 35) (delete-char 2) (goto-char 27) (delete-char 7) (goto-char 23) (widen) (narrow-to-region 4 14) (goto-char 8) (insert "...............") (should (equal (test-overlay-regions) '((2 . 43) (2 . 43) (2 . 43) (2 . 43) (2 . 43) (2 . 44)))))) (ert-deftest overlay-autogenerated-test-45 nil (with-temp-buffer (insert "................................................................") (make-overlay 15 48 nil nil nil) (make-overlay 1 47 nil t nil) (make-overlay 43 4 nil t t) (make-overlay 9 45 nil t t) (make-overlay 1 25 nil t t) (make-overlay 5 46 nil t t) (make-overlay 7 14 nil t nil) (make-overlay 1 53 nil nil t) (make-overlay 13 41 nil t nil) (make-overlay 5 31 nil t t) (make-overlay 26 10 nil nil nil) (make-overlay 56 37 nil nil nil) (make-overlay 23 15 nil t nil) (make-overlay 62 30 nil t t) (make-overlay 2 35 nil t t) (make-overlay 46 41 nil nil nil) (goto-char 65) (delete-char 0) (goto-char 55) (insert "...........") (goto-char 22) (insert "") (goto-char 73) (delete-char 3) (goto-char 43) (widen) (narrow-to-region 54 63) (goto-char 56) (insert "......") (goto-char 61) (delete-char 3) (goto-char 65) (insert "......") (goto-char 66) (insert ".....") (goto-char 62) (insert ".") (goto-char 74) (insert ".........") (goto-char 76) (delete-char 4) (goto-char 56) (widen) (narrow-to-region 2 46) (goto-char 43) (insert "...........") (goto-char 20) (delete-char 4) (goto-char 38) (delete-char 7) (goto-char 25) (delete-char 21) (goto-char 12) (insert ".........") (goto-char 19) (widen) (narrow-to-region 72 61) (goto-char 63) (insert "") (goto-char 65) (delete-char 4) (goto-char 61) (delete-char 5) (goto-char 63) (delete-char 0) (goto-char 63) (delete-char 0) (goto-char 62) (delete-char 0) (goto-char 61) (insert "............") (goto-char 72) (insert "..............") (goto-char 62) (delete-char 7) (goto-char 71) (delete-char 5) (goto-char 75) (widen) (narrow-to-region 29 8) (goto-char 17) (delete-char 2) (goto-char 27) (insert "........") (should (equal (test-overlay-regions) '((1 . 36) (1 . 41) (1 . 47) (2 . 40) (4 . 40) (5 . 40) (5 . 40) (7 . 21) (9 . 40) (10 . 37) (20 . 40) (22 . 27) (22 . 42)))))) (ert-deftest overlay-autogenerated-test-46 nil (with-temp-buffer (insert "................................................................") (make-overlay 2 43 nil nil t) (make-overlay 44 40 nil nil t) (make-overlay 49 14 nil nil t) (make-overlay 6 55 nil nil nil) (make-overlay 13 52 nil t t) (make-overlay 40 54 nil t nil) (make-overlay 51 41 nil nil t) (make-overlay 7 28 nil nil t) (make-overlay 10 47 nil nil t) (make-overlay 63 21 nil t nil) (make-overlay 4 55 nil nil nil) (make-overlay 52 58 nil t nil) (make-overlay 62 11 nil t t) (make-overlay 22 49 nil t nil) (make-overlay 23 65 nil nil nil) (make-overlay 50 33 nil nil t) (goto-char 22) (insert "..............") (goto-char 12) (insert "....") (goto-char 25) (delete-char 16) (goto-char 14) (delete-char 53) (goto-char 2) (insert "............") (goto-char 20) (delete-char 5) (goto-char 11) (delete-char 7) (goto-char 9) (widen) (narrow-to-region 11 7) (goto-char 8) (insert "...............") (goto-char 12) (delete-char 4) (goto-char 21) (insert "...") (goto-char 20) (delete-char 5) (goto-char 7) (delete-char 3) (goto-char 16) (delete-char 0) (goto-char 12) (delete-char 1) (goto-char 15) (delete-char 0) (goto-char 7) (insert "..............") (goto-char 17) (insert "...........") (goto-char 15) (insert "............") (goto-char 20) (delete-char 5) (goto-char 7) (insert "....") (goto-char 37) (delete-char 7) (goto-char 8) (insert "..........") (goto-char 47) (insert ".............") (goto-char 65) (insert ".......") (goto-char 39) (delete-char 26) (goto-char 14) (delete-char 2) (goto-char 27) (insert ".............") (goto-char 17) (widen) (narrow-to-region 54 32) (goto-char 40) (widen) (narrow-to-region 10 3) (goto-char 7) (insert "........") (goto-char 13) (insert "..............") (should (equal (test-overlay-regions) '((2 . 85)))))) (ert-deftest overlay-autogenerated-test-47 nil (with-temp-buffer (insert "................................................................") (make-overlay 58 62 nil t nil) (make-overlay 14 38 nil nil nil) (make-overlay 63 44 nil t t) (make-overlay 41 41 nil nil t) (make-overlay 19 39 nil nil nil) (make-overlay 10 49 nil t t) (make-overlay 56 38 nil t t) (make-overlay 23 38 nil nil t) (make-overlay 1 64 nil nil t) (make-overlay 21 3 nil t nil) (make-overlay 1 1 nil nil t) (make-overlay 27 61 nil nil nil) (make-overlay 29 59 nil nil nil) (make-overlay 37 30 nil t nil) (make-overlay 47 21 nil nil t) (make-overlay 34 26 nil t nil) (goto-char 6) (delete-char 44) (goto-char 8) (delete-char 0) (goto-char 8) (insert "....") (goto-char 17) (delete-char 2) (goto-char 12) (insert "...") (goto-char 20) (insert "") (goto-char 2) (delete-char 20) (goto-char 1) (insert ".........") (goto-char 7) (insert ".............") (goto-char 27) (delete-char 0) (goto-char 15) (insert "..........") (goto-char 36) (insert "..............") (goto-char 26) (insert "..............") (goto-char 63) (insert "...........") (goto-char 9) (insert "............") (goto-char 71) (delete-char 17) (goto-char 36) (insert "....") (goto-char 45) (delete-char 31) (goto-char 28) (delete-char 8) (goto-char 10) (delete-char 16) (goto-char 14) (delete-char 4) (goto-char 16) (delete-char 0) (goto-char 15) (insert "") (goto-char 14) (delete-char 1) (goto-char 10) (delete-char 2) (goto-char 6) (delete-char 0) (goto-char 1) (insert ".........") (goto-char 23) (insert "......") (goto-char 25) (insert "..........") (goto-char 25) (widen) (narrow-to-region 10 30) (goto-char 21) (delete-char 1) (goto-char 17) (insert "..........") (should (equal (test-overlay-regions) '((1 . 48) (1 . 48) (32 . 32) (32 . 32) (32 . 32) (32 . 32) (32 . 32) (32 . 32) (32 . 32) (32 . 32) (32 . 48) (32 . 48) (32 . 48)))))) (ert-deftest overlay-autogenerated-test-48 nil (with-temp-buffer (insert "................................................................") (make-overlay 1 11 nil nil nil) (make-overlay 35 29 nil t t) (make-overlay 24 46 nil nil t) (make-overlay 15 43 nil nil t) (make-overlay 51 49 nil t t) (make-overlay 25 43 nil t nil) (make-overlay 23 59 nil nil nil) (make-overlay 10 4 nil t nil) (make-overlay 40 45 nil nil nil) (make-overlay 42 43 nil nil t) (make-overlay 20 38 nil t nil) (make-overlay 17 49 nil nil nil) (make-overlay 9 25 nil nil t) (make-overlay 13 19 nil nil nil) (make-overlay 44 31 nil t nil) (make-overlay 12 65 nil nil t) (goto-char 59) (widen) (narrow-to-region 28 14) (goto-char 26) (insert "...") (goto-char 30) (delete-char 1) (goto-char 23) (insert "...") (goto-char 27) (widen) (narrow-to-region 45 67) (goto-char 50) (insert "...............") (goto-char 59) (insert "..............") (goto-char 55) (insert ".............") (goto-char 106) (delete-char 0) (goto-char 97) (delete-char 10) (goto-char 67) (delete-char 16) (goto-char 76) (insert "..............") (goto-char 71) (insert ".............") (goto-char 110) (delete-char 0) (goto-char 56) (delete-char 38) (goto-char 61) (delete-char 10) (goto-char 56) (delete-char 5) (goto-char 49) (insert ".......") (goto-char 62) (insert "...") (goto-char 54) (insert "..........") (goto-char 47) (delete-char 10) (goto-char 47) (delete-char 20) (goto-char 46) (insert ".............") (goto-char 56) (insert "...........") (goto-char 70) (delete-char 1) (goto-char 62) (widen) (narrow-to-region 50 64) (goto-char 60) (insert "..") (goto-char 55) (delete-char 6) (goto-char 60) (insert ".............") (goto-char 61) (delete-char 9) (goto-char 64) (delete-char 0) (goto-char 53) (widen) (narrow-to-region 15 62) (should (equal (test-overlay-regions) '((9 . 28) (12 . 73) (13 . 19) (15 . 70) (17 . 70) (20 . 43) (23 . 70) (27 . 70) (28 . 70) (34 . 40) (36 . 70) (45 . 70)))))) (ert-deftest overlay-autogenerated-test-49 nil (with-temp-buffer (insert "................................................................") (make-overlay 24 10 nil nil t) (make-overlay 53 23 nil t nil) (make-overlay 53 9 nil nil t) (make-overlay 65 64 nil t t) (make-overlay 48 2 nil nil t) (make-overlay 12 58 nil nil t) (make-overlay 64 64 nil nil nil) (make-overlay 26 13 nil t t) (make-overlay 46 26 nil nil t) (make-overlay 28 59 nil t t) (make-overlay 33 52 nil nil nil) (make-overlay 39 8 nil t t) (make-overlay 9 59 nil t t) (make-overlay 50 45 nil nil t) (make-overlay 41 53 nil nil t) (make-overlay 51 51 nil t nil) (goto-char 61) (insert "..............") (goto-char 19) (widen) (narrow-to-region 10 65) (goto-char 65) (delete-char 0) (goto-char 11) (insert "...............") (goto-char 77) (delete-char 0) (goto-char 51) (insert "...") (goto-char 75) (insert ".....") (goto-char 77) (delete-char 11) (goto-char 45) (delete-char 0) (goto-char 24) (widen) (narrow-to-region 33 52) (goto-char 46) (insert "..............") (goto-char 46) (insert "..........") (goto-char 39) (widen) (narrow-to-region 46 77) (goto-char 77) (insert "..............") (goto-char 54) (insert ".......") (goto-char 87) (insert ".") (goto-char 70) (delete-char 16) (goto-char 79) (delete-char 0) (goto-char 73) (widen) (narrow-to-region 74 100) (goto-char 91) (insert ".............") (goto-char 80) (delete-char 11) (goto-char 82) (insert "......") (goto-char 108) (delete-char 0) (goto-char 104) (insert ".....") (goto-char 100) (delete-char 1) (goto-char 90) (insert ".............") (goto-char 99) (insert ".............") (goto-char 124) (insert "..............") (goto-char 114) (insert "....") (goto-char 134) (delete-char 0) (goto-char 89) (delete-char 65) (goto-char 75) (delete-char 16) (should (equal (test-overlay-regions) '((2 . 75) (8 . 75) (9 . 76) (9 . 82) (27 . 82) (38 . 76) (41 . 75) (43 . 82) (70 . 75)))))) (ert-deftest overlay-autogenerated-test-50 nil (with-temp-buffer (insert "................................................................") (make-overlay 29 53 nil t t) (make-overlay 65 64 nil nil nil) (make-overlay 3 31 nil nil t) (make-overlay 45 59 nil t nil) (make-overlay 60 37 nil t t) (make-overlay 7 5 nil t t) (make-overlay 37 24 nil nil nil) (make-overlay 45 20 nil nil nil) (make-overlay 33 42 nil nil t) (make-overlay 47 57 nil t nil) (make-overlay 14 49 nil t t) (make-overlay 14 30 nil t nil) (make-overlay 21 40 nil t t) (make-overlay 5 45 nil t t) (make-overlay 59 40 nil t t) (make-overlay 37 52 nil nil nil) (goto-char 48) (insert "") (goto-char 7) (insert ".........") (goto-char 31) (insert "...........") (goto-char 41) (delete-char 7) (goto-char 21) (delete-char 11) (goto-char 41) (widen) (narrow-to-region 51 53) (goto-char 52) (insert ".....") (goto-char 55) (widen) (narrow-to-region 18 24) (goto-char 23) (widen) (narrow-to-region 39 38) (goto-char 38) (insert ".............") (goto-char 41) (insert "......") (goto-char 38) (insert "..............") (goto-char 52) (insert "...............") (goto-char 78) (delete-char 5) (goto-char 50) (insert "..........") (goto-char 50) (delete-char 3) (goto-char 85) (widen) (narrow-to-region 86 1) (goto-char 5) (insert "....") (goto-char 69) (insert "...........") (goto-char 94) (insert "......") (goto-char 98) (delete-char 7) (goto-char 46) (insert "...............") (goto-char 79) (insert "............") (goto-char 89) (insert "") (goto-char 14) (delete-char 63) (goto-char 20) (insert ".........") (goto-char 34) (insert "...") (goto-char 53) (delete-char 14) (goto-char 6) (widen) (narrow-to-region 6 52) (goto-char 42) (insert "...........") (goto-char 40) (insert ".......") (goto-char 46) (widen) (narrow-to-region 1 68) (should (equal (test-overlay-regions) '((3 . 14) (9 . 14) (9 . 91) (14 . 14) (14 . 83) (14 . 86) (14 . 88) (14 . 91) (14 . 95) (14 . 104)))))) (ert-deftest overlay-autogenerated-test-51 nil (with-temp-buffer (insert "................................................................") (make-overlay 14 5 nil t nil) (make-overlay 62 34 nil nil t) (make-overlay 7 62 nil nil t) (make-overlay 23 12 nil t t) (make-overlay 16 4 nil nil nil) (make-overlay 24 15 nil nil nil) (make-overlay 6 6 nil t t) (make-overlay 25 64 nil t t) (make-overlay 23 6 nil t t) (make-overlay 55 64 nil nil nil) (make-overlay 8 62 nil nil t) (make-overlay 65 65 nil nil nil) (make-overlay 57 51 nil t t) (make-overlay 35 8 nil t nil) (make-overlay 55 13 nil nil t) (make-overlay 60 62 nil nil t) (goto-char 12) (insert "..") (goto-char 66) (insert "............") (goto-char 32) (insert "..") (goto-char 27) (insert ".........") (goto-char 8) (insert ".............") (goto-char 79) (insert ".") (goto-char 47) (insert "....") (goto-char 49) (insert "...") (goto-char 81) (insert "....") (goto-char 112) (delete-char 0) (goto-char 97) (insert ".....") (goto-char 109) (delete-char 5) (goto-char 20) (insert ".....") (goto-char 59) (delete-char 33) (goto-char 87) (insert ".............") (goto-char 98) (insert "....") (goto-char 22) (delete-char 36) (goto-char 45) (insert "..............") (goto-char 42) (delete-char 29) (goto-char 51) (widen) (narrow-to-region 39 41) (goto-char 39) (delete-char 2) (goto-char 39) (insert ".............") (goto-char 51) (insert "......") (goto-char 52) (insert "...............") (goto-char 56) (widen) (narrow-to-region 59 20) (goto-char 56) (insert "............") (goto-char 57) (insert ".") (goto-char 37) (delete-char 12) (goto-char 39) (delete-char 11) (goto-char 38) (delete-char 8) (goto-char 36) (widen) (narrow-to-region 65 26) (goto-char 40) (widen) (narrow-to-region 27 55) (should (equal (test-overlay-regions) '((7 . 55) (8 . 55) (22 . 29) (23 . 55) (23 . 56) (24 . 31) (29 . 56) (37 . 55)))))) (ert-deftest overlay-autogenerated-test-52 nil (with-temp-buffer (insert "................................................................") (make-overlay 58 32 nil nil nil) (make-overlay 44 54 nil nil t) (make-overlay 27 50 nil nil nil) (make-overlay 55 35 nil nil t) (make-overlay 40 46 nil nil t) (make-overlay 56 63 nil t nil) (make-overlay 29 48 nil nil nil) (make-overlay 45 24 nil t nil) (make-overlay 60 25 nil t nil) (make-overlay 55 41 nil t nil) (make-overlay 55 1 nil nil t) (make-overlay 30 45 nil t t) (make-overlay 26 19 nil nil t) (make-overlay 61 5 nil nil nil) (make-overlay 33 5 nil nil nil) (make-overlay 42 18 nil t nil) (goto-char 55) (insert ".") (goto-char 49) (delete-char 12) (goto-char 41) (insert "..........") (goto-char 27) (insert ".....") (goto-char 58) (insert "...........") (goto-char 24) (delete-char 23) (goto-char 47) (delete-char 9) (goto-char 4) (insert "...") (goto-char 10) (delete-char 32) (goto-char 4) (insert "..............") (goto-char 29) (insert "....") (goto-char 28) (delete-char 2) (goto-char 34) (insert "...........") (goto-char 9) (insert "......") (goto-char 5) (insert "") (goto-char 45) (delete-char 1) (goto-char 18) (insert ".........") (goto-char 36) (delete-char 5) (goto-char 15) (delete-char 27) (goto-char 15) (delete-char 10) (goto-char 16) (delete-char 2) (goto-char 16) (widen) (narrow-to-region 10 2) (goto-char 9) (delete-char 1) (goto-char 3) (delete-char 2) (goto-char 2) (widen) (narrow-to-region 9 10) (goto-char 9) (insert "...........") (goto-char 19) (delete-char 0) (goto-char 14) (delete-char 3) (goto-char 11) (delete-char 2) (goto-char 9) (delete-char 6) (goto-char 9) (delete-char 0) (goto-char 10) (insert "....") (should (equal (test-overlay-regions) '((1 . 17)))))) (ert-deftest overlay-autogenerated-test-53 nil (with-temp-buffer (insert "................................................................") (make-overlay 10 30 nil nil nil) (make-overlay 11 57 nil t nil) (make-overlay 59 56 nil nil t) (make-overlay 20 37 nil nil t) (make-overlay 41 29 nil nil nil) (make-overlay 31 10 nil nil t) (make-overlay 6 36 nil nil nil) (make-overlay 12 54 nil nil nil) (make-overlay 25 26 nil t t) (make-overlay 21 19 nil nil t) (make-overlay 1 21 nil nil t) (make-overlay 48 51 nil nil nil) (make-overlay 54 55 nil t nil) (make-overlay 64 48 nil t t) (make-overlay 56 25 nil nil t) (make-overlay 12 60 nil t nil) (goto-char 41) (delete-char 1) (goto-char 63) (insert "") (goto-char 14) (delete-char 5) (goto-char 11) (insert "..............") (goto-char 41) (widen) (narrow-to-region 12 1) (goto-char 1) (delete-char 3) (goto-char 9) (delete-char 0) (goto-char 5) (insert "..............") (goto-char 1) (insert "..........") (goto-char 29) (insert "...............") (goto-char 4) (insert "..") (goto-char 31) (delete-char 15) (goto-char 31) (insert "") (goto-char 27) (insert "......") (goto-char 6) (insert "...") (goto-char 23) (widen) (narrow-to-region 23 47) (goto-char 37) (delete-char 2) (goto-char 35) (delete-char 5) (goto-char 38) (delete-char 2) (goto-char 30) (insert ".......") (goto-char 45) (widen) (narrow-to-region 13 2) (goto-char 9) (delete-char 1) (goto-char 3) (insert ".....") (goto-char 2) (insert "...............") (goto-char 16) (delete-char 5) (goto-char 20) (insert ".....") (goto-char 26) (delete-char 0) (goto-char 26) (widen) (narrow-to-region 76 98) (goto-char 88) (insert ".........") (goto-char 92) (insert ".") (goto-char 108) (delete-char 0) (goto-char 103) (delete-char 3) (should (equal (test-overlay-regions) '((1 . 79) (37 . 103) (61 . 88) (61 . 99) (74 . 121) (75 . 118) (75 . 124) (77 . 79) (78 . 103) (83 . 84) (83 . 120) (87 . 106)))))) (ert-deftest overlay-autogenerated-test-54 nil (with-temp-buffer (insert "................................................................") (make-overlay 58 36 nil t t) (make-overlay 55 49 nil nil t) (make-overlay 12 25 nil nil t) (make-overlay 16 37 nil t t) (make-overlay 42 25 nil t t) (make-overlay 8 41 nil t t) (make-overlay 13 27 nil nil t) (make-overlay 52 22 nil t nil) (make-overlay 36 17 nil t nil) (make-overlay 1 52 nil t nil) (make-overlay 55 5 nil nil t) (make-overlay 50 50 nil t nil) (make-overlay 32 15 nil t nil) (make-overlay 39 26 nil t nil) (make-overlay 26 4 nil nil nil) (make-overlay 38 47 nil t t) (goto-char 23) (insert ".") (goto-char 57) (delete-char 6) (goto-char 54) (insert "..............") (goto-char 46) (insert "...............") (goto-char 29) (insert ".......") (goto-char 58) (delete-char 21) (goto-char 45) (delete-char 4) (goto-char 50) (delete-char 4) (goto-char 20) (insert ".........") (goto-char 16) (insert "......") (goto-char 17) (insert ".....") (goto-char 63) (insert "........") (goto-char 83) (insert "....") (goto-char 73) (delete-char 8) (goto-char 69) (insert "...........") (goto-char 48) (widen) (narrow-to-region 19 31) (goto-char 22) (delete-char 3) (goto-char 23) (delete-char 5) (goto-char 20) (insert "............") (goto-char 23) (delete-char 11) (goto-char 19) (insert "..........") (goto-char 23) (insert "........") (goto-char 38) (delete-char 1) (goto-char 33) (delete-char 5) (goto-char 27) (insert "..........") (goto-char 35) (delete-char 8) (goto-char 35) (insert ".") (goto-char 20) (insert "......") (goto-char 22) (delete-char 22) (goto-char 23) (delete-char 0) (goto-char 22) (widen) (narrow-to-region 1 41) (goto-char 13) (insert ".......") (should (equal (test-overlay-regions) '((1 . 83) (4 . 46) (5 . 97) (8 . 83) (12 . 45) (13 . 47) (22 . 59) (30 . 82) (30 . 83) (41 . 83) (45 . 83) (46 . 83)))))) (ert-deftest overlay-autogenerated-test-55 nil (with-temp-buffer (insert "................................................................") (make-overlay 58 20 nil nil nil) (make-overlay 60 33 nil t nil) (make-overlay 6 27 nil nil nil) (make-overlay 53 31 nil nil t) (make-overlay 30 55 nil t t) (make-overlay 4 64 nil t t) (make-overlay 51 31 nil nil t) (make-overlay 4 65 nil t t) (make-overlay 57 62 nil t t) (make-overlay 28 7 nil nil t) (make-overlay 61 48 nil t nil) (make-overlay 23 54 nil nil t) (make-overlay 47 49 nil nil nil) (make-overlay 12 52 nil t nil) (make-overlay 39 57 nil t t) (make-overlay 28 61 nil nil t) (goto-char 8) (insert "..............") (goto-char 63) (delete-char 3) (goto-char 67) (delete-char 6) (goto-char 3) (widen) (narrow-to-region 10 67) (goto-char 43) (insert ".............") (goto-char 20) (insert "...............") (goto-char 18) (insert "..") (goto-char 37) (delete-char 47) (goto-char 34) (insert "..............") (goto-char 31) (delete-char 2) (goto-char 16) (widen) (narrow-to-region 29 36) (goto-char 31) (delete-char 2) (goto-char 31) (insert ".......") (goto-char 40) (delete-char 0) (goto-char 32) (widen) (narrow-to-region 40 19) (goto-char 40) (insert "..") (goto-char 37) (delete-char 0) (goto-char 40) (delete-char 1) (goto-char 34) (delete-char 4) (goto-char 33) (insert "..............") (goto-char 19) (widen) (narrow-to-region 78 70) (goto-char 77) (insert ".........") (goto-char 80) (delete-char 1) (goto-char 73) (delete-char 3) (goto-char 70) (insert ".........") (goto-char 75) (delete-char 10) (goto-char 74) (delete-char 3) (goto-char 73) (insert "...............") (goto-char 90) (insert "......") (goto-char 94) (insert "..............") (goto-char 101) (insert "........") (goto-char 111) (insert "........") (should (equal (test-overlay-regions) '((4 . 132) (4 . 133) (65 . 89) (65 . 89) (65 . 89) (65 . 89) (65 . 129) (65 . 130) (65 . 130) (65 . 130) (65 . 130) (89 . 89) (89 . 130)))))) (ert-deftest overlay-autogenerated-test-56 nil (with-temp-buffer (insert "................................................................") (make-overlay 7 14 nil nil t) (make-overlay 10 10 nil nil t) (make-overlay 21 23 nil nil t) (make-overlay 4 44 nil t nil) (make-overlay 42 16 nil t t) (make-overlay 1 57 nil t nil) (make-overlay 15 27 nil nil nil) (make-overlay 31 1 nil t nil) (make-overlay 56 45 nil t t) (make-overlay 46 19 nil t nil) (make-overlay 15 6 nil nil nil) (make-overlay 31 26 nil nil t) (make-overlay 39 41 nil t t) (make-overlay 52 48 nil nil t) (make-overlay 44 2 nil t nil) (make-overlay 60 7 nil nil t) (goto-char 49) (delete-char 11) (goto-char 43) (delete-char 9) (goto-char 42) (delete-char 2) (goto-char 12) (insert "...........") (goto-char 36) (insert ".........") (goto-char 1) (insert "......") (goto-char 67) (delete-char 0) (goto-char 47) (insert ".............") (goto-char 57) (insert "........") (goto-char 22) (widen) (narrow-to-region 75 33) (goto-char 41) (delete-char 28) (goto-char 43) (delete-char 0) (goto-char 33) (delete-char 5) (goto-char 38) (insert "..") (goto-char 42) (delete-char 0) (goto-char 38) (delete-char 0) (goto-char 38) (insert "............") (goto-char 51) (insert ".......") (goto-char 48) (insert "..") (goto-char 55) (insert ".") (goto-char 33) (delete-char 8) (goto-char 42) (insert "..") (goto-char 45) (insert "..") (goto-char 59) (insert ".............") (goto-char 53) (insert ".......") (goto-char 81) (delete-char 0) (goto-char 44) (delete-char 36) (goto-char 38) (delete-char 8) (goto-char 33) (insert ".............") (goto-char 41) (insert "..............") (goto-char 65) (insert "...............") (goto-char 61) (insert "...") (should (equal (test-overlay-regions) '((7 . 86) (7 . 97) (8 . 97) (10 . 97) (13 . 97) (32 . 68) (33 . 60) (60 . 97) (60 . 97) (68 . 86)))))) (ert-deftest overlay-autogenerated-test-57 nil (with-temp-buffer (insert "................................................................") (make-overlay 52 31 nil t nil) (make-overlay 39 17 nil t nil) (make-overlay 19 20 nil t t) (make-overlay 18 3 nil nil t) (make-overlay 19 47 nil nil t) (make-overlay 38 54 nil nil nil) (make-overlay 30 51 nil nil t) (make-overlay 29 60 nil t t) (make-overlay 57 38 nil nil nil) (make-overlay 13 41 nil t nil) (make-overlay 9 44 nil t nil) (make-overlay 30 55 nil t nil) (make-overlay 33 10 nil nil nil) (make-overlay 14 35 nil nil t) (make-overlay 53 50 nil t nil) (make-overlay 25 28 nil nil t) (goto-char 40) (insert "..") (goto-char 64) (insert "........") (goto-char 47) (insert "............") (goto-char 65) (delete-char 0) (goto-char 86) (delete-char 1) (goto-char 59) (delete-char 11) (goto-char 64) (delete-char 8) (goto-char 53) (delete-char 0) (goto-char 28) (delete-char 8) (goto-char 6) (delete-char 33) (goto-char 14) (delete-char 2) (goto-char 2) (delete-char 10) (goto-char 3) (insert "..") (goto-char 5) (insert ".........") (goto-char 1) (insert "........") (goto-char 10) (delete-char 4) (goto-char 26) (insert "........") (goto-char 23) (insert "....") (goto-char 1) (widen) (narrow-to-region 15 23) (goto-char 19) (insert "...") (goto-char 24) (delete-char 0) (goto-char 19) (insert ".......") (goto-char 18) (insert "..") (goto-char 33) (insert "...") (goto-char 32) (insert "...............") (goto-char 29) (delete-char 10) (goto-char 29) (insert "..........") (goto-char 50) (insert "") (goto-char 16) (insert ".........") (goto-char 52) (widen) (narrow-to-region 59 15) (goto-char 35) (delete-char 4) (goto-char 18) (insert "....") (should (equal (test-overlay-regions) '((10 . 57) (10 . 57) (10 . 57) (10 . 60) (10 . 60) (10 . 61) (10 . 68) (57 . 57)))))) (ert-deftest overlay-autogenerated-test-58 nil (with-temp-buffer (insert "................................................................") (make-overlay 8 16 nil t nil) (make-overlay 57 27 nil nil nil) (make-overlay 15 62 nil nil nil) (make-overlay 32 33 nil nil t) (make-overlay 47 27 nil nil t) (make-overlay 41 4 nil nil t) (make-overlay 57 61 nil t nil) (make-overlay 18 43 nil nil t) (make-overlay 64 51 nil t t) (make-overlay 44 26 nil nil nil) (make-overlay 9 13 nil nil t) (make-overlay 41 65 nil nil t) (make-overlay 23 13 nil t t) (make-overlay 26 59 nil t t) (make-overlay 65 65 nil t t) (make-overlay 15 7 nil nil nil) (goto-char 41) (insert "........") (goto-char 35) (delete-char 14) (goto-char 32) (widen) (narrow-to-region 23 46) (goto-char 41) (delete-char 5) (goto-char 29) (delete-char 10) (goto-char 31) (insert ".") (goto-char 29) (insert "........") (goto-char 27) (delete-char 7) (goto-char 29) (insert "") (goto-char 24) (insert "............") (goto-char 43) (delete-char 1) (goto-char 31) (delete-char 9) (goto-char 34) (widen) (narrow-to-region 20 14) (goto-char 20) (delete-char 0) (goto-char 17) (insert "...........") (goto-char 31) (delete-char 0) (goto-char 16) (insert "...........") (goto-char 17) (delete-char 8) (goto-char 23) (delete-char 5) (goto-char 20) (insert "..........") (goto-char 33) (widen) (narrow-to-region 16 29) (goto-char 24) (insert "...............") (goto-char 44) (delete-char 0) (goto-char 30) (insert "....") (goto-char 27) (widen) (narrow-to-region 4 22) (goto-char 10) (insert "..............") (goto-char 36) (insert "..") (goto-char 10) (delete-char 21) (goto-char 14) (delete-char 1) (goto-char 14) (insert "...........") (goto-char 12) (insert "........") (goto-char 32) (insert "........") (should (equal (test-overlay-regions) '((4 . 92) (7 . 10) (8 . 10) (9 . 10) (10 . 82) (10 . 104)))))) (ert-deftest overlay-autogenerated-test-59 nil (with-temp-buffer (insert "................................................................") (make-overlay 46 30 nil t t) (make-overlay 3 26 nil nil nil) (make-overlay 36 28 nil t t) (make-overlay 49 49 nil t t) (make-overlay 27 61 nil t nil) (make-overlay 14 16 nil nil nil) (make-overlay 50 61 nil t nil) (make-overlay 59 63 nil nil nil) (make-overlay 36 34 nil t nil) (make-overlay 35 29 nil nil nil) (make-overlay 5 65 nil nil nil) (make-overlay 20 61 nil nil t) (make-overlay 10 42 nil nil nil) (make-overlay 47 49 nil nil t) (make-overlay 12 4 nil nil nil) (make-overlay 32 24 nil t t) (goto-char 11) (insert ".") (goto-char 32) (delete-char 2) (goto-char 61) (insert ".........") (goto-char 36) (insert "........") (goto-char 55) (widen) (narrow-to-region 8 55) (goto-char 21) (insert "....") (goto-char 32) (delete-char 15) (goto-char 30) (delete-char 5) (goto-char 31) (insert "......") (goto-char 18) (insert "..") (goto-char 14) (insert ".............") (goto-char 34) (insert "............") (goto-char 51) (widen) (narrow-to-region 58 31) (goto-char 50) (delete-char 5) (goto-char 53) (insert ".........") (goto-char 56) (insert "...............") (goto-char 45) (delete-char 1) (goto-char 67) (insert "............") (goto-char 84) (insert "") (goto-char 39) (delete-char 27) (goto-char 39) (delete-char 21) (goto-char 32) (insert "............") (goto-char 36) (widen) (narrow-to-region 7 37) (goto-char 11) (insert ".......") (goto-char 21) (delete-char 13) (goto-char 15) (insert "....") (goto-char 9) (insert ".............") (goto-char 13) (delete-char 21) (goto-char 21) (delete-char 6) (goto-char 16) (insert ".......") (goto-char 22) (insert "") (goto-char 27) (delete-char 0) (should (equal (test-overlay-regions) '((3 . 42) (4 . 16) (5 . 83) (13 . 51) (25 . 27)))))) (ert-deftest overlay-autogenerated-test-60 nil (with-temp-buffer (insert "................................................................") (make-overlay 38 32 nil t nil) (make-overlay 32 42 nil t nil) (make-overlay 29 11 nil nil t) (make-overlay 52 22 nil t t) (make-overlay 39 59 nil t nil) (make-overlay 41 30 nil t t) (make-overlay 29 61 nil nil t) (make-overlay 11 45 nil nil nil) (make-overlay 46 17 nil nil t) (make-overlay 35 51 nil t t) (make-overlay 22 13 nil nil t) (make-overlay 52 34 nil nil t) (make-overlay 59 4 nil nil t) (make-overlay 8 22 nil nil nil) (make-overlay 4 49 nil nil nil) (make-overlay 52 45 nil t t) (goto-char 48) (delete-char 16) (goto-char 37) (delete-char 8) (goto-char 14) (insert "...............") (goto-char 40) (delete-char 16) (goto-char 19) (insert ".........") (goto-char 16) (insert "......") (goto-char 10) (insert "........") (goto-char 11) (insert "...............") (goto-char 22) (insert ".") (goto-char 62) (delete-char 16) (goto-char 14) (delete-char 11) (goto-char 47) (insert "....") (goto-char 33) (insert ".............") (goto-char 49) (delete-char 13) (goto-char 28) (insert "..") (goto-char 35) (delete-char 13) (goto-char 44) (insert "....") (goto-char 34) (delete-char 14) (goto-char 23) (insert ".....") (goto-char 25) (delete-char 4) (goto-char 33) (insert ".....") (goto-char 27) (delete-char 3) (goto-char 16) (widen) (narrow-to-region 36 37) (goto-char 36) (delete-char 1) (goto-char 36) (insert ".......") (goto-char 37) (widen) (narrow-to-region 35 31) (goto-char 34) (delete-char 0) (goto-char 31) (delete-char 2) (goto-char 31) (widen) (narrow-to-region 24 3) (goto-char 22) (delete-char 2) (goto-char 22) (insert ".............") (goto-char 4) (insert ".") (should (equal (test-overlay-regions) '((4 . 54) (4 . 54) (9 . 46)))))) (ert-deftest overlay-autogenerated-test-61 nil (with-temp-buffer (insert "................................................................") (make-overlay 45 56 nil t nil) (make-overlay 60 45 nil nil nil) (make-overlay 26 8 nil t t) (make-overlay 63 39 nil nil nil) (make-overlay 18 11 nil t nil) (make-overlay 22 64 nil nil t) (make-overlay 8 41 nil nil t) (make-overlay 6 51 nil t t) (make-overlay 38 26 nil t t) (make-overlay 7 46 nil t nil) (make-overlay 2 42 nil nil t) (make-overlay 44 64 nil nil nil) (make-overlay 7 62 nil t nil) (make-overlay 8 40 nil nil t) (make-overlay 62 36 nil t t) (make-overlay 61 27 nil nil nil) (goto-char 21) (delete-char 0) (goto-char 8) (insert "") (goto-char 55) (insert "......") (goto-char 38) (delete-char 25) (goto-char 37) (delete-char 4) (goto-char 12) (delete-char 4) (goto-char 3) (delete-char 26) (goto-char 10) (insert ".......") (goto-char 18) (delete-char 0) (goto-char 16) (insert ".............") (goto-char 18) (delete-char 3) (goto-char 7) (insert "...") (goto-char 20) (insert "........") (goto-char 38) (delete-char 0) (goto-char 1) (delete-char 36) (goto-char 3) (delete-char 1) (goto-char 2) (insert "......") (goto-char 4) (insert ".......") (goto-char 2) (insert "...........") (goto-char 27) (insert ".....") (goto-char 15) (insert "...............") (goto-char 2) (insert "......") (goto-char 17) (delete-char 8) (goto-char 15) (delete-char 7) (goto-char 33) (delete-char 5) (goto-char 13) (insert "...........") (goto-char 34) (insert "...............") (goto-char 33) (insert "") (goto-char 51) (insert "....") (goto-char 14) (delete-char 36) (goto-char 16) (delete-char 1) (goto-char 14) (delete-char 8) (should (equal (test-overlay-regions) '((1 . 1) (1 . 1) (1 . 1) (1 . 1) (1 . 1) (1 . 1) (1 . 1) (1 . 1) (1 . 1) (1 . 1) (1 . 1) (1 . 1) (1 . 1) (1 . 1) (1 . 18) (1 . 18)))))) (ert-deftest overlay-autogenerated-test-62 nil (with-temp-buffer (insert "................................................................") (make-overlay 25 36 nil t nil) (make-overlay 38 6 nil t nil) (make-overlay 40 63 nil nil t) (make-overlay 34 23 nil nil nil) (make-overlay 48 46 nil nil nil) (make-overlay 43 57 nil t t) (make-overlay 6 53 nil t t) (make-overlay 37 27 nil t t) (make-overlay 8 39 nil t nil) (make-overlay 62 6 nil nil nil) (make-overlay 51 6 nil t t) (make-overlay 58 11 nil nil t) (make-overlay 19 25 nil t nil) (make-overlay 13 8 nil nil nil) (make-overlay 19 8 nil nil t) (make-overlay 39 5 nil t t) (goto-char 51) (delete-char 5) (goto-char 16) (delete-char 9) (goto-char 18) (insert "") (goto-char 47) (delete-char 4) (goto-char 24) (insert ".........") (goto-char 24) (insert ".....") (goto-char 18) (insert "...........") (goto-char 5) (delete-char 6) (goto-char 30) (insert "...........") (goto-char 8) (insert ".............") (goto-char 78) (insert "............") (goto-char 67) (insert "") (goto-char 58) (insert "") (goto-char 5) (insert ".") (goto-char 79) (widen) (narrow-to-region 51 55) (goto-char 51) (insert "....") (goto-char 58) (widen) (narrow-to-region 36 37) (goto-char 37) (insert "....") (goto-char 40) (insert ".......") (goto-char 47) (delete-char 1) (goto-char 43) (delete-char 4) (goto-char 37) (insert "........") (goto-char 49) (insert "............") (goto-char 42) (widen) (narrow-to-region 75 111) (goto-char 104) (widen) (narrow-to-region 21 95) (goto-char 22) (widen) (narrow-to-region 64 79) (goto-char 64) (delete-char 0) (goto-char 68) (insert "........") (goto-char 82) (insert "") (goto-char 81) (insert "........") (goto-char 92) (delete-char 2) (goto-char 87) (insert ".") (should (equal (test-overlay-regions) '((5 . 145) (5 . 148) (6 . 118) (6 . 119) (6 . 119) (6 . 143) (6 . 143) (24 . 114) (24 . 116) (63 . 117)))))) (ert-deftest overlay-autogenerated-test-63 nil (with-temp-buffer (insert "................................................................") (make-overlay 9 49 nil t nil) (make-overlay 9 16 nil nil nil) (make-overlay 64 2 nil t t) (make-overlay 17 31 nil nil t) (make-overlay 24 51 nil nil nil) (make-overlay 27 56 nil t t) (make-overlay 21 4 nil nil nil) (make-overlay 24 29 nil t t) (make-overlay 4 63 nil nil t) (make-overlay 34 49 nil t nil) (make-overlay 19 47 nil nil t) (make-overlay 8 50 nil t nil) (make-overlay 49 61 nil t nil) (make-overlay 52 10 nil t t) (make-overlay 64 30 nil t nil) (make-overlay 5 13 nil t nil) (goto-char 27) (insert "........") (goto-char 42) (insert "......") (goto-char 48) (insert "....") (goto-char 55) (widen) (narrow-to-region 10 5) (goto-char 8) (insert ".............") (goto-char 19) (insert "......") (goto-char 19) (delete-char 3) (goto-char 8) (delete-char 3) (goto-char 9) (insert ".......") (goto-char 29) (insert "...............") (goto-char 38) (insert ".......") (goto-char 34) (insert "......") (goto-char 28) (delete-char 20) (goto-char 22) (insert "............") (goto-char 21) (delete-char 23) (goto-char 25) (delete-char 2) (goto-char 19) (delete-char 2) (goto-char 12) (delete-char 6) (goto-char 12) (delete-char 0) (goto-char 13) (delete-char 0) (goto-char 12) (insert "........") (goto-char 23) (delete-char 2) (goto-char 5) (insert "...............") (goto-char 28) (delete-char 0) (goto-char 16) (insert "..........") (goto-char 8) (delete-char 17) (goto-char 27) (delete-char 0) (goto-char 12) (insert ".") (goto-char 14) (delete-char 12) (goto-char 11) (insert "..............") (goto-char 34) (insert "") (goto-char 25) (delete-char 8) (should (equal (test-overlay-regions) '((2 . 98) (4 . 37) (4 . 97) (25 . 29) (25 . 32) (25 . 84)))))) (ert-deftest overlay-autogenerated-test-64 nil (with-temp-buffer (insert "................................................................") (make-overlay 31 10 nil nil nil) (make-overlay 17 58 nil nil t) (make-overlay 20 21 nil t nil) (make-overlay 3 47 nil t t) (make-overlay 47 43 nil t t) (make-overlay 54 8 nil nil t) (make-overlay 51 26 nil t nil) (make-overlay 60 14 nil t nil) (make-overlay 38 6 nil nil t) (make-overlay 41 9 nil nil nil) (make-overlay 44 38 nil nil t) (make-overlay 55 48 nil nil t) (make-overlay 10 41 nil nil t) (make-overlay 35 49 nil t nil) (make-overlay 50 46 nil nil nil) (make-overlay 28 28 nil t nil) (goto-char 59) (delete-char 3) (goto-char 28) (widen) (narrow-to-region 13 7) (goto-char 11) (insert ".") (goto-char 9) (delete-char 3) (goto-char 8) (delete-char 0) (goto-char 7) (insert ".............") (goto-char 9) (insert "..........") (goto-char 22) (delete-char 1) (goto-char 31) (delete-char 2) (goto-char 22) (insert ".........") (goto-char 33) (delete-char 1) (goto-char 29) (widen) (narrow-to-region 59 51) (goto-char 52) (insert ".........") (goto-char 53) (insert "........") (goto-char 53) (delete-char 4) (goto-char 54) (insert "........") (goto-char 53) (insert "....") (goto-char 75) (widen) (goto-char 70) (delete-char 2) (goto-char 108) (delete-char 1) (goto-char 80) (widen) (goto-char 70) (widen) (narrow-to-region 49 63) (goto-char 49) (insert "...") (goto-char 66) (delete-char 0) (goto-char 63) (delete-char 3) (goto-char 59) (insert "..........") (goto-char 56) (delete-char 6) (goto-char 60) (insert ".........") (goto-char 62) (widen) (goto-char 58) (insert ".............") (goto-char 105) (widen) (narrow-to-region 94 109) (goto-char 103) (insert "............") (should (equal (test-overlay-regions) '((3 . 134) (6 . 125) (38 . 141) (39 . 118) (39 . 128) (39 . 128) (40 . 146) (43 . 145) (101 . 138) (103 . 103)))))) ) ;; End of `when nil' for autogenerated insert/delete/narrow tests. (ert-deftest buffer-multibyte-overlong-sequences () (dolist (uni '("\xE0\x80\x80" "\xF0\x80\x80\x80" "\xF8\x8F\xBF\xBF\x80")) (let ((multi (string-to-multibyte uni))) (should (string-equal multi (with-temp-buffer (set-buffer-multibyte nil) (insert uni) (set-buffer-multibyte t) (buffer-string))))))) ;; https://debbugs.gnu.org/33492 (ert-deftest buffer-tests-buffer-local-variables-undo () "Test that `buffer-undo-list' appears in `buffer-local-variables'." (with-temp-buffer (should (assq 'buffer-undo-list (buffer-local-variables))))) (ert-deftest buffer-tests-inhibit-buffer-hooks () "Test `get-buffer-create' argument INHIBIT-BUFFER-HOOKS." (let* (run-bluh (bluh (lambda () (setq run-bluh t)))) (unwind-protect (let* ( run-kbh (kbh (lambda () (setq run-kbh t))) run-kbqf (kbqf (lambda () (setq run-kbqf t))) ) ;; Inhibited. (add-hook 'buffer-list-update-hook bluh) (with-current-buffer (generate-new-buffer " foo" t) (add-hook 'kill-buffer-hook kbh nil t) (add-hook 'kill-buffer-query-functions kbqf nil t) (kill-buffer)) (with-temp-buffer (ignore)) (with-output-to-string (ignore)) (should-not run-bluh) (should-not run-kbh) (should-not run-kbqf) ;; Not inhibited. (with-current-buffer (generate-new-buffer " foo") (should run-bluh) (add-hook 'kill-buffer-hook kbh nil t) (add-hook 'kill-buffer-query-functions kbqf nil t) (kill-buffer)) (should run-kbh) (should run-kbqf)) (remove-hook 'buffer-list-update-hook bluh)))) (ert-deftest buffer-tests-inhibit-buffer-hooks-indirect () "Indirect buffers do not call `get-buffer-create'." (dolist (inhibit '(nil t)) (let ((base (get-buffer-create "foo" inhibit))) (unwind-protect (dotimes (_i 11) (let* (flag* (flag (lambda () (prog1 t (setq flag* t)))) (indirect (make-indirect-buffer base "foo[indirect]" nil inhibit))) (unwind-protect (progn (with-current-buffer indirect (add-hook 'kill-buffer-query-functions flag nil t)) (kill-buffer indirect) (if inhibit (should-not flag*) (should flag*))) (let (kill-buffer-query-functions) (when (buffer-live-p indirect) (kill-buffer indirect)))))) (let (kill-buffer-query-functions) (when (buffer-live-p base) (kill-buffer base))))))) (ert-deftest zero-length-overlays-and-not () (with-temp-buffer (insert "hello") (let ((long-overlay (make-overlay 2 4)) (zero-overlay (make-overlay 3 3))) ;; Exclude. (should (= (length (overlays-at 3)) 1)) (should (eq (car (overlays-at 3)) long-overlay)) ;; Include. (should (= (length (overlays-in 3 3)) 2)) (should (memq long-overlay (overlays-in 3 3))) (should (memq zero-overlay (overlays-in 3 3)))))) (ert-deftest test-remove-overlays () (with-temp-buffer (insert "foo") (make-overlay (point) (point)) (should (= (length (overlays-in (point-min) (point-max))) 1)) (remove-overlays) (should (= (length (overlays-in (point-min) (point-max))) 0))) (with-temp-buffer (insert "foo") (goto-char 2) (make-overlay (point) (point)) ;; We only count zero-length overlays at the end of the buffer. (should (= (length (overlays-in 1 2)) 0)) (narrow-to-region 1 2) ;; We've now narrowed, so the zero-length overlay is at the end of ;; the (accessible part of the) buffer. (should (= (length (overlays-in 1 2)) 1)) (remove-overlays) (should (= (length (overlays-in (point-min) (point-max))) 0)))) (ert-deftest test-kill-buffer-auto-save-default () (ert-with-temp-file file (let (auto-save) ;; Always answer yes. (cl-letf (((symbol-function #'yes-or-no-p) (lambda (_) t))) (unwind-protect (progn (find-file file) (auto-save-mode t) (insert "foo\n") (should buffer-auto-save-file-name) (setq auto-save buffer-auto-save-file-name) (do-auto-save) (should (file-exists-p auto-save)) (kill-buffer (current-buffer)) (should (file-exists-p auto-save))) (when auto-save (ignore-errors (delete-file auto-save)))))))) (ert-deftest test-kill-buffer-auto-save-delete () (ert-with-temp-file file (let (auto-save) (should (file-exists-p file)) (setq kill-buffer-delete-auto-save-files t) ;; Always answer yes. (cl-letf (((symbol-function #'yes-or-no-p) (lambda (_) t))) (unwind-protect (progn (find-file file) (auto-save-mode t) (insert "foo\n") (should buffer-auto-save-file-name) (setq auto-save buffer-auto-save-file-name) (do-auto-save) (should (file-exists-p auto-save)) ;; This should delete the auto-save file. (kill-buffer (current-buffer)) (should-not (file-exists-p auto-save))) (ignore-errors (delete-file file)) (when auto-save (ignore-errors (delete-file auto-save))))) ;; Answer no to deletion. (cl-letf (((symbol-function #'yes-or-no-p) (lambda (prompt) (not (string-search "Delete auto-save file" prompt))))) (unwind-protect (progn (find-file file) (auto-save-mode t) (insert "foo\n") (should buffer-auto-save-file-name) (setq auto-save buffer-auto-save-file-name) (do-auto-save) (should (file-exists-p auto-save)) ;; This should not delete the auto-save file. (kill-buffer (current-buffer)) (should (file-exists-p auto-save))) (when auto-save (ignore-errors (delete-file auto-save)))))))) (ert-deftest test-buffer-modifications () (ert-with-temp-file file (with-current-buffer (find-file file) (auto-save-mode 1) (should-not (buffer-modified-p)) (insert "foo") (should (buffer-modified-p)) (should-not (eq (buffer-modified-p) 'autosaved)) (do-auto-save nil t) (should (eq (buffer-modified-p) 'autosaved)) (with-silent-modifications (put-text-property 1 3 'face 'bold)) (should (eq (buffer-modified-p) 'autosaved)) (save-buffer) (should-not (buffer-modified-p)) (with-silent-modifications (put-text-property 1 3 'face 'italic)) (should-not (buffer-modified-p))))) (ert-deftest test-restore-buffer-modified-p () (ert-with-temp-file file ;; This avoids the annoying "foo and bar are the same file" on ;; MS-Windows. (setq file (file-truename file)) (with-current-buffer (find-file file) (auto-save-mode 1) (should-not (eq (buffer-modified-p) t)) (insert "foo") (should (buffer-modified-p)) (restore-buffer-modified-p nil) (should-not (buffer-modified-p)) (insert "bar") (do-auto-save nil t) (should (eq (buffer-modified-p) 'autosaved)) (insert "zot") (restore-buffer-modified-p 'autosaved) (should (eq (buffer-modified-p) 'autosaved)) ;; Clean up. (when (file-exists-p buffer-auto-save-file-name) (delete-file buffer-auto-save-file-name)))) (ert-with-temp-file file (setq file (file-truename file)) (with-current-buffer (find-file file) (auto-save-mode 1) (should-not (eq (buffer-modified-p) t)) (insert "foo") (should (buffer-modified-p)) (should-not (eq (buffer-modified-p) 'autosaved)) (restore-buffer-modified-p 'autosaved) (should (eq (buffer-modified-p) 'autosaved))))) (ert-deftest test-buffer-chars-modified-ticks () "Test `buffer-chars-modified-tick'." (setq temporary-file-directory (file-truename temporary-file-directory)) (let ((text "foobar") f1 f2) (unwind-protect (progn (setq f1 (make-temp-file "buf-modiff-tests") f2 (make-temp-file "buf-modiff-tests")) (with-current-buffer (find-file f1) (should (= (buffer-chars-modified-tick) 1)) (should (= (buffer-chars-modified-tick) (buffer-modified-tick))) (write-region text nil f2 nil 'silent) (insert-file-contents f2) (should (= (buffer-chars-modified-tick) (buffer-modified-tick))) (should (> (buffer-chars-modified-tick) 1)))) (if f1 (delete-file f1)) (if f2 (delete-file f2)) ))) ;;; buffer-tests.el ends here