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))
|