changeset 3130:a7ef4b25b467

[xemacs-hg @ 2005-12-08 10:58:57 by stephent] Tests for backward-up-list. <87oe3rg8l1.fsf@tleepslib.sk.tsukuba.ac.jp>
author stephent
date Thu, 08 Dec 2005 10:58:59 +0000
parents 17d3297c6bad
children 0f34868678d4
files tests/ChangeLog tests/automated/syntax-tests.el
diffstat 2 files changed, 44 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/tests/ChangeLog	Wed Dec 07 22:51:04 2005 +0000
+++ b/tests/ChangeLog	Thu Dec 08 10:58:59 2005 +0000
@@ -1,3 +1,8 @@
+2005-12-08  Stephen J. Turnbull  <stephen@xemacs.org>
+
+	* automated/syntax-tests.el (backward-up-list): New test.
+	Thanks to Zacjev Evgeny for report, Aidan Kehoe for reproduction.
+
 2005-10-26  Stephen J. Turnbull  <stephen@xemacs.org>
 
 	* XEmacs 21.5.23 "daikon" is released.
--- a/tests/automated/syntax-tests.el	Wed Dec 07 22:51:04 2005 +0000
+++ b/tests/automated/syntax-tests.el	Thu Dec 08 10:58:59 2005 +0000
@@ -150,3 +150,42 @@
 
       ;; this last used to crash
       (parse-partial-sexp point (point-max)))))
+
+;; Test backward-up-list
+;; Known-Bug: report = Evgeny Zacjev ca 2005-12-01, confirm = Aidan Kehoe
+
+(with-temp-buffer
+  ;; We are now using the standard syntax table.  Thus there's no need to
+  ;; worry about a bogus syntax setting, eg, in a Gnus Article buffer the
+  ;; bug doesn't manifest.
+
+  ;; value of point to the immediate left of this character
+  ;;       0          1           2
+  ;;       1234 56789 012 34567 890 12 3456 7
+  (insert "a ( \"b (c\" (\"defg\") \")\") h\n")
+
+  ;; #### This test should check *every* position.
+  (flet ((backward-up-list-moves-point-from-to (start expected-end)
+	   (goto-char start)
+	   (backward-up-list 1)
+	   (= (point) expected-end)))
+    (Known-Bug-Expect-Failure
+     ;; Evgeny's case
+     (Assert (backward-up-list-moves-point-from-to 16 12)))
+    (Assert (backward-up-list-moves-point-from-to 19 12))
+    (Assert (backward-up-list-moves-point-from-to 20 3))
+    (Known-Bug-Expect-Failure
+     (Assert (backward-up-list-moves-point-from-to 22 3)))
+    (Known-Bug-Expect-Failure
+     (Assert (backward-up-list-moves-point-from-to 23 3)))
+    (Assert (backward-up-list-moves-point-from-to 24 3))
+    ;; This is maybe a little tricky, since we don't expect the position
+    ;; check to happen -- so use an illegal expected position
+    ;; I don't think there's any other way for this to fail that way,
+    ;; barring hardware error....
+    (Check-Error-Message syntax-error
+			 "Unbalanced parentheses"
+			 (backward-up-list-moves-point-from-to 25 nil))
+    ;; special-case check that point didn't move
+    (Assert (= (point) 25))))
+