70
+ − 1 ;;; Testsuite for Mule string-matching - used to crash!
+ − 2
+ − 3 ;; Copyright (C) 1996 Sun Microsystems.
+ − 4
+ − 5 ;; This file is part of XEmacs.
+ − 6
+ − 7 ;; XEmacs is free software; you can redistribute it and/or modify it
+ − 8 ;; under the terms of the GNU General Public License as published by
+ − 9 ;; the Free Software Foundation; either version 2, or (at your option)
+ − 10 ;; any later version.
+ − 11
+ − 12 ;; XEmacs is distributed in the hope that it will be useful, but
+ − 13 ;; WITHOUT ANY WARRANTY; without even the implied warranty of
+ − 14 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ − 15 ;; General Public License for more details.
+ − 16
+ − 17 ;; You should have received a copy of the GNU General Public License
+ − 18 ;; along with XEmacs; see the file COPYING. If not, write to the Free
+ − 19 ;; Software Foundation,59 Temple Place - Suite 330,
+ − 20 ;; Boston, MA 02111-1307, USA.
+ − 21
+ − 22 ;;; Just load the file to run the test.
+ − 23
+ − 24 (defmacro test-match (result regexp string)
+ − 25 `(save-excursion
+ − 26 (assert (eq ,result (string-match ,regexp ,string)))
+ − 27 (let ((buf (get-buffer-create "*testsuite*"))
+ − 28 (random-text "foo$(BEl5~(B"))
+ − 29 (set-buffer buf)
+ − 30 (erase-buffer)
+ − 31 (insert random-text)
+ − 32 (insert ,string)
+ − 33 (goto-char (point-min))
+ − 34 (forward-char (length random-text))
+ − 35 (assert (eq (progn (re-search-forward ,regexp) (match-beginning 0))
+ − 36 (+ 1 ,result (length random-text))))
+ − 37 )))
+ − 38
+ − 39 (when (featurep 'mule)
+ − 40 (test-match 0 "a" "a")
+ − 41 (test-match 0 "[^a]" "$(B4A;z(B")
+ − 42 (test-match 2 "[^a]$(B;z(B" "ab$(B4A;z(B")
+ − 43 (test-match 1 "[^a]" "ab$(B4A;z(B")
+ − 44 (test-match 0 "[^a]" "$(B4A(Bb$(B4A;z(Bb")
+ − 45 (test-match 6 "[a]" "b$(B4A(Bb$(B4A;z(Bba")
+ − 46 (test-match 2 "[a]" "b$(B4A(Bab$(B4A;z(Bba")
+ − 47 (test-match 1 "[$(B4A(Ba]" "b$(B4A(Bab$(B4A;z(Bba")
+ − 48 (test-match 1 "[a$(B4A(B]" "b$(B4A(Bab$(B4A;z(Bba")
+ − 49 (test-match 0 "[^$(B4A(Ba]" "b$(B4A(Bab$(B4A;z(Bba")
+ − 50 (test-match 5 "$(B4A(B[^$(B4A(Ba]" "a$(B4A(Bab$(B4A4A;z(Bba")
+ − 51 )
+ − 52