summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--gnu/local.mk1
-rw-r--r--gnu/packages/emacs-xyz.scm4
-rw-r--r--gnu/packages/patches/emacs-yasnippet-fix-tests.patch95
3 files changed, 99 insertions, 1 deletions
diff --git a/gnu/local.mk b/gnu/local.mk
index d5b60bdba3..cfb499915a 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1038,6 +1038,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/emacs-telega-path-placeholder.patch	\
   %D%/packages/patches/emacs-telega-test-env.patch		\
   %D%/packages/patches/emacs-wordnut-require-adaptive-wrap.patch	\
+  %D%/packages/patches/emacs-yasnippet-fix-tests.patch	\
   %D%/packages/patches/enjarify-setup-py.patch			\
   %D%/packages/patches/enlightenment-fix-setuid-path.patch	\
   %D%/packages/patches/eog-update-libportal-usage.patch		\
diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm
index 787f6fc43e..8a319fc0ff 100644
--- a/gnu/packages/emacs-xyz.scm
+++ b/gnu/packages/emacs-xyz.scm
@@ -13490,7 +13490,9 @@ the Emacs Tempo library.  You may also write your templates in Lisp.")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "0via9dzw8m5lzymg1h78xkwjssh39zr3g6ccyamlf1rjzjsyxknv"))))
+        (base32 "0via9dzw8m5lzymg1h78xkwjssh39zr3g6ccyamlf1rjzjsyxknv"))
+       (patches
+        (search-patches "emacs-yasnippet-fix-tests.patch"))))
     (build-system emacs-build-system)
     (arguments
      `(#:tests? #t
diff --git a/gnu/packages/patches/emacs-yasnippet-fix-tests.patch b/gnu/packages/patches/emacs-yasnippet-fix-tests.patch
new file mode 100644
index 0000000000..475352d8db
--- /dev/null
+++ b/gnu/packages/patches/emacs-yasnippet-fix-tests.patch
@@ -0,0 +1,95 @@
+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.
+---
+ yasnippet-tests.el | 41 ++++++++++++++++++++++++++---------------
+ 1 file changed, 26 insertions(+), 15 deletions(-)
+
+diff --git a/yasnippet-tests.el b/yasnippet-tests.el
+index b8a7980f..9fadf00c 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))))))
+@@ -1390,7 +1393,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<))))))))
+@@ -1418,7 +1423,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))))
+@@ -1691,9 +1700,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")))