guix/gnu/packages/patches/emacs-yasnippet-fix-tests.patch
Liliana Marie Prikler 799f48771f
gnu: emacs-yasnippet: Fix build.
* gnu/packages/patches/emacs-yasnippet-fix-tests.patch: Handle arguments
in buffer-list.
2022-09-11 15:46:32 +02:00

113 lines
5.6 KiB
Diff
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

From 904a058fcf4e1f4985e03f8551eec282ca12ccb5 Mon Sep 17 00:00:00 2001
From: Philipp Stephani <phst@google.com>
Date: Mon, 6 Dec 2021 18:50:10 +0100
Subject: [PATCH] Unbreak unit tests under Emacs 28.
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
- Emacs 28 has a new mode lisp-data-mode for Lisp data.
- A test that was temporarily broken passes again.
- The default for org-adapt-indentation has changed.
- buffer-list may be called with arguments when native-comp is enabled.
---
yasnippet-tests.el | 45 ++++++++++++++++++++++++++++-----------------
1 file changed, 28 insertions(+), 17 deletions(-)
diff --git a/yasnippet-tests.el b/yasnippet-tests.el
index f7ca2bb..7618ab7 100644
--- a/yasnippet-tests.el
+++ b/yasnippet-tests.el
@@ -1,6 +1,6 @@
;;; yasnippet-tests.el --- some yasnippet tests -*- lexical-binding: t -*-
-;; Copyright (C) 2012-2015, 2017-2018 Free Software Foundation, Inc.
+;; Copyright (C) 2012-2015, 2017-2018, 2021 Free Software Foundation, Inc.
;; Author: João Távora <joaot@siscog.pt>
;; Keywords: emulations, convenience
@@ -556,16 +556,19 @@ XXXXX ------------------------"))))
(yas-mock-insert "foo bar")
(ert-simulate-command '(yas-next-field))
(goto-char (point-min))
- (let ((expected (with-temp-buffer
- (insert (format (concat "* Test foo bar\n"
- " " org-property-format "\n"
- " " org-property-format "\n"
- " " org-property-format)
- ":PROPERTIES:" ""
- ":ID:" "foo bar-after"
- ":END:" ""))
- (delete-trailing-whitespace)
- (buffer-string))))
+ ;; The default value of `org-adapt-indentation' changed between Org-mode 9.4
+ ;; and 9.5, so force a specific value.
+ (let* ((org-adapt-indentation nil)
+ (expected (with-temp-buffer
+ (insert (format (concat "* Test foo bar\n"
+ org-property-format "\n"
+ org-property-format "\n"
+ org-property-format)
+ ":PROPERTIES:" ""
+ ":ID:" "foo bar-after"
+ ":END:" ""))
+ (delete-trailing-whitespace)
+ (buffer-string))))
;; Some org-mode versions leave trailing whitespace, some don't.
(delete-trailing-whitespace)
(should (equal expected (buffer-string))))))
@@ -1195,11 +1198,11 @@ hello ${1:$(when (stringp yas-text) (funcall func yas-text))} foo${1:$$(concat \
(let ((saved-sym (make-symbol "yas--buffer-list")))
`(let ((,saved-sym (symbol-function 'buffer-list)))
(cl-letf (((symbol-function 'buffer-list)
- (lambda ()
+ (lambda (&rest args)
(cl-remove-if (lambda (buf)
(with-current-buffer buf
(eq major-mode 'lisp-interaction-mode)))
- (funcall ,saved-sym)))))
+ (funcall ,saved-sym args)))))
,@body))))
@@ -1356,7 +1359,9 @@ hello ${1:$(when (stringp yas-text) (funcall func yas-text))} foo${1:$$(concat \
,@(if (fboundp 'prog-mode)
'(prog-mode))
emacs-lisp-mode
- lisp-interaction-mode))
+ lisp-interaction-mode
+ ;; `lisp-data-mode' doesn't exist prior to Emacs 28.
+ ,@(and (fboundp 'lisp-data-mode) '(lisp-data-mode))))
(observed (yas--modes-to-activate)))
(should (equal major-mode (car observed)))
(should (equal (sort expected #'string<) (sort observed #'string<))))))))
@@ -1384,7 +1389,11 @@ hello ${1:$(when (stringp yas-text) (funcall func yas-text))} foo${1:$$(concat \
'(prog-mode))
emacs-lisp-mode
and-also-this-one
- lisp-interaction-mode))
+ lisp-interaction-mode
+ ;; `lisp-data-mode' doesn't exist prior to
+ ;; Emacs 28.
+ ,@(and (fboundp 'lisp-data-mode)
+ '(lisp-data-mode))))
(observed (yas--modes-to-activate)))
(should (equal expected-first
(cl-subseq observed 0 (length expected-first))))
@@ -1657,9 +1666,11 @@ TODO: be meaner"
"Test expansion of snippets in org source blocks."
;; org 9+ no longer runs fontification for text-mode, so our hacks
;; don't work. Note that old ert doesn't have skipping, so we have
- ;; to expect failure instead.
+ ;; to expect failure instead. Starting with Org-mode 9.5 this seems
+ ;; to work again.
:expected-result (if (and (fboundp 'org-in-src-block-p)
- (version< (org-version) "9"))
+ (or (version< (org-version) "9")
+ (version<= "9.5" (org-version))))
:passed :failed)
(let ((text-mode-hook #'yas-minor-mode))
(do-yas-org-native-tab-in-source-block "text")))
--
2.37.2