New test for diff-mode handling trailing --
test/lisp/vc/diff-mode-tests.el: New test file
This commit is contained in:
parent
189df8262e
commit
3506ec2b11
1 changed files with 199 additions and 0 deletions
199
test/lisp/vc/diff-mode-tests.el
Normal file
199
test/lisp/vc/diff-mode-tests.el
Normal file
|
@ -0,0 +1,199 @@
|
|||
;; Copyright (C) 2017 Free Software Foundation, Inc
|
||||
|
||||
;; Author: Dima Kogan <dima@secretsauce.net>
|
||||
;; Maintainer: emacs-devel@gnu.org
|
||||
|
||||
;; 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/>.
|
||||
|
||||
|
||||
(ert-deftest diff-mode-test-ignore-trailing-dashes ()
|
||||
"Check to make sure we successfully ignore trailing -- made by
|
||||
'git format-patch'. This is bug #9597"
|
||||
|
||||
;; I made a test repo, put some files in it, made arbitrary changes
|
||||
;; and invoked 'git format-patch' to get a patch out of it. The
|
||||
;; patch and the before and after versions of the files appear here.
|
||||
;; The test simply tries to apply the patch. The patch contains
|
||||
;; trailing --, which confused diff-mode previously
|
||||
(let ((patch "From 18ed35640be496647e0a02fc155b4ee4a0490eca Mon Sep 17 00:00:00 2001
|
||||
From: Dima Kogan <dima@secretsauce.net>
|
||||
Date: Mon, 30 Jan 2017 22:24:13 -0800
|
||||
Subject: [PATCH] test commit
|
||||
|
||||
---
|
||||
fil | 3 ---
|
||||
fil2 | 4 ----
|
||||
2 files changed, 7 deletions(-)
|
||||
|
||||
diff --git a/fil b/fil
|
||||
index 10344f1..2a56245 100644
|
||||
--- a/fil
|
||||
+++ b/fil
|
||||
@@ -2,10 +2,8 @@ Afrocentrism
|
||||
Americanisms
|
||||
Americanization
|
||||
Americanizations
|
||||
-Americanized
|
||||
Americanizes
|
||||
Americanizing
|
||||
-Andrianampoinimerina
|
||||
Anglicanisms
|
||||
Antananarivo
|
||||
Apalachicola
|
||||
@@ -15,6 +13,5 @@ Aristophanes
|
||||
Aristotelian
|
||||
Ashurbanipal
|
||||
Australopithecus
|
||||
-Austronesian
|
||||
Bangladeshis
|
||||
Barquisimeto
|
||||
diff --git a/fil2 b/fil2
|
||||
index 8858f0d..86e8ea5 100644
|
||||
--- a/fil2
|
||||
+++ b/fil2
|
||||
@@ -1,20 +1,16 @@
|
||||
whippoorwills
|
||||
whitewashing
|
||||
wholehearted
|
||||
-wholeheartedly
|
||||
wholesomeness
|
||||
wildernesses
|
||||
windbreakers
|
||||
wisecracking
|
||||
withstanding
|
||||
-woodcarvings
|
||||
woolgathering
|
||||
workstations
|
||||
worthlessness
|
||||
wretchedness
|
||||
wristwatches
|
||||
-wrongfulness
|
||||
wrongheadedly
|
||||
wrongheadedness
|
||||
-xylophonists
|
||||
youthfulness
|
||||
--
|
||||
2.11.0
|
||||
|
||||
")
|
||||
(fil_before "Afrocentrism
|
||||
Americanisms
|
||||
Americanization
|
||||
Americanizations
|
||||
Americanized
|
||||
Americanizes
|
||||
Americanizing
|
||||
Andrianampoinimerina
|
||||
Anglicanisms
|
||||
Antananarivo
|
||||
Apalachicola
|
||||
Appalachians
|
||||
Argentinians
|
||||
Aristophanes
|
||||
Aristotelian
|
||||
Ashurbanipal
|
||||
Australopithecus
|
||||
Austronesian
|
||||
Bangladeshis
|
||||
Barquisimeto
|
||||
")
|
||||
(fil_after "Afrocentrism
|
||||
Americanisms
|
||||
Americanization
|
||||
Americanizations
|
||||
Americanizes
|
||||
Americanizing
|
||||
Anglicanisms
|
||||
Antananarivo
|
||||
Apalachicola
|
||||
Appalachians
|
||||
Argentinians
|
||||
Aristophanes
|
||||
Aristotelian
|
||||
Ashurbanipal
|
||||
Australopithecus
|
||||
Bangladeshis
|
||||
Barquisimeto
|
||||
")
|
||||
(fil2_before "whippoorwills
|
||||
whitewashing
|
||||
wholehearted
|
||||
wholeheartedly
|
||||
wholesomeness
|
||||
wildernesses
|
||||
windbreakers
|
||||
wisecracking
|
||||
withstanding
|
||||
woodcarvings
|
||||
woolgathering
|
||||
workstations
|
||||
worthlessness
|
||||
wretchedness
|
||||
wristwatches
|
||||
wrongfulness
|
||||
wrongheadedly
|
||||
wrongheadedness
|
||||
xylophonists
|
||||
youthfulness
|
||||
")
|
||||
(fil2_after "whippoorwills
|
||||
whitewashing
|
||||
wholehearted
|
||||
wholesomeness
|
||||
wildernesses
|
||||
windbreakers
|
||||
wisecracking
|
||||
withstanding
|
||||
woolgathering
|
||||
workstations
|
||||
worthlessness
|
||||
wretchedness
|
||||
wristwatches
|
||||
wrongheadedly
|
||||
wrongheadedness
|
||||
youthfulness
|
||||
")
|
||||
(temp-dir (make-temp-file "diff-mode-test" 'dir)))
|
||||
|
||||
(let ((buf (find-file-noselect (format "%s/%s" temp-dir "fil" )))
|
||||
(buf2 (find-file-noselect (format "%s/%s" temp-dir "fil2"))))
|
||||
(unwind-protect
|
||||
(progn
|
||||
(with-current-buffer buf (insert fil_before) (save-buffer))
|
||||
(with-current-buffer buf2 (insert fil2_before) (save-buffer))
|
||||
|
||||
(with-temp-buffer
|
||||
(cd temp-dir)
|
||||
(insert patch)
|
||||
(beginning-of-buffer)
|
||||
(diff-apply-hunk)
|
||||
(diff-apply-hunk)
|
||||
(diff-apply-hunk))
|
||||
|
||||
(should (equal (with-current-buffer buf (buffer-string))
|
||||
fil_after))
|
||||
(should (equal (with-current-buffer buf2 (buffer-string))
|
||||
fil2_after)))
|
||||
|
||||
(ignore-errors
|
||||
(with-current-buffer buf (set-buffer-modified-p nil))
|
||||
(kill-buffer buf)
|
||||
(with-current-buffer buf2 (set-buffer-modified-p nil))
|
||||
(kill-buffer buf2)
|
||||
(delete-directory temp-dir 'recursive))))))
|
||||
|
||||
|
||||
(provide 'diff-mode-tests)
|
Loading…
Add table
Reference in a new issue