[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/hyperbole c57a7b9ee0 11/14: Merge branch 'master' into
From: |
ELPA Syncer |
Subject: |
[elpa] externals/hyperbole c57a7b9ee0 11/14: Merge branch 'master' into rsw |
Date: |
Sun, 13 Apr 2025 06:58:57 -0400 (EDT) |
branch: externals/hyperbole
commit c57a7b9ee0e7477a949f4f00f27b54ee510235b5
Merge: 30359a2e54 62e9eb4b24
Author: bw <rsw@gnu.org>
Commit: bw <rsw@gnu.org>
Merge branch 'master' into rsw
---
ChangeLog | 14 ++++++++++++
Makefile | 13 +++++++----
test/hy-test-helpers.el | 5 +++-
test/hywiki-tests.el | 61 ++++++++++++++++++++++++++-----------------------
4 files changed, 59 insertions(+), 34 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index 50433ea8b1..bc3efe8854 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -18,6 +18,20 @@
by 'post-command-hook' before they can be used by 'post-self-insert-hook'.
(hywiki-delimited-p): Add support for strings as well.
+2025-04-06 Mats Lidell <matsl@gnu.org>
+
+* test/hy-test-helpers.el (hy-test-run-failing-flag): Set to non-nil to
+ activate failing test cases. Used by HYPB_ERT_FAILURE.
+
+* Makefile (HYPB_ERT_FAILURE): Command line controlled macro that tells if
+ failing test cases should be run.
+
+* test/hywiki-tests.el (hywiki-tests--run-test-case): Remove per char
+ verification in DSL. Just verify after each insert or remove as whole.
+ (hywiki-tests--wikiword-step-check): Simplify tests after DSL change.
+ (hywiki-tests--verify-hywiki-word): Add verification that
+ hywiki-word-is-p agrees with hywiki-word-at.
+
2025-04-05 Bob Weiner <rsw@gnu.org>
* hywiki.el (hywiki-word-at, hywiki-word-is-p): If has a #section, ensure
diff --git a/Makefile b/Makefile
index b56b4a368a..2a39b140be 100644
--- a/Makefile
+++ b/Makefile
@@ -3,7 +3,7 @@
# Author: Bob Weiner
#
# Orig-Date: 15-Jun-94 at 03:42:38
-# Last-Mod: 30-Mar-25 at 10:36:42 by Bob Weiner
+# Last-Mod: 12-Apr-25 at 13:15:02 by Bob Weiner
#
# Copyright (C) 1994-2025 Free Software Foundation, Inc.
# See the file HY-COPY for license information.
@@ -538,6 +538,9 @@ else
HYPB_ERT_BATCH = (ert-run-tests-batch-and-exit)
HYPB_ERT_INTERACTIVE = (ert-run-tests-interactively t)
endif
+ifeq ($(origin failure), command line)
+HYPB_ERT_FAILURE = (setq hy-test-run-failing-flag ${failure})
+endif
# For full backtrace run make test FULL_BT=<anything or even empty>
ifeq ($(origin FULL_BT), command line)
@@ -553,7 +556,7 @@ test-ert:
--eval "(let ((auto-save-default) (ert-batch-print-level 10) \
(ert-batch-print-length nil) \
$(HYPB_ERT_BATCH_BT) (ert-batch-backtrace-right-margin
2048)) \
- $(LOAD_TEST_ERT_FILES) $(HYPB_ERT_BATCH))"
+ $(LOAD_TEST_ERT_FILES) $(HYPB_ERT_FAILURE)
$(HYPB_ERT_BATCH))"
# Run all tests by starting an Emacs that runs the tests interactively in
windowed mode.
all-tests: test-all
@@ -562,14 +565,14 @@ test-all:
ifeq ($(TERM), dumb)
ifneq (,$(findstring .apple.,$(DISPLAY)))
# Found, on MacOS
- TERM=xterm-256color $(EMACS) --quick $(PRELOADS) --eval "(load-file
\"test/hy-test-dependencies.el\")" --eval "(let ((auto-save-default))
$(LOAD_TEST_ERT_FILES) $(HYPB_ERT_INTERACTIVE))"
+ TERM=xterm-256color $(EMACS) --quick $(PRELOADS) --eval "(load-file
\"test/hy-test-dependencies.el\")" --eval "(let ((auto-save-default))
$(LOAD_TEST_ERT_FILES) $(HYPB_ERT_FAILURE) $(HYPB_ERT_INTERACTIVE))"
else
# Not found, set TERM so tests will at least run within parent Emacs
session
- TERM=vt100 $(EMACS) --quick $(PRELOADS) --eval "(load-file
\"test/hy-test-dependencies.el\")" --eval "(let ($(LET_VARIABLES))
$(LOAD_TEST_ERT_FILES) $(HYPB_ERT_INTERACTIVE))"
+ TERM=vt100 $(EMACS) --quick $(PRELOADS) --eval "(load-file
\"test/hy-test-dependencies.el\")" --eval "(let ($(LET_VARIABLES))
$(LOAD_TEST_ERT_FILES) $(HYPB_ERT_FAILURE) $(HYPB_ERT_INTERACTIVE))"
endif
else
# Typical case, run emacs normally
- $(EMACS) --quick $(PRELOADS) --eval "(load-file
\"test/hy-test-dependencies.el\")" --eval "(let ($(LET_VARIABLES))
$(LOAD_TEST_ERT_FILES) $(HYPB_ERT_INTERACTIVE))"
+ $(EMACS) --quick $(PRELOADS) --eval "(load-file
\"test/hy-test-dependencies.el\")" --eval "(let ($(LET_VARIABLES))
$(LOAD_TEST_ERT_FILES) $(HYPB_ERT_FAILURE) $(HYPB_ERT_INTERACTIVE))"
endif
test-all-output:
diff --git a/test/hy-test-helpers.el b/test/hy-test-helpers.el
index b3db82f1cc..c9ada7d34e 100644
--- a/test/hy-test-helpers.el
+++ b/test/hy-test-helpers.el
@@ -3,7 +3,7 @@
;; Author: Mats Lidell <matsl@gnu.org>
;;
;; Orig-Date: 30-Jan-21 at 12:00:00
-;; Last-Mod: 26-Jan-25 at 18:24:56 by Bob Weiner
+;; Last-Mod: 6-Apr-25 at 19:45:02 by Mats Lidell
;;
;; SPDX-License-Identifier: GPL-3.0-or-later
;;
@@ -124,5 +124,8 @@ and the default WORD-LENGTH is 4."
(setq result (concat result (char-to-string (elt chars (random (length
chars)))))))
(replace-regexp-in-string "[[:space:]]" "" (capitalize result))))
+(defvar hy-test-run-failing-flag nil
+ "Non-nil means test cases that are known to fail will be tried.")
+
(provide 'hy-test-helpers)
;;; hy-test-helpers.el ends here
diff --git a/test/hywiki-tests.el b/test/hywiki-tests.el
index 7fd9d47b3a..c762ba7b52 100644
--- a/test/hywiki-tests.el
+++ b/test/hywiki-tests.el
@@ -3,7 +3,7 @@
;; Author: Mats Lidell
;;
;; Orig-Date: 18-May-24 at 23:59:48
-;; Last-Mod: 6-Apr-25 at 18:35:32 by Bob Weiner
+;; Last-Mod: 12-Apr-25 at 13:16:10 by Bob Weiner
;;
;; SPDX-License-Identifier: GPL-3.0-or-later
;;
@@ -1382,9 +1382,11 @@ If EXPECTED is a string also verify that the wikiword
matches the
string."
(if (not expected)
(should-not (hywiki-word-at))
- (if (stringp expected)
- (should (string= expected (hywiki-word-at)))
- (should (hywiki-word-at)))))
+ (let ((hywiki-word-found (hywiki-word-at)))
+ (if (stringp expected)
+ (should (string= expected hywiki-word-found))
+ (should hywiki-word-found))
+ (should (hywiki-word-is-p hywiki-word-found)))))
(defun hywiki-tests--run-test-case (test-case)
"Run the TEST-CASE from point.
@@ -1392,30 +1394,32 @@ Each test case consists of cons cells with an operation
and the expected
state of the WikiWord being constructed. Operations are either a string
to be inserted, a number of chars to be deleted or a symbol p<number>
for where to move point. The expected state is either nil for not a
-wikiword or non-nil for a wikiword. If equal to a string it is checked
-for match with the wikiword. Movement of point is relative to point
-when the function is called."
+wikiword or non-nil for a wikiword. The state is checked after all
+chars of the string are inserted. If equal to a string it is checked for
+match with the wikiword. Movement of point is relative to point when
+the function is called."
(let ((origin (point)))
- (should (listp test-case)) ; For traceability
+
+ ;; For traceability when looking through the list of should
+ ;; clauses in a failing test.
+ (should (listp test-case))
+
(dolist (steps test-case)
(let ((step (car steps))
(vfy (cdr steps)))
(cond ((stringp step)
(dolist (ch (string-to-list step))
- (unless (characterp ch)
- (message "(hywiki-tests--run-test-case):\n steps = %s\n
test-case = %s" steps test-case)
- (debug))
- (hywiki-tests--command-execute #'self-insert-command 1 ch)
- (save-excursion
- (goto-char (1- (point)))
- (hywiki-tests--verify-hywiki-word vfy))))
+ (hywiki-tests--command-execute #'self-insert-command 1 ch))
+ (save-excursion
+ (goto-char (1- (point)))
+ (hywiki-tests--verify-hywiki-word vfy)))
((integerp step)
(let ((forward (> step 0)))
(dotimes (_ (abs step))
(if forward
(hywiki-tests--command-execute #'delete-forward-char 1)
- (hywiki-tests--command-execute #'backward-delete-char 1))
- (hywiki-tests--verify-hywiki-word vfy))))
+ (hywiki-tests--command-execute #'backward-delete-char 1)))
+ (hywiki-tests--verify-hywiki-word vfy)))
((and (symbolp step) (string-prefix-p "p" (symbol-name step)))
(let* ((pos (string-to-number (substring (symbol-name step) 1)))
(newpos (+ origin (1- pos))))
@@ -1427,19 +1431,20 @@ when the function is called."
(defconst hywiki-tests--wikiword-step-check
'(
- (("H") ("i" . "Hi"))
- (("H") ("iHo" . t) ("#") ("s " . "HiHo#s"))
- (("H") ("iHo" . t) ("#") ("s" . t) (-1) (-1 . "HiHo"))
- (("H") ("iHo" . t) ("#") ("s" . t) (-1) (-3 . t) (-1) ("i" . "Hi"))
- (("H") ("iHo" . t) ("#") ("s " . t) ("n"))
- (("H") ("iHo" . t) ("#") ("s " . t) (" n"))
+ (("Hi" . "Hi"))
+ (("HiHo" . t) ("#"))
+ (("HiHo" . t) ("#s " . "HiHo#s"))
+ (("HiHo" . t) ("#s" . t) (-2 . "HiHo"))
+ (("HiHo#s" . t) (-4 . t) (-1) ("i" . "Hi"))
+ (("HiHo#s " . t) ("n"))
+ (("HiHo#s " . t) (" n"))
;; With delimiters
- (("(H") ("iHo" . t) ("#") ("s" . "HiHo#s") (" " . "HiHo#s"))
- (("(H") ("iHo" . t) ("#") ("s" . "HiHo#s") (")" . "HiHo#s"))
- (("(H") ("iHo" . t) ("#") ("s" . "HiHo#s") ("-" . "HiHo#s-") ("n" .
"HiHo#s-n") (")" . "HiHo#s-n"))
+ (("(HiHo#s" . "HiHo#s") (" " . "HiHo#s"))
+ (("(HiHo#s" . "HiHo#s") (")" . "HiHo#s)")) ; Delimiter part of WikiWord.
See below too.
+ (("(HiHo#s" . "HiHo#s") ("-" . "HiHo#s-") ("n" . "HiHo#s-n") (")" .
"HiHo#s-n)"))
;; Insert and delete between WikiWords
- (("H") ("iHo" . t) (p3 . t) (" " . "Hi") (p4 . "Ho") (-1 . "HiHo"))
- (("H") ("iho" . t) (p3 . t) (" " . "Hi") (p4) (-1 . "Hiho"))
+ (("HiHo" . t) (p3 . t) (" " . "Hi") (p4 . "Ho") (-1 . "HiHo"))
+ (("Hiho" . t) (p3 . t) (" " . "Hi") (p4) (-1 . "Hiho"))
)
"List of test cases for WikiWords.")
- [elpa] externals/hyperbole updated (62e9eb4b24 -> 1773ce6392), ELPA Syncer, 2025/04/13
- [elpa] externals/hyperbole 228d7a2a2a 02/14: Merge branch 'rsw' of hyperbole into rsw, ELPA Syncer, 2025/04/13
- [elpa] externals/hyperbole 2a2ddb85ee 01/14: hywiki.el - Simplify per-char hook functions; improve hywiki-word-at, ELPA Syncer, 2025/04/13
- [elpa] externals/hyperbole 3da32ad04e 06/14: hywiki-word-at - Fix delimited/non-delimited HyWikiWord handling, ELPA Syncer, 2025/04/13
- [elpa] externals/hyperbole c19720056c 07/14: hywiki.el - Improve hywiki-word-at and hywiki-word-is-p #sections, ELPA Syncer, 2025/04/13
- [elpa] externals/hyperbole c57a7b9ee0 11/14: Merge branch 'master' into rsw,
ELPA Syncer <=
- [elpa] externals/hyperbole 71f0bac2ac 12/14: Fix hkey-alist vertico handling and more, ELPA Syncer, 2025/04/13
- [elpa] externals/hyperbole 1773ce6392 14/14: Merge pull request #679 from rswgnu/rsw, ELPA Syncer, 2025/04/13
- [elpa] externals/hyperbole 9c27bc9787 04/14: hywiki.el - Fix dehighlighting when first WikiWord char is deleted, ELPA Syncer, 2025/04/13
- [elpa] externals/hyperbole 641868cf6f 09/14: hywiki.el - Fix much of hywiki-word-at and remove use of cl-lib, ELPA Syncer, 2025/04/13
- [elpa] externals/hyperbole 223496edb9 05/14: Merge branch 'master' into rsw, ELPA Syncer, 2025/04/13
- [elpa] externals/hyperbole bccc18d08b 03/14: Latest rsw updates; hywiki hooks and hywiki-word-at rewritten, ELPA Syncer, 2025/04/13
- [elpa] externals/hyperbole 30359a2e54 10/14: Merge branch 'rsw' of hyperbole into rsw, ELPA Syncer, 2025/04/13
- [elpa] externals/hyperbole c3ee94418a 08/14: Merge branch 'master' into rsw, ELPA Syncer, 2025/04/13
- [elpa] externals/hyperbole 29674ef91a 13/14: hywiki.el, hsys-org.el - Fix a bunch of predicates and tests, ELPA Syncer, 2025/04/13