annotate tests/automated/symbol-tests.el @ 5605:cc7f8a0e569a

Accept bignums unambiguously in the syntax for object labels, lread.c. src/ChangeLog addition: 2011-12-03 Aidan Kehoe <kehoea@parhasard.net> * lread.c (read1): Don't wrap when reading expressions that use bignums as object labels, that can lead to ambiguity and it's not actually that hard to use parse_integer() to avoid it. tests/ChangeLog addition: 2011-12-03 Aidan Kehoe <kehoea@parhasard.net> * automated/lisp-reader-tests.el: Check that integer object labels (using the #N=... syntax) treat bignums as such, rather than as fixnums that have wrapped.
author Aidan Kehoe <kehoea@parhasard.net>
date Sat, 03 Dec 2011 15:13:55 +0000
parents 071b810ceb18
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1 ;; Copyright (C) 1999 Free Software Foundation, Inc.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3 ;; Author: Hrvoje Niksic <hniksic@xemacs.org>
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4 ;; Maintainer: Hrvoje Niksic <hniksic@xemacs.org>
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
5 ;; Created: 1999
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6 ;; Keywords: tests
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
7
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
8 ;; This file is part of XEmacs.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
9
5402
308d34e9f07d Changed bulk of GPLv2 or later files identified by script
Mats Lidell <matsl@xemacs.org>
parents: 5136
diff changeset
10 ;; XEmacs is free software: you can redistribute it and/or modify it
308d34e9f07d Changed bulk of GPLv2 or later files identified by script
Mats Lidell <matsl@xemacs.org>
parents: 5136
diff changeset
11 ;; under the terms of the GNU General Public License as published by the
308d34e9f07d Changed bulk of GPLv2 or later files identified by script
Mats Lidell <matsl@xemacs.org>
parents: 5136
diff changeset
12 ;; Free Software Foundation, either version 3 of the License, or (at your
308d34e9f07d Changed bulk of GPLv2 or later files identified by script
Mats Lidell <matsl@xemacs.org>
parents: 5136
diff changeset
13 ;; option) any later version.
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
14
5402
308d34e9f07d Changed bulk of GPLv2 or later files identified by script
Mats Lidell <matsl@xemacs.org>
parents: 5136
diff changeset
15 ;; XEmacs is distributed in the hope that it will be useful, but WITHOUT
308d34e9f07d Changed bulk of GPLv2 or later files identified by script
Mats Lidell <matsl@xemacs.org>
parents: 5136
diff changeset
16 ;; ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
308d34e9f07d Changed bulk of GPLv2 or later files identified by script
Mats Lidell <matsl@xemacs.org>
parents: 5136
diff changeset
17 ;; FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
308d34e9f07d Changed bulk of GPLv2 or later files identified by script
Mats Lidell <matsl@xemacs.org>
parents: 5136
diff changeset
18 ;; for more details.
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
19
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
20 ;; You should have received a copy of the GNU General Public License
5402
308d34e9f07d Changed bulk of GPLv2 or later files identified by script
Mats Lidell <matsl@xemacs.org>
parents: 5136
diff changeset
21 ;; along with XEmacs. If not, see <http://www.gnu.org/licenses/>.
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
22
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
23 ;;; Synched up with: Not in FSF.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
24
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
25 ;;; Commentary:
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
26
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
27 ;; Test symbols operations.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
28 ;; See test-harness.el for instructions on how to run these tests.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
29
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
30 (eval-when-compile
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
31 (condition-case nil
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
32 (require 'test-harness)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
33 (file-error
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
34 (push "." load-path)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
35 (when (and (boundp 'load-file-name) (stringp load-file-name))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
36 (push (file-name-directory load-file-name) load-path))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
37 (require 'test-harness))))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
38
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
39
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
40 (defun ts-fresh-symbol-name (name)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
41 "Return a variant of NAME (a string) that is not interned."
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
42 (when (intern-soft name)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
43 (let ((count 1)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
44 (orig name))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
45 (while (progn
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
46 (setq name (format "%s-%d" orig count))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
47 (intern-soft name))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
48 (incf count))))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
49 name)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
50
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
51 ;;-----------------------------------------------------
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
52 ;; Creating, reading, and printing symbols
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
53 ;;-----------------------------------------------------
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
54
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
55 (dolist (name '("foo" "bar" ""
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
56 "something with space in it"
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
57 "a string with \0 in the middle."
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
58 "100" "10.0" "#<>[]]]];'\\';"
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
59 "!@#$%^^&*(()__"))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
60 (let ((interned (intern name))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
61 (uninterned (make-symbol name)))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
62 (Assert (symbolp interned))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
63 (Assert (symbolp uninterned))
5136
0f66906b6e37 Undo Assert-equal, Assert=, etc.; make `Assert' handle this automatically
Ben Wing <ben@xemacs.org>
parents: 4855
diff changeset
64 (Assert (equal (symbol-name interned) name))
0f66906b6e37 Undo Assert-equal, Assert=, etc.; make `Assert' handle this automatically
Ben Wing <ben@xemacs.org>
parents: 4855
diff changeset
65 (Assert (equal (symbol-name uninterned) name))
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
66 (Assert (not (eq interned uninterned)))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
67 (Assert (not (equal interned uninterned)))))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
68
5576
071b810ceb18 Declare labels as line where appropriate; use #'labels, not #'flet, tests.
Aidan Kehoe <kehoea@parhasard.net>
parents: 5560
diff changeset
69 (labels ((check-weak-list-unique (weak-list &optional reversep)
071b810ceb18 Declare labels as line where appropriate; use #'labels, not #'flet, tests.
Aidan Kehoe <kehoea@parhasard.net>
parents: 5560
diff changeset
70 "Check that elements of WEAK-LIST are referenced only there."
071b810ceb18 Declare labels as line where appropriate; use #'labels, not #'flet, tests.
Aidan Kehoe <kehoea@parhasard.net>
parents: 5560
diff changeset
71 (let ((len (length (weak-list-list weak-list))))
071b810ceb18 Declare labels as line where appropriate; use #'labels, not #'flet, tests.
Aidan Kehoe <kehoea@parhasard.net>
parents: 5560
diff changeset
72 (if (string-match "Using the new GC algorithms."
071b810ceb18 Declare labels as line where appropriate; use #'labels, not #'flet, tests.
Aidan Kehoe <kehoea@parhasard.net>
parents: 5560
diff changeset
73 Installation-string)
071b810ceb18 Declare labels as line where appropriate; use #'labels, not #'flet, tests.
Aidan Kehoe <kehoea@parhasard.net>
parents: 5560
diff changeset
74 (Implementation-Incomplete-Expect-Failure
071b810ceb18 Declare labels as line where appropriate; use #'labels, not #'flet, tests.
Aidan Kehoe <kehoea@parhasard.net>
parents: 5560
diff changeset
75 (Assert (not (zerop len)))
071b810ceb18 Declare labels as line where appropriate; use #'labels, not #'flet, tests.
Aidan Kehoe <kehoea@parhasard.net>
parents: 5560
diff changeset
76 (garbage-collect)
071b810ceb18 Declare labels as line where appropriate; use #'labels, not #'flet, tests.
Aidan Kehoe <kehoea@parhasard.net>
parents: 5560
diff changeset
77 (Assert (eq (length (weak-list-list weak-list))
071b810ceb18 Declare labels as line where appropriate; use #'labels, not #'flet, tests.
Aidan Kehoe <kehoea@parhasard.net>
parents: 5560
diff changeset
78 (if (not reversep) 0 len))))
071b810ceb18 Declare labels as line where appropriate; use #'labels, not #'flet, tests.
Aidan Kehoe <kehoea@parhasard.net>
parents: 5560
diff changeset
79 (Assert (not (zerop len)))
071b810ceb18 Declare labels as line where appropriate; use #'labels, not #'flet, tests.
Aidan Kehoe <kehoea@parhasard.net>
parents: 5560
diff changeset
80 (garbage-collect)
071b810ceb18 Declare labels as line where appropriate; use #'labels, not #'flet, tests.
Aidan Kehoe <kehoea@parhasard.net>
parents: 5560
diff changeset
81 (Assert (eq (length (weak-list-list weak-list))
071b810ceb18 Declare labels as line where appropriate; use #'labels, not #'flet, tests.
Aidan Kehoe <kehoea@parhasard.net>
parents: 5560
diff changeset
82 (if (not reversep) 0 len)))))))
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
83 (let ((weak-list (make-weak-list))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
84 (gc-cons-threshold most-positive-fixnum))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
85 ;; Symbols created with `make-symbol' and `gensym' should be fresh
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
86 ;; and not referenced anywhere else. We check that no other
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
87 ;; references are available using a weak list.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
88 (eval
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
89 ;; This statement must not be run byte-compiled, or the values
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
90 ;; remain referenced on the bytecode interpreter stack.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
91 '(set-weak-list-list weak-list (list (make-symbol "foo") (gensym "foo"))))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
92 (check-weak-list-unique weak-list)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
93
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
94 ;; Equivalent test for `intern' and `gentemp'.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
95 (eval
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
96 '(set-weak-list-list weak-list
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
97 (list (intern (ts-fresh-symbol-name "foo"))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
98 (gentemp (ts-fresh-symbol-name "bar")))))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
99 (check-weak-list-unique weak-list 'not)))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
100
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
101 (Assert (not (intern-soft (make-symbol "foo"))))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
102 (Assert (not (intern-soft (gensym "foo"))))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
103 (Assert (intern-soft (intern (ts-fresh-symbol-name "foo"))))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
104 (Assert (intern-soft (gentemp (ts-fresh-symbol-name "bar"))))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
105
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
106 ;; Reading a symbol should intern it automatically, unless the symbol
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
107 ;; is marked specially.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
108 (dolist (string (mapcar #'ts-fresh-symbol-name '("foo" "bar" "\\\0\\\1")))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
109 (setq symbol (read string)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
110 string (read (concat "\"" string "\"")))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
111 (Assert (intern-soft string))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
112 (Assert (intern-soft symbol))
5136
0f66906b6e37 Undo Assert-equal, Assert=, etc.; make `Assert' handle this automatically
Ben Wing <ben@xemacs.org>
parents: 4855
diff changeset
113 (Assert (eq (intern-soft string) (intern-soft symbol))))
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
114
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
115 (let ((fresh (read (concat "#:" (ts-fresh-symbol-name "foo")))))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
116 (Assert (not (intern-soft fresh))))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
117
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
118 ;; Check #N=OBJECT and #N# read syntax.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
119 (let* ((list (read "(#1=#:foo #1# #2=#:bar #2# #1# #2#)"))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
120 (foo (nth 0 list))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
121 (foo2 (nth 1 list))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
122 (bar (nth 2 list))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
123 (bar2 (nth 3 list))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
124 (foo3 (nth 4 list))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
125 (bar3 (nth 5 list)))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
126 (Assert (symbolp foo))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
127 (Assert (not (intern-soft foo)))
5136
0f66906b6e37 Undo Assert-equal, Assert=, etc.; make `Assert' handle this automatically
Ben Wing <ben@xemacs.org>
parents: 4855
diff changeset
128 (Assert (equal (symbol-name foo) "foo"))
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
129 (Assert (symbolp bar))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
130 (Assert (not (intern-soft bar)))
5136
0f66906b6e37 Undo Assert-equal, Assert=, etc.; make `Assert' handle this automatically
Ben Wing <ben@xemacs.org>
parents: 4855
diff changeset
131 (Assert (equal (symbol-name bar) "bar"))
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
132
5136
0f66906b6e37 Undo Assert-equal, Assert=, etc.; make `Assert' handle this automatically
Ben Wing <ben@xemacs.org>
parents: 4855
diff changeset
133 (Assert (eq foo foo2))
0f66906b6e37 Undo Assert-equal, Assert=, etc.; make `Assert' handle this automatically
Ben Wing <ben@xemacs.org>
parents: 4855
diff changeset
134 (Assert (eq foo2 foo3))
0f66906b6e37 Undo Assert-equal, Assert=, etc.; make `Assert' handle this automatically
Ben Wing <ben@xemacs.org>
parents: 4855
diff changeset
135 (Assert (eq bar bar2))
0f66906b6e37 Undo Assert-equal, Assert=, etc.; make `Assert' handle this automatically
Ben Wing <ben@xemacs.org>
parents: 4855
diff changeset
136 (Assert (eq bar2 bar3)))
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
137
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
138 ;; Check #N=OBJECT and #N# print syntax.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
139 (let* ((foo (make-symbol "foo"))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
140 (bar (make-symbol "bar"))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
141 (list (list foo foo bar bar foo bar)))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
142 (let* ((print-gensym nil)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
143 (printed-list (prin1-to-string list)))
5136
0f66906b6e37 Undo Assert-equal, Assert=, etc.; make `Assert' handle this automatically
Ben Wing <ben@xemacs.org>
parents: 4855
diff changeset
144 (Assert (equal printed-list "(foo foo bar bar foo bar)")))
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
145 (let* ((print-gensym t)
5560
58b38d5b32d0 Implement print-circle, allowing recursive and circular structures to be read.
Aidan Kehoe <kehoea@parhasard.net>
parents: 5402
diff changeset
146 (print-continuous-numbering t)
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
147 (printed-list (prin1-to-string list)))
5136
0f66906b6e37 Undo Assert-equal, Assert=, etc.; make `Assert' handle this automatically
Ben Wing <ben@xemacs.org>
parents: 4855
diff changeset
148 (Assert (equal printed-list "(#1=#:foo #1# #2=#:bar #2# #1# #2#)"))))
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
149
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
150 ;;-----------------------------------------------------
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
151 ;; Read-only symbols
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
152 ;;-----------------------------------------------------
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
153
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
154 (Check-Error setting-constant
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
155 (set nil nil))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
156 (Check-Error setting-constant
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
157 (set t nil))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
158
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
159 ;;-----------------------------------------------------
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
160 ;; Variable indirections
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
161 ;;-----------------------------------------------------
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
162
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
163 (let ((foo 0)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
164 (bar 1))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
165 (defvaralias 'foo 'bar)
5136
0f66906b6e37 Undo Assert-equal, Assert=, etc.; make `Assert' handle this automatically
Ben Wing <ben@xemacs.org>
parents: 4855
diff changeset
166 (Assert (eq foo bar))
0f66906b6e37 Undo Assert-equal, Assert=, etc.; make `Assert' handle this automatically
Ben Wing <ben@xemacs.org>
parents: 4855
diff changeset
167 (Assert (eq foo 1))
0f66906b6e37 Undo Assert-equal, Assert=, etc.; make `Assert' handle this automatically
Ben Wing <ben@xemacs.org>
parents: 4855
diff changeset
168 (Assert (eq (variable-alias 'foo) 'bar))
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
169 (defvaralias 'bar 'foo)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
170 (Check-Error cyclic-variable-indirection
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
171 (symbol-value 'foo))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
172 (Check-Error cyclic-variable-indirection
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
173 (symbol-value 'bar))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
174 (defvaralias 'foo nil)
5136
0f66906b6e37 Undo Assert-equal, Assert=, etc.; make `Assert' handle this automatically
Ben Wing <ben@xemacs.org>
parents: 4855
diff changeset
175 (Assert (eq foo 0))
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
176 (defvaralias 'bar nil)
5136
0f66906b6e37 Undo Assert-equal, Assert=, etc.; make `Assert' handle this automatically
Ben Wing <ben@xemacs.org>
parents: 4855
diff changeset
177 (Assert (eq bar 1)))
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
178
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
179 ;;-----------------------------------------------------
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
180 ;; Keywords
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
181 ;;-----------------------------------------------------
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
182
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
183 ;;; Reading keywords
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
184
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
185 ;; In Elisp, a keyword is by definition a symbol beginning with `:'
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
186 ;; that is interned in the global obarray.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
187
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
188 ;; In Elisp, a keyword is interned as any other symbol.
5136
0f66906b6e37 Undo Assert-equal, Assert=, etc.; make `Assert' handle this automatically
Ben Wing <ben@xemacs.org>
parents: 4855
diff changeset
189 (Assert (eq (read ":foo") (intern ":foo")))
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
190
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
191 ;; A keyword is self-quoting and evaluates to itself.
5136
0f66906b6e37 Undo Assert-equal, Assert=, etc.; make `Assert' handle this automatically
Ben Wing <ben@xemacs.org>
parents: 4855
diff changeset
192 (Assert (eq (eval (intern ":foo")) :foo))
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
193
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
194 ;; Keywords are recognized as such only if interned in the global
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
195 ;; obarray, and `keywordp' is aware of that.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
196 (Assert (keywordp :foo))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
197 (Assert (not (keywordp (intern ":foo" [0]))))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
198
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
199 ;; Keywords used to be initialized at read-time, which resulted in
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
200 ;; (symbol-value (intern ":some-new-keyword")) signaling an error.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
201 ;; Now we handle keywords at the time when the symbol is interned, so
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
202 ;; that (intern ":something) and (read ":something) will be
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
203 ;; equivalent. These tests check various operations on symbols that
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
204 ;; are guaranteed to be freshly interned.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
205
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
206 ;; Interning a fresh keyword string should produce a regular
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
207 ;; keyword.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
208 (let* ((fresh-keyword-name (ts-fresh-symbol-name ":foo"))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
209 (fresh-keyword (intern fresh-keyword-name)))
5136
0f66906b6e37 Undo Assert-equal, Assert=, etc.; make `Assert' handle this automatically
Ben Wing <ben@xemacs.org>
parents: 4855
diff changeset
210 (Assert (eq (symbol-value fresh-keyword) fresh-keyword))
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
211 (Assert (keywordp fresh-keyword)))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
212
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
213 ;; Likewise, reading a fresh keyword string should produce a regular
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
214 ;; keyword.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
215 (let* ((fresh-keyword-name (ts-fresh-symbol-name ":foo"))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
216 (fresh-keyword (read fresh-keyword-name)))
5136
0f66906b6e37 Undo Assert-equal, Assert=, etc.; make `Assert' handle this automatically
Ben Wing <ben@xemacs.org>
parents: 4855
diff changeset
217 (Assert (eq (symbol-value fresh-keyword) fresh-keyword))
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
218 (Assert (keywordp fresh-keyword)))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
219
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
220 ;;; Assigning to keywords
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
221
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
222 ;; You shouldn't be able to set its value to something bogus.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
223 (Check-Error setting-constant
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
224 (set :foo 5))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
225
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
226 ;; But, for backward compatibility, setting to the same value is OK.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
227 (Assert
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
228 (eq (set :foo :foo) :foo))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
229
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
230 ;; Playing games with `intern' shouldn't fool us.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
231 (Check-Error setting-constant
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
232 (set (intern ":foo" obarray) 5))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
233 (Assert
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
234 (eq (set (intern ":foo" obarray) :foo) :foo))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
235
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
236 ;; But symbols not interned in the global obarray are not real
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
237 ;; keywords (in elisp):
5136
0f66906b6e37 Undo Assert-equal, Assert=, etc.; make `Assert' handle this automatically
Ben Wing <ben@xemacs.org>
parents: 4855
diff changeset
238 (Assert (eq (set (intern ":foo" [0]) 5) 5))
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
239
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
240 ;;; Printing keywords
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
241
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
242 (let ((print-gensym t))
5136
0f66906b6e37 Undo Assert-equal, Assert=, etc.; make `Assert' handle this automatically
Ben Wing <ben@xemacs.org>
parents: 4855
diff changeset
243 (Assert (equal (prin1-to-string :foo) ":foo"))
0f66906b6e37 Undo Assert-equal, Assert=, etc.; make `Assert' handle this automatically
Ben Wing <ben@xemacs.org>
parents: 4855
diff changeset
244 (Assert (equal (prin1-to-string (intern ":foo")) ":foo"))
0f66906b6e37 Undo Assert-equal, Assert=, etc.; make `Assert' handle this automatically
Ben Wing <ben@xemacs.org>
parents: 4855
diff changeset
245 (Assert (equal (prin1-to-string (intern ":foo" [0])) "#::foo")))
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
246
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
247 (let ((print-gensym nil))
5136
0f66906b6e37 Undo Assert-equal, Assert=, etc.; make `Assert' handle this automatically
Ben Wing <ben@xemacs.org>
parents: 4855
diff changeset
248 (Assert (equal (prin1-to-string :foo) ":foo"))
0f66906b6e37 Undo Assert-equal, Assert=, etc.; make `Assert' handle this automatically
Ben Wing <ben@xemacs.org>
parents: 4855
diff changeset
249 (Assert (equal (prin1-to-string (intern ":foo")) ":foo"))
0f66906b6e37 Undo Assert-equal, Assert=, etc.; make `Assert' handle this automatically
Ben Wing <ben@xemacs.org>
parents: 4855
diff changeset
250 (Assert (equal (prin1-to-string (intern ":foo" [0])) ":foo")))
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
251
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
252 ;; #### Add many more tests for printing and reading symbols, as well
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
253 ;; as print-gensym and print-gensym-alist!
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
254
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
255 ;;-----------------------------------------------------
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
256 ;; Magic symbols
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
257 ;;-----------------------------------------------------
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
258
440
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 428
diff changeset
259 ;; Magic symbols are only half implemented. However, a subset of the
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 428
diff changeset
260 ;; functionality is being used to implement backward compatibility or
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 428
diff changeset
261 ;; clearer error messages for new features such as specifiers and
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 428
diff changeset
262 ;; glyphs. These tests try to test that working subset.
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
263
440
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 428
diff changeset
264 (let ((mysym (make-symbol "test-symbol"))
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 428
diff changeset
265 save)
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
266 (dontusethis-set-symbol-value-handler
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
267 mysym
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
268 'set-value
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
269 (lambda (&rest args)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
270 (throw 'test-tag args)))
440
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 428
diff changeset
271 (Assert (not (boundp mysym)))
5136
0f66906b6e37 Undo Assert-equal, Assert=, etc.; make `Assert' handle this automatically
Ben Wing <ben@xemacs.org>
parents: 4855
diff changeset
272 (Assert (equal (catch 'test-tag
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
273 (set mysym 'foo))
5136
0f66906b6e37 Undo Assert-equal, Assert=, etc.; make `Assert' handle this automatically
Ben Wing <ben@xemacs.org>
parents: 4855
diff changeset
274 `(,mysym (foo) set nil nil)))
440
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 428
diff changeset
275 (Assert (not (boundp mysym)))
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 428
diff changeset
276 (dontusethis-set-symbol-value-handler
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 428
diff changeset
277 mysym
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 428
diff changeset
278 'set-value
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 428
diff changeset
279 (lambda (&rest args) (setq save (nth 1 args))))
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 428
diff changeset
280 (set mysym 'foo)
5136
0f66906b6e37 Undo Assert-equal, Assert=, etc.; make `Assert' handle this automatically
Ben Wing <ben@xemacs.org>
parents: 4855
diff changeset
281 (Assert (equal save '(foo)))
0f66906b6e37 Undo Assert-equal, Assert=, etc.; make `Assert' handle this automatically
Ben Wing <ben@xemacs.org>
parents: 4855
diff changeset
282 (Assert (eq (symbol-value mysym) 'foo))
440
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 428
diff changeset
283 )
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
284
440
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 428
diff changeset
285 (let ((mysym (make-symbol "test-symbol"))
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 428
diff changeset
286 save)
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 428
diff changeset
287 (dontusethis-set-symbol-value-handler
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 428
diff changeset
288 mysym
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 428
diff changeset
289 'make-unbound
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 428
diff changeset
290 (lambda (&rest args)
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 428
diff changeset
291 (throw 'test-tag args)))
5136
0f66906b6e37 Undo Assert-equal, Assert=, etc.; make `Assert' handle this automatically
Ben Wing <ben@xemacs.org>
parents: 4855
diff changeset
292 (Assert (equal (catch 'test-tag
440
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 428
diff changeset
293 (makunbound mysym))
5136
0f66906b6e37 Undo Assert-equal, Assert=, etc.; make `Assert' handle this automatically
Ben Wing <ben@xemacs.org>
parents: 4855
diff changeset
294 `(,mysym nil makunbound nil nil)))
440
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 428
diff changeset
295 (dontusethis-set-symbol-value-handler
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 428
diff changeset
296 mysym
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 428
diff changeset
297 'make-unbound
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 428
diff changeset
298 (lambda (&rest args) (setq save (nth 2 args))))
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 428
diff changeset
299 (Assert (not (boundp mysym)))
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 428
diff changeset
300 (set mysym 'bar)
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 428
diff changeset
301 (Assert (null save))
5136
0f66906b6e37 Undo Assert-equal, Assert=, etc.; make `Assert' handle this automatically
Ben Wing <ben@xemacs.org>
parents: 4855
diff changeset
302 (Assert (eq (symbol-value mysym) 'bar))
440
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 428
diff changeset
303 (makunbound mysym)
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 428
diff changeset
304 (Assert (not (boundp mysym)))
5136
0f66906b6e37 Undo Assert-equal, Assert=, etc.; make `Assert' handle this automatically
Ben Wing <ben@xemacs.org>
parents: 4855
diff changeset
305 (Assert (eq save 'makunbound))
440
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 428
diff changeset
306 )
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 428
diff changeset
307
826
6728e641994e [xemacs-hg @ 2002-05-05 11:30:15 by ben]
ben
parents: 440
diff changeset
308 ;; pathname-coding-system is no more.
6728e641994e [xemacs-hg @ 2002-05-05 11:30:15 by ben]
ben
parents: 440
diff changeset
309 ; (when (featurep 'file-coding)
5136
0f66906b6e37 Undo Assert-equal, Assert=, etc.; make `Assert' handle this automatically
Ben Wing <ben@xemacs.org>
parents: 4855
diff changeset
310 ; (Assert (eq pathname-coding-system file-name-coding-system))
826
6728e641994e [xemacs-hg @ 2002-05-05 11:30:15 by ben]
ben
parents: 440
diff changeset
311 ; (let ((val1 file-name-coding-system)
6728e641994e [xemacs-hg @ 2002-05-05 11:30:15 by ben]
ben
parents: 440
diff changeset
312 ; (val2 pathname-coding-system))
5136
0f66906b6e37 Undo Assert-equal, Assert=, etc.; make `Assert' handle this automatically
Ben Wing <ben@xemacs.org>
parents: 4855
diff changeset
313 ; (Assert (eq val1 val2))
826
6728e641994e [xemacs-hg @ 2002-05-05 11:30:15 by ben]
ben
parents: 440
diff changeset
314 ; (let ((file-name-coding-system 'no-conversion-dos))
5136
0f66906b6e37 Undo Assert-equal, Assert=, etc.; make `Assert' handle this automatically
Ben Wing <ben@xemacs.org>
parents: 4855
diff changeset
315 ; (Assert (eq file-name-coding-system 'no-conversion-dos))
0f66906b6e37 Undo Assert-equal, Assert=, etc.; make `Assert' handle this automatically
Ben Wing <ben@xemacs.org>
parents: 4855
diff changeset
316 ; (Assert (eq pathname-coding-system file-name-coding-system)))
826
6728e641994e [xemacs-hg @ 2002-05-05 11:30:15 by ben]
ben
parents: 440
diff changeset
317 ; (let ((pathname-coding-system 'no-conversion-mac))
5136
0f66906b6e37 Undo Assert-equal, Assert=, etc.; make `Assert' handle this automatically
Ben Wing <ben@xemacs.org>
parents: 4855
diff changeset
318 ; (Assert (eq file-name-coding-system 'no-conversion-mac))
0f66906b6e37 Undo Assert-equal, Assert=, etc.; make `Assert' handle this automatically
Ben Wing <ben@xemacs.org>
parents: 4855
diff changeset
319 ; (Assert (eq pathname-coding-system file-name-coding-system)))
0f66906b6e37 Undo Assert-equal, Assert=, etc.; make `Assert' handle this automatically
Ben Wing <ben@xemacs.org>
parents: 4855
diff changeset
320 ; (Assert (eq file-name-coding-system pathname-coding-system))
0f66906b6e37 Undo Assert-equal, Assert=, etc.; make `Assert' handle this automatically
Ben Wing <ben@xemacs.org>
parents: 4855
diff changeset
321 ; (Assert (eq val1 file-name-coding-system)))
0f66906b6e37 Undo Assert-equal, Assert=, etc.; make `Assert' handle this automatically
Ben Wing <ben@xemacs.org>
parents: 4855
diff changeset
322 ; (Assert (eq pathname-coding-system file-name-coding-system)))
440
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 428
diff changeset
323
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
324
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
325 ;(let ((mysym (make-symbol "test-symbol")))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
326 ; (dontusethis-set-symbol-value-handler
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
327 ; mysym
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
328 ; 'make-local
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
329 ; (lambda (&rest args)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
330 ; (throw 'test-tag args)))
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
331 ; (Assert (equal (catch 'test-tag
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
332 ; (set mysym 'foo))
440
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 428
diff changeset
333 ; `(,mysym (foo) make-local nil nil))))
4381
3906442b491b Improve style and add tests for 'built-in-symbol-file'.
Stephen J. Turnbull <stephen@xemacs.org>
parents: 1413
diff changeset
334
3906442b491b Improve style and add tests for 'built-in-symbol-file'.
Stephen J. Turnbull <stephen@xemacs.org>
parents: 1413
diff changeset
335 ;; ----------------------------------------------------------------
3906442b491b Improve style and add tests for 'built-in-symbol-file'.
Stephen J. Turnbull <stephen@xemacs.org>
parents: 1413
diff changeset
336 ;; Symbol documentation
3906442b491b Improve style and add tests for 'built-in-symbol-file'.
Stephen J. Turnbull <stephen@xemacs.org>
parents: 1413
diff changeset
337 ;; ----------------------------------------------------------------
3906442b491b Improve style and add tests for 'built-in-symbol-file'.
Stephen J. Turnbull <stephen@xemacs.org>
parents: 1413
diff changeset
338
3906442b491b Improve style and add tests for 'built-in-symbol-file'.
Stephen J. Turnbull <stephen@xemacs.org>
parents: 1413
diff changeset
339 ;; built-in variable documentation
3906442b491b Improve style and add tests for 'built-in-symbol-file'.
Stephen J. Turnbull <stephen@xemacs.org>
parents: 1413
diff changeset
340 (Assert (string= (built-in-symbol-file 'internal-doc-file-name)
3906442b491b Improve style and add tests for 'built-in-symbol-file'.
Stephen J. Turnbull <stephen@xemacs.org>
parents: 1413
diff changeset
341 "doc.c"))
3906442b491b Improve style and add tests for 'built-in-symbol-file'.
Stephen J. Turnbull <stephen@xemacs.org>
parents: 1413
diff changeset
342
3906442b491b Improve style and add tests for 'built-in-symbol-file'.
Stephen J. Turnbull <stephen@xemacs.org>
parents: 1413
diff changeset
343 ;; built-in function documentation
3906442b491b Improve style and add tests for 'built-in-symbol-file'.
Stephen J. Turnbull <stephen@xemacs.org>
parents: 1413
diff changeset
344 (Assert (string= (built-in-symbol-file 'built-in-symbol-file)
3906442b491b Improve style and add tests for 'built-in-symbol-file'.
Stephen J. Turnbull <stephen@xemacs.org>
parents: 1413
diff changeset
345 "doc.c"))
3906442b491b Improve style and add tests for 'built-in-symbol-file'.
Stephen J. Turnbull <stephen@xemacs.org>
parents: 1413
diff changeset
346
3906442b491b Improve style and add tests for 'built-in-symbol-file'.
Stephen J. Turnbull <stephen@xemacs.org>
parents: 1413
diff changeset
347 ;; built-in macro documentation
3906442b491b Improve style and add tests for 'built-in-symbol-file'.
Stephen J. Turnbull <stephen@xemacs.org>
parents: 1413
diff changeset
348 (Assert (string= (built-in-symbol-file 'when)
3906442b491b Improve style and add tests for 'built-in-symbol-file'.
Stephen J. Turnbull <stephen@xemacs.org>
parents: 1413
diff changeset
349 "eval.c"))
3906442b491b Improve style and add tests for 'built-in-symbol-file'.
Stephen J. Turnbull <stephen@xemacs.org>
parents: 1413
diff changeset
350
3906442b491b Improve style and add tests for 'built-in-symbol-file'.
Stephen J. Turnbull <stephen@xemacs.org>
parents: 1413
diff changeset
351 ;; #### we should handle symbols defined in Lisp, dumped, autoloaded,
3906442b491b Improve style and add tests for 'built-in-symbol-file'.
Stephen J. Turnbull <stephen@xemacs.org>
parents: 1413
diff changeset
352 ;; and required, too.
3906442b491b Improve style and add tests for 'built-in-symbol-file'.
Stephen J. Turnbull <stephen@xemacs.org>
parents: 1413
diff changeset
353