diff tests/automated/syntax-tests.el @ 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 0d33547d9ed3
children 4035bd42c75e
line wrap: on
line diff
--- 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))))
+