2071
+ − 1 ;; Copyright (C) 2004 Vin Shelton
+ − 2
+ − 3 ;; Author: Vin Shelton <acs@xemacs.org>
+ − 4 ;; Maintainer: Vin Shelton <acs@xemacs.org>
+ − 5 ;; Created: 2004
+ − 6 ;; Keywords: tests
+ − 7
+ − 8 ;; This file is part of XEmacs.
+ − 9
+ − 10 ;; XEmacs is free software; you can redistribute it and/or modify it
+ − 11 ;; under the terms of the GNU General Public License as published by
+ − 12 ;; the Free Software Foundation; either version 2, or (at your option)
+ − 13 ;; any later version.
+ − 14
+ − 15 ;; XEmacs is distributed in the hope that it will be useful, but
+ − 16 ;; WITHOUT ANY WARRANTY; without even the implied warranty of
+ − 17 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ − 18 ;; General Public License for more details.
+ − 19
+ − 20 ;; You should have received a copy of the GNU General Public License
+ − 21 ;; along with XEmacs; see the file COPYING. If not, write to the Free
+ − 22 ;; Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+ − 23 ;; 02111-1307, USA.
+ − 24
+ − 25 ;;; Synched up with: Not in FSF.
+ − 26
+ − 27 ;;; Commentary:
+ − 28
2073
+ − 29 ;; Test tag support.
2071
+ − 30 ;; See test-harness.el for instructions on how to run these tests.
+ − 31
+ − 32 (let ((testfile "tag-test.c")
2073
+ − 33 (tagfile "TAGS")
+ − 34 (tags-build-completion-table nil))
+ − 35
+ − 36 (cd (temp-directory))
2071
+ − 37
+ − 38 ;; Create a TAGS file
+ − 39 (with-temp-file tagfile
+ − 40 (insert
+ − 41 "
+ − 42 tag-test.c,99
2076
+ − 43 struct mystruct mystruct2,1
2071
+ − 44 struct mystruct *foo\(4,23
2076
+ − 45 DEFUN \(\"require\", Frequire,require,7,51
2071
+ − 46 "))
+ − 47
+ − 48 ;; Create the test file
+ − 49 (with-temp-file testfile
+ − 50 (insert
+ − 51 "
+ − 52 struct mystruct { };
+ − 53
+ − 54 struct mystruct *foo\(\) {
+ − 55 }
+ − 56
+ − 57 DEFUN \(\"require\", Frequire, 1, 2, 0, /*
+ − 58 If feature FEATURE is not loaded, load it from FILENAME.
+ − 59 If FEATURE is not a member of the list `features', then the feature
+ − 60 is not loaded; so load the file FILENAME.
+ − 61 If FILENAME is omitted, the printname of FEATURE is used as the file name.
+ − 62 */
+ − 63 \(feature, filename\)\)
+ − 64 {
+ − 65 }
+ − 66 "))
+ − 67
+ − 68 (let ((tags-always-exact t))
+ − 69
+ − 70 ;; Search for the tag "mystruct"; this should succeed
3472
+ − 71 (Silence-Message
+ − 72 (find-tag "mystruct"))
2071
+ − 73 (Assert (eq (point) 2))
+ − 74
+ − 75 ;; Search again. The search should fail, based on the patch that
+ − 76 ;; Sven Grundmann submitted for 21.4.16.
+ − 77 (Check-Error-Message error "No more entries matching mystruct"
3472
+ − 78 (Silence-Message
+ − 79 (tags-loop-continue))))
2071
+ − 80
+ − 81 (let ((tags-always-exact nil))
+ − 82
+ − 83 ;; Search for the definition of "require". Until the etags.el upgrade
+ − 84 ;; from 21.5 in 21.4.16, this test would fail.
+ − 85 (condition-case nil
3472
+ − 86 (Silence-Message
+ − 87 (find-tag "require"))
2071
+ − 88 (t t))
+ − 89 (Assert (eq (point) 52)))
+ − 90
+ − 91 (kill-buffer testfile)
+ − 92 (delete-file testfile)
+ − 93 (kill-buffer tagfile)
+ − 94 (delete-file tagfile))