emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] master ef5c799: Incorporate occur-tests in replace-tests


From: Eli Zaretskii
Subject: [Emacs-diffs] master ef5c799: Incorporate occur-tests in replace-tests
Date: Sat, 24 Sep 2016 10:01:14 +0000 (UTC)

branch: master
commit ef5c799c661dae1d1eb52c45d7a82e93f92b47c0
Author: Eli Zaretskii <address@hidden>
Commit: Eli Zaretskii <address@hidden>

    Incorporate occur-tests in replace-tests
    
    * test/lisp/replace-tests.el: Add tests from
    test/lisp/legacy/occur-tests.el.
    * test/lisp/legacy/occur-tests.el: File deleted.
---
 test/lisp/legacy/occur-tests.el |  352 ---------------------------------------
 test/lisp/replace-tests.el      |  328 +++++++++++++++++++++++++++++++++++-
 2 files changed, 327 insertions(+), 353 deletions(-)

diff --git a/test/lisp/legacy/occur-tests.el b/test/lisp/legacy/occur-tests.el
deleted file mode 100644
index da45d5f..0000000
--- a/test/lisp/legacy/occur-tests.el
+++ /dev/null
@@ -1,352 +0,0 @@
-;;; occur-tests.el --- Test suite for occur.
-
-;; Copyright (C) 2010-2016 Free Software Foundation, Inc.
-
-;; Author: Juri Linkov <address@hidden>
-;; Keywords: matching, internal
-
-;; 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 <http://www.gnu.org/licenses/>.
-
-;;; Code:
-
-(require 'ert)
-
-(defconst occur-tests
-  '(
-    ;; * Test one-line matches (at bob, eob, bol, eol).
-    ("x" 0 "\
-xa
-b
-cx
-xd
-xex
-fx
-" "\
-6 matches in 5 lines for \"x\" in buffer:  *test-occur*
-      1:xa
-      3:cx
-      4:xd
-      5:xex
-      6:fx
-")
-    ;; * Test multi-line matches, this is the first test from
-    ;; http://lists.gnu.org/archive/html/emacs-devel/2005-06/msg01008.html
-    ;; where numbers are replaced with letters.
-    ("a\na" 0 "\
-a
-a
-a
-a
-a
-" "\
-2 matches for \"a\na\" in buffer:  *test-occur*
-      1:a
-       :a
-      3:a
-       :a
-")
-    ;; * Test multi-line matches, this is the second test from
-    ;; http://lists.gnu.org/archive/html/emacs-devel/2005-06/msg01008.html
-    ;; where numbers are replaced with letters.
-    ("a\nb" 0 "\
-a
-b
-c
-a
-b
-" "\
-2 matches for \"a\nb\" in buffer:  *test-occur*
-      1:a
-       :b
-      4:a
-       :b
-")
-    ;; * Test line numbers for multi-line matches with empty last match line.
-    ("a\n" 0 "\
-a
-
-c
-a
-
-" "\
-2 matches for \"a\n\" in buffer:  *test-occur*
-      1:a
-       :
-      4:a
-       :
-")
-    ;; * Test multi-line matches with 3 match lines.
-    ("x\n.x\n" 0 "\
-ax
-bx
-c
-d
-ex
-fx
-" "\
-2 matches for \"x\n.x\n\" in buffer:  *test-occur*
-      1:ax
-       :bx
-       :c
-      5:ex
-       :fx
-       :
-")
-    ;; * Test non-overlapping context lines with matches at bob/eob.
-    ("x" 1 "\
-ax
-b
-c
-d
-ex
-f
-g
-hx
-" "\
-3 matches for \"x\" in buffer:  *test-occur*
-      1:ax
-       :b
--------
-       :d
-      5:ex
-       :f
--------
-       :g
-      8:hx
-")
-    ;; * Test non-overlapping context lines with matches not at bob/eob.
-    ("x" 1 "\
-a
-bx
-c
-d
-ex
-f
-" "\
-2 matches for \"x\" in buffer:  *test-occur*
-       :a
-      2:bx
-       :c
--------
-       :d
-      5:ex
-       :f
-")
-    ;; * Test overlapping context lines with matches at bob/eob.
-    ("x" 2 "\
-ax
-bx
-c
-dx
-e
-f
-gx
-h
-i
-j
-kx
-" "\
-5 matches for \"x\" in buffer:  *test-occur*
-      1:ax
-      2:bx
-       :c
-      4:dx
-       :e
-       :f
-      7:gx
-       :h
-       :i
-       :j
-     11:kx
-")
-    ;; * Test overlapping context lines with matches not at bob/eob.
-    ("x" 2 "\
-a
-b
-cx
-d
-e
-f
-gx
-h
-i
-" "\
-2 matches for \"x\" in buffer:  *test-occur*
-       :a
-       :b
-      3:cx
-       :d
-       :e
-       :f
-      7:gx
-       :h
-       :i
-")
-    ;; * Test overlapping context lines with empty first and last line..
-    ("x" 2 "\
-
-b
-cx
-d
-e
-f
-gx
-h
-
-" "\
-2 matches for \"x\" in buffer:  *test-occur*
-       :
-       :b
-      3:cx
-       :d
-       :e
-       :f
-      7:gx
-       :h
-       :
-")
-    ;; * Test multi-line overlapping context lines.
-    ("x\n.x" 2 "\
-ax
-bx
-c
-d
-ex
-fx
-g
-h
-i
-jx
-kx
-" "\
-3 matches for \"x\n.x\" in buffer:  *test-occur*
-      1:ax
-       :bx
-       :c
-       :d
-      5:ex
-       :fx
-       :g
-       :h
-       :i
-     10:jx
-       :kx
-")
-    ;; * Test multi-line non-overlapping context lines.
-    ("x\n.x" 2 "\
-ax
-bx
-c
-d
-e
-f
-gx
-hx
-" "\
-2 matches for \"x\n.x\" in buffer:  *test-occur*
-      1:ax
-       :bx
-       :c
-       :d
--------
-       :e
-       :f
-      7:gx
-       :hx
-")
-    ;; * Test non-overlapping negative (before-context) lines.
-    ("x" -2 "\
-a
-bx
-c
-d
-e
-fx
-g
-h
-ix
-" "\
-3 matches for \"x\" in buffer:  *test-occur*
-       :a
-      2:bx
--------
-       :d
-       :e
-      6:fx
--------
-       :g
-       :h
-      9:ix
-")
-    ;; * Test overlapping negative (before-context) lines.
-    ("x" -3 "\
-a
-bx
-c
-dx
-e
-f
-gx
-h
-" "\
-3 matches for \"x\" in buffer:  *test-occur*
-       :a
-      2:bx
-       :c
-      4:dx
-       :e
-       :f
-      7:gx
-")
-
-)
-  "List of tests for `occur'.
-Each element has the format:
-\(REGEXP NLINES INPUT-BUFFER-STRING OUTPUT-BUFFER-STRING).")
-
-(defun occur-test-case (test)
-  (let ((regexp (nth 0 test))
-        (nlines (nth 1 test))
-        (input-buffer-string (nth 2 test))
-        (temp-buffer (get-buffer-create " *test-occur*")))
-    (unwind-protect
-        (save-window-excursion
-          (with-current-buffer temp-buffer
-            (erase-buffer)
-            (insert input-buffer-string)
-            (occur regexp nlines)
-            (with-current-buffer "*Occur*"
-              (buffer-substring-no-properties (point-min) (point-max)))))
-      (and (buffer-name temp-buffer)
-           (kill-buffer temp-buffer)))))
-
-(defun occur-test-create (n)
-  "Create a test for element N of the `occur-tests' constant."
-  (let ((testname (intern (format "occur-test-%.2d" n)))
-        (testdoc (format "Test element %d of `occur-tests'." n)))
-    (eval
-     `(ert-deftest ,testname ()
-        ,testdoc
-        (let (occur-hook)
-          (should (equal (occur-test-case (nth ,n occur-tests))
-                         (nth 3 (nth ,n occur-tests)))))))))
-
-(dotimes (i (length occur-tests))
-  (occur-test-create i))
-
-(provide 'occur-tests)
-
-;;; occur-tests.el ends here
diff --git a/test/lisp/replace-tests.el b/test/lisp/replace-tests.el
index bfaab6c..2b71348 100644
--- a/test/lisp/replace-tests.el
+++ b/test/lisp/replace-tests.el
@@ -1,6 +1,9 @@
 ;;; replace-tests.el --- tests for replace.el.
 
-;; Copyright (C) 2015-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2010-2016 Free Software Foundation, Inc.
+
+;; Author: Nicolas Richard <address@hidden>
+;; Author: Juri Linkov <address@hidden>
 
 ;; This file is part of GNU Emacs.
 
@@ -32,4 +35,327 @@
                  (query-replace--split-string (concat before "\0" after))
                  (concat before "\0" after)))))))
 
+(defconst replace-occur-tests
+  '(
+    ;; * Test one-line matches (at bob, eob, bol, eol).
+    ("x" 0 "\
+xa
+b
+cx
+xd
+xex
+fx
+" "\
+6 matches in 5 lines for \"x\" in buffer:  *test-occur*
+      1:xa
+      3:cx
+      4:xd
+      5:xex
+      6:fx
+")
+    ;; * Test multi-line matches, this is the first test from
+    ;; http://lists.gnu.org/archive/html/emacs-devel/2005-06/msg01008.html
+    ;; where numbers are replaced with letters.
+    ("a\na" 0 "\
+a
+a
+a
+a
+a
+" "\
+2 matches for \"a\na\" in buffer:  *test-occur*
+      1:a
+       :a
+      3:a
+       :a
+")
+    ;; * Test multi-line matches, this is the second test from
+    ;; http://lists.gnu.org/archive/html/emacs-devel/2005-06/msg01008.html
+    ;; where numbers are replaced with letters.
+    ("a\nb" 0 "\
+a
+b
+c
+a
+b
+" "\
+2 matches for \"a\nb\" in buffer:  *test-occur*
+      1:a
+       :b
+      4:a
+       :b
+")
+    ;; * Test line numbers for multi-line matches with empty last match line.
+    ("a\n" 0 "\
+a
+
+c
+a
+
+" "\
+2 matches for \"a\n\" in buffer:  *test-occur*
+      1:a
+       :
+      4:a
+       :
+")
+    ;; * Test multi-line matches with 3 match lines.
+    ("x\n.x\n" 0 "\
+ax
+bx
+c
+d
+ex
+fx
+" "\
+2 matches for \"x\n.x\n\" in buffer:  *test-occur*
+      1:ax
+       :bx
+       :c
+      5:ex
+       :fx
+       :
+")
+    ;; * Test non-overlapping context lines with matches at bob/eob.
+    ("x" 1 "\
+ax
+b
+c
+d
+ex
+f
+g
+hx
+" "\
+3 matches for \"x\" in buffer:  *test-occur*
+      1:ax
+       :b
+-------
+       :d
+      5:ex
+       :f
+-------
+       :g
+      8:hx
+")
+    ;; * Test non-overlapping context lines with matches not at bob/eob.
+    ("x" 1 "\
+a
+bx
+c
+d
+ex
+f
+" "\
+2 matches for \"x\" in buffer:  *test-occur*
+       :a
+      2:bx
+       :c
+-------
+       :d
+      5:ex
+       :f
+")
+    ;; * Test overlapping context lines with matches at bob/eob.
+    ("x" 2 "\
+ax
+bx
+c
+dx
+e
+f
+gx
+h
+i
+j
+kx
+" "\
+5 matches for \"x\" in buffer:  *test-occur*
+      1:ax
+      2:bx
+       :c
+      4:dx
+       :e
+       :f
+      7:gx
+       :h
+       :i
+       :j
+     11:kx
+")
+    ;; * Test overlapping context lines with matches not at bob/eob.
+    ("x" 2 "\
+a
+b
+cx
+d
+e
+f
+gx
+h
+i
+" "\
+2 matches for \"x\" in buffer:  *test-occur*
+       :a
+       :b
+      3:cx
+       :d
+       :e
+       :f
+      7:gx
+       :h
+       :i
+")
+    ;; * Test overlapping context lines with empty first and last line..
+    ("x" 2 "\
+
+b
+cx
+d
+e
+f
+gx
+h
+
+" "\
+2 matches for \"x\" in buffer:  *test-occur*
+       :
+       :b
+      3:cx
+       :d
+       :e
+       :f
+      7:gx
+       :h
+       :
+")
+    ;; * Test multi-line overlapping context lines.
+    ("x\n.x" 2 "\
+ax
+bx
+c
+d
+ex
+fx
+g
+h
+i
+jx
+kx
+" "\
+3 matches for \"x\n.x\" in buffer:  *test-occur*
+      1:ax
+       :bx
+       :c
+       :d
+      5:ex
+       :fx
+       :g
+       :h
+       :i
+     10:jx
+       :kx
+")
+    ;; * Test multi-line non-overlapping context lines.
+    ("x\n.x" 2 "\
+ax
+bx
+c
+d
+e
+f
+gx
+hx
+" "\
+2 matches for \"x\n.x\" in buffer:  *test-occur*
+      1:ax
+       :bx
+       :c
+       :d
+-------
+       :e
+       :f
+      7:gx
+       :hx
+")
+    ;; * Test non-overlapping negative (before-context) lines.
+    ("x" -2 "\
+a
+bx
+c
+d
+e
+fx
+g
+h
+ix
+" "\
+3 matches for \"x\" in buffer:  *test-occur*
+       :a
+      2:bx
+-------
+       :d
+       :e
+      6:fx
+-------
+       :g
+       :h
+      9:ix
+")
+    ;; * Test overlapping negative (before-context) lines.
+    ("x" -3 "\
+a
+bx
+c
+dx
+e
+f
+gx
+h
+" "\
+3 matches for \"x\" in buffer:  *test-occur*
+       :a
+      2:bx
+       :c
+      4:dx
+       :e
+       :f
+      7:gx
+")
+
+)
+  "List of tests for `occur'.
+Each element has the format:
+\(REGEXP NLINES INPUT-BUFFER-STRING OUTPUT-BUFFER-STRING).")
+
+(defun replace-occur-test-case (test)
+  (let ((regexp (nth 0 test))
+        (nlines (nth 1 test))
+        (input-buffer-string (nth 2 test))
+        (temp-buffer (get-buffer-create " *test-occur*")))
+    (unwind-protect
+        (save-window-excursion
+          (with-current-buffer temp-buffer
+            (erase-buffer)
+            (insert input-buffer-string)
+            (occur regexp nlines)
+            (with-current-buffer "*Occur*"
+              (buffer-substring-no-properties (point-min) (point-max)))))
+      (and (buffer-name temp-buffer)
+           (kill-buffer temp-buffer)))))
+
+(defun replace-occur-test-create (n)
+  "Create a test for element N of the `replace-occur-tests' constant."
+  (let ((testname (intern (format "occur-test-%.2d" n)))
+        (testdoc (format "Test element %d of `replace-occur-tests'." n)))
+    (eval
+     `(ert-deftest ,testname ()
+        ,testdoc
+        (let (replace-occur-hook)
+          (should (equal (replace-occur-test-case (nth ,n replace-occur-tests))
+                         (nth 3 (nth ,n replace-occur-tests)))))))))
+
+(dotimes (i (length replace-occur-tests))
+  (replace-occur-test-create i))
+
 ;;; replace-tests.el ends here



reply via email to

[Prev in Thread] Current Thread [Next in Thread]