annotate tests/automated/weak-tests.el @ 5750:66d2f63df75f

Correct some spelling and formatting in behavior.el. Mentioned in tracker issue 826, the third thing mentioned there (the file name at the bottom of the file) had already been fixed. lisp/ChangeLog addition: 2013-08-05 Aidan Kehoe <kehoea@parhasard.net> * behavior.el: (override-behavior): Correct some spelling and formatting here, thank you Steven Mitchell in tracker issue 826.
author Aidan Kehoe <kehoea@parhasard.net>
date Mon, 05 Aug 2013 10:05:32 +0100
parents 308d34e9f07d
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
890
7532e276a83a [xemacs-hg @ 2002-06-28 14:24:43 by michaels]
michaels
parents:
diff changeset
1 ;; Copyright (C) 1998 Free Software Foundation, Inc.
7532e276a83a [xemacs-hg @ 2002-06-28 14:24:43 by michaels]
michaels
parents:
diff changeset
2
7532e276a83a [xemacs-hg @ 2002-06-28 14:24:43 by michaels]
michaels
parents:
diff changeset
3 ;; Author: Mike Sperber <mike@xemacs.org>
7532e276a83a [xemacs-hg @ 2002-06-28 14:24:43 by michaels]
michaels
parents:
diff changeset
4 ;; Maintainer: Mike Sperber <mike@xemacs.org>
7532e276a83a [xemacs-hg @ 2002-06-28 14:24:43 by michaels]
michaels
parents:
diff changeset
5 ;; Created: 2002
7532e276a83a [xemacs-hg @ 2002-06-28 14:24:43 by michaels]
michaels
parents:
diff changeset
6 ;; Keywords: tests, database
7532e276a83a [xemacs-hg @ 2002-06-28 14:24:43 by michaels]
michaels
parents:
diff changeset
7
7532e276a83a [xemacs-hg @ 2002-06-28 14:24:43 by michaels]
michaels
parents:
diff changeset
8 ;; This file is part of XEmacs.
7532e276a83a [xemacs-hg @ 2002-06-28 14:24:43 by michaels]
michaels
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.
890
7532e276a83a [xemacs-hg @ 2002-06-28 14:24:43 by michaels]
michaels
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.
890
7532e276a83a [xemacs-hg @ 2002-06-28 14:24:43 by michaels]
michaels
parents:
diff changeset
19
7532e276a83a [xemacs-hg @ 2002-06-28 14:24:43 by michaels]
michaels
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/>.
890
7532e276a83a [xemacs-hg @ 2002-06-28 14:24:43 by michaels]
michaels
parents:
diff changeset
22
7532e276a83a [xemacs-hg @ 2002-06-28 14:24:43 by michaels]
michaels
parents:
diff changeset
23 ;;; Synched up with: Not in FSF.
7532e276a83a [xemacs-hg @ 2002-06-28 14:24:43 by michaels]
michaels
parents:
diff changeset
24
7532e276a83a [xemacs-hg @ 2002-06-28 14:24:43 by michaels]
michaels
parents:
diff changeset
25 ;;; Commentary:
7532e276a83a [xemacs-hg @ 2002-06-28 14:24:43 by michaels]
michaels
parents:
diff changeset
26
1636
f062c28f4a11 [xemacs-hg @ 2003-08-20 11:53:41 by crestani]
crestani
parents: 890
diff changeset
27 ;;; Test implementation of weak boxes, ephemerons, and weak lists
890
7532e276a83a [xemacs-hg @ 2002-06-28 14:24:43 by michaels]
michaels
parents:
diff changeset
28 ;;; See test-harness.el
7532e276a83a [xemacs-hg @ 2002-06-28 14:24:43 by michaels]
michaels
parents:
diff changeset
29
7532e276a83a [xemacs-hg @ 2002-06-28 14:24:43 by michaels]
michaels
parents:
diff changeset
30 (condition-case err
7532e276a83a [xemacs-hg @ 2002-06-28 14:24:43 by michaels]
michaels
parents:
diff changeset
31 (require 'test-harness)
7532e276a83a [xemacs-hg @ 2002-06-28 14:24:43 by michaels]
michaels
parents:
diff changeset
32 (file-error
7532e276a83a [xemacs-hg @ 2002-06-28 14:24:43 by michaels]
michaels
parents:
diff changeset
33 (when (and (boundp 'load-file-name) (stringp load-file-name))
7532e276a83a [xemacs-hg @ 2002-06-28 14:24:43 by michaels]
michaels
parents:
diff changeset
34 (push (file-name-directory load-file-name) load-path)
7532e276a83a [xemacs-hg @ 2002-06-28 14:24:43 by michaels]
michaels
parents:
diff changeset
35 (require 'test-harness))))
7532e276a83a [xemacs-hg @ 2002-06-28 14:24:43 by michaels]
michaels
parents:
diff changeset
36
7532e276a83a [xemacs-hg @ 2002-06-28 14:24:43 by michaels]
michaels
parents:
diff changeset
37 (garbage-collect)
1636
f062c28f4a11 [xemacs-hg @ 2003-08-20 11:53:41 by crestani]
crestani
parents: 890
diff changeset
38
f062c28f4a11 [xemacs-hg @ 2003-08-20 11:53:41 by crestani]
crestani
parents: 890
diff changeset
39 ;; tests for weak-boxes
890
7532e276a83a [xemacs-hg @ 2002-06-28 14:24:43 by michaels]
michaels
parents:
diff changeset
40 (let ((w (make-weak-box (cons 2 3))))
5136
0f66906b6e37 Undo Assert-equal, Assert=, etc.; make `Assert' handle this automatically
Ben Wing <ben@xemacs.org>
parents: 4855
diff changeset
41 (Assert (equal (cons 2 3) (weak-box-ref w)))
890
7532e276a83a [xemacs-hg @ 2002-06-28 14:24:43 by michaels]
michaels
parents:
diff changeset
42 (garbage-collect)
7532e276a83a [xemacs-hg @ 2002-06-28 14:24:43 by michaels]
michaels
parents:
diff changeset
43 (Assert (not (weak-box-ref w))))
7532e276a83a [xemacs-hg @ 2002-06-28 14:24:43 by michaels]
michaels
parents:
diff changeset
44
7532e276a83a [xemacs-hg @ 2002-06-28 14:24:43 by michaels]
michaels
parents:
diff changeset
45 (garbage-collect)
7532e276a83a [xemacs-hg @ 2002-06-28 14:24:43 by michaels]
michaels
parents:
diff changeset
46
1636
f062c28f4a11 [xemacs-hg @ 2003-08-20 11:53:41 by crestani]
crestani
parents: 890
diff changeset
47 ;; tests for ephemerons
890
7532e276a83a [xemacs-hg @ 2002-06-28 14:24:43 by michaels]
michaels
parents:
diff changeset
48 (let* ((p (cons 3 4))
7532e276a83a [xemacs-hg @ 2002-06-28 14:24:43 by michaels]
michaels
parents:
diff changeset
49 (finalized-p nil)
7532e276a83a [xemacs-hg @ 2002-06-28 14:24:43 by michaels]
michaels
parents:
diff changeset
50 (eph1 (make-ephemeron (cons 1 2) p
4021
cef5f57bb9e2 [xemacs-hg @ 2007-06-21 13:39:08 by aidan]
aidan
parents: 1773
diff changeset
51 #'(lambda (value)
cef5f57bb9e2 [xemacs-hg @ 2007-06-21 13:39:08 by aidan]
aidan
parents: 1773
diff changeset
52 (setq finalized-p t))))
890
7532e276a83a [xemacs-hg @ 2002-06-28 14:24:43 by michaels]
michaels
parents:
diff changeset
53 (eph2 (make-ephemeron p p)))
5136
0f66906b6e37 Undo Assert-equal, Assert=, etc.; make `Assert' handle this automatically
Ben Wing <ben@xemacs.org>
parents: 4855
diff changeset
54 (Assert (eq p (ephemeron-ref (make-ephemeron (cons 1 2) p))))
890
7532e276a83a [xemacs-hg @ 2002-06-28 14:24:43 by michaels]
michaels
parents:
diff changeset
55 (Assert (ephemeron-p (make-ephemeron (cons 1 2) p)))
7532e276a83a [xemacs-hg @ 2002-06-28 14:24:43 by michaels]
michaels
parents:
diff changeset
56
7532e276a83a [xemacs-hg @ 2002-06-28 14:24:43 by michaels]
michaels
parents:
diff changeset
57 (garbage-collect)
7532e276a83a [xemacs-hg @ 2002-06-28 14:24:43 by michaels]
michaels
parents:
diff changeset
58 (garbage-collect) ; ensure the post-gc hook runs
7532e276a83a [xemacs-hg @ 2002-06-28 14:24:43 by michaels]
michaels
parents:
diff changeset
59
7532e276a83a [xemacs-hg @ 2002-06-28 14:24:43 by michaels]
michaels
parents:
diff changeset
60 (Assert finalized-p)
7532e276a83a [xemacs-hg @ 2002-06-28 14:24:43 by michaels]
michaels
parents:
diff changeset
61 (Assert (not (ephemeron-ref eph1)))
7532e276a83a [xemacs-hg @ 2002-06-28 14:24:43 by michaels]
michaels
parents:
diff changeset
62
7532e276a83a [xemacs-hg @ 2002-06-28 14:24:43 by michaels]
michaels
parents:
diff changeset
63 (garbage-collect)
7532e276a83a [xemacs-hg @ 2002-06-28 14:24:43 by michaels]
michaels
parents:
diff changeset
64
5136
0f66906b6e37 Undo Assert-equal, Assert=, etc.; make `Assert' handle this automatically
Ben Wing <ben@xemacs.org>
parents: 4855
diff changeset
65 (Assert (eq p (ephemeron-ref eph2))))
890
7532e276a83a [xemacs-hg @ 2002-06-28 14:24:43 by michaels]
michaels
parents:
diff changeset
66
1636
f062c28f4a11 [xemacs-hg @ 2003-08-20 11:53:41 by crestani]
crestani
parents: 890
diff changeset
67 (garbage-collect)
f062c28f4a11 [xemacs-hg @ 2003-08-20 11:53:41 by crestani]
crestani
parents: 890
diff changeset
68
f062c28f4a11 [xemacs-hg @ 2003-08-20 11:53:41 by crestani]
crestani
parents: 890
diff changeset
69 ;; tests for simple weak-lists
f062c28f4a11 [xemacs-hg @ 2003-08-20 11:53:41 by crestani]
crestani
parents: 890
diff changeset
70 (let* ((a (cons 23 42))
f062c28f4a11 [xemacs-hg @ 2003-08-20 11:53:41 by crestani]
crestani
parents: 890
diff changeset
71 (b (cons 42 65))
f062c28f4a11 [xemacs-hg @ 2003-08-20 11:53:41 by crestani]
crestani
parents: 890
diff changeset
72 (testlist (list a b))
f062c28f4a11 [xemacs-hg @ 2003-08-20 11:53:41 by crestani]
crestani
parents: 890
diff changeset
73 (weaklist1 (make-weak-list 'simple))
f062c28f4a11 [xemacs-hg @ 2003-08-20 11:53:41 by crestani]
crestani
parents: 890
diff changeset
74 (weaklist2 (make-weak-list 'simple))
f062c28f4a11 [xemacs-hg @ 2003-08-20 11:53:41 by crestani]
crestani
parents: 890
diff changeset
75 (weaklist3 (make-weak-list 'simple))
f062c28f4a11 [xemacs-hg @ 2003-08-20 11:53:41 by crestani]
crestani
parents: 890
diff changeset
76 (weaklist4 (make-weak-list 'simple)))
f062c28f4a11 [xemacs-hg @ 2003-08-20 11:53:41 by crestani]
crestani
parents: 890
diff changeset
77 (set-weak-list-list weaklist1 testlist)
f062c28f4a11 [xemacs-hg @ 2003-08-20 11:53:41 by crestani]
crestani
parents: 890
diff changeset
78 (set-weak-list-list weaklist2 (list (cons 1 2) a b))
f062c28f4a11 [xemacs-hg @ 2003-08-20 11:53:41 by crestani]
crestani
parents: 890
diff changeset
79 (set-weak-list-list weaklist3 (list a (cons 1 2) b))
f062c28f4a11 [xemacs-hg @ 2003-08-20 11:53:41 by crestani]
crestani
parents: 890
diff changeset
80 (set-weak-list-list weaklist4 (list a b (cons 1 2)))
f062c28f4a11 [xemacs-hg @ 2003-08-20 11:53:41 by crestani]
crestani
parents: 890
diff changeset
81 (Assert (weak-list-p weaklist1))
5136
0f66906b6e37 Undo Assert-equal, Assert=, etc.; make `Assert' handle this automatically
Ben Wing <ben@xemacs.org>
parents: 4855
diff changeset
82 (Assert (eq (weak-list-type weaklist1) 'simple))
1636
f062c28f4a11 [xemacs-hg @ 2003-08-20 11:53:41 by crestani]
crestani
parents: 890
diff changeset
83 (Assert (weak-list-p weaklist2))
5136
0f66906b6e37 Undo Assert-equal, Assert=, etc.; make `Assert' handle this automatically
Ben Wing <ben@xemacs.org>
parents: 4855
diff changeset
84 (Assert (eq (weak-list-type weaklist2) 'simple))
1636
f062c28f4a11 [xemacs-hg @ 2003-08-20 11:53:41 by crestani]
crestani
parents: 890
diff changeset
85 (Assert (weak-list-p weaklist3))
5136
0f66906b6e37 Undo Assert-equal, Assert=, etc.; make `Assert' handle this automatically
Ben Wing <ben@xemacs.org>
parents: 4855
diff changeset
86 (Assert (eq (weak-list-type weaklist3) 'simple))
1636
f062c28f4a11 [xemacs-hg @ 2003-08-20 11:53:41 by crestani]
crestani
parents: 890
diff changeset
87 (Assert (weak-list-p weaklist4))
5136
0f66906b6e37 Undo Assert-equal, Assert=, etc.; make `Assert' handle this automatically
Ben Wing <ben@xemacs.org>
parents: 4855
diff changeset
88 (Assert (eq (weak-list-type weaklist4) 'simple))
1636
f062c28f4a11 [xemacs-hg @ 2003-08-20 11:53:41 by crestani]
crestani
parents: 890
diff changeset
89
f062c28f4a11 [xemacs-hg @ 2003-08-20 11:53:41 by crestani]
crestani
parents: 890
diff changeset
90 (garbage-collect)
f062c28f4a11 [xemacs-hg @ 2003-08-20 11:53:41 by crestani]
crestani
parents: 890
diff changeset
91
5136
0f66906b6e37 Undo Assert-equal, Assert=, etc.; make `Assert' handle this automatically
Ben Wing <ben@xemacs.org>
parents: 4855
diff changeset
92 (Assert (eq (weak-list-list weaklist1) testlist))
0f66906b6e37 Undo Assert-equal, Assert=, etc.; make `Assert' handle this automatically
Ben Wing <ben@xemacs.org>
parents: 4855
diff changeset
93 (Assert (equal (weak-list-list weaklist2) testlist))
0f66906b6e37 Undo Assert-equal, Assert=, etc.; make `Assert' handle this automatically
Ben Wing <ben@xemacs.org>
parents: 4855
diff changeset
94 (Assert (equal (weak-list-list weaklist3) testlist))
0f66906b6e37 Undo Assert-equal, Assert=, etc.; make `Assert' handle this automatically
Ben Wing <ben@xemacs.org>
parents: 4855
diff changeset
95 (Assert (equal (weak-list-list weaklist4) testlist)))
1636
f062c28f4a11 [xemacs-hg @ 2003-08-20 11:53:41 by crestani]
crestani
parents: 890
diff changeset
96
f062c28f4a11 [xemacs-hg @ 2003-08-20 11:53:41 by crestani]
crestani
parents: 890
diff changeset
97 (garbage-collect)
f062c28f4a11 [xemacs-hg @ 2003-08-20 11:53:41 by crestani]
crestani
parents: 890
diff changeset
98
f062c28f4a11 [xemacs-hg @ 2003-08-20 11:53:41 by crestani]
crestani
parents: 890
diff changeset
99 ;; tests for assoc weak-lists
f062c28f4a11 [xemacs-hg @ 2003-08-20 11:53:41 by crestani]
crestani
parents: 890
diff changeset
100 (let* ((a (cons 23 42))
f062c28f4a11 [xemacs-hg @ 2003-08-20 11:53:41 by crestani]
crestani
parents: 890
diff changeset
101 (b (cons a a))
f062c28f4a11 [xemacs-hg @ 2003-08-20 11:53:41 by crestani]
crestani
parents: 890
diff changeset
102 (testlist (list b b))
f062c28f4a11 [xemacs-hg @ 2003-08-20 11:53:41 by crestani]
crestani
parents: 890
diff changeset
103 (weaklist1 (make-weak-list 'assoc))
f062c28f4a11 [xemacs-hg @ 2003-08-20 11:53:41 by crestani]
crestani
parents: 890
diff changeset
104 (weaklist2 (make-weak-list 'assoc))
f062c28f4a11 [xemacs-hg @ 2003-08-20 11:53:41 by crestani]
crestani
parents: 890
diff changeset
105 (weaklist3 (make-weak-list 'assoc))
f062c28f4a11 [xemacs-hg @ 2003-08-20 11:53:41 by crestani]
crestani
parents: 890
diff changeset
106 (weaklist4 (make-weak-list 'assoc)))
f062c28f4a11 [xemacs-hg @ 2003-08-20 11:53:41 by crestani]
crestani
parents: 890
diff changeset
107 (set-weak-list-list weaklist1 testlist)
f062c28f4a11 [xemacs-hg @ 2003-08-20 11:53:41 by crestani]
crestani
parents: 890
diff changeset
108 (set-weak-list-list weaklist2 (list b (cons (cons 1 2) a) b))
f062c28f4a11 [xemacs-hg @ 2003-08-20 11:53:41 by crestani]
crestani
parents: 890
diff changeset
109 (set-weak-list-list weaklist3 (list b (cons a (cons 1 2)) b))
f062c28f4a11 [xemacs-hg @ 2003-08-20 11:53:41 by crestani]
crestani
parents: 890
diff changeset
110 (set-weak-list-list weaklist4 (list b (cons (cons 1 2) (cons 3 4)) b))
f062c28f4a11 [xemacs-hg @ 2003-08-20 11:53:41 by crestani]
crestani
parents: 890
diff changeset
111 (Assert (weak-list-p weaklist1))
5136
0f66906b6e37 Undo Assert-equal, Assert=, etc.; make `Assert' handle this automatically
Ben Wing <ben@xemacs.org>
parents: 4855
diff changeset
112 (Assert (eq (weak-list-type weaklist1) 'assoc))
1636
f062c28f4a11 [xemacs-hg @ 2003-08-20 11:53:41 by crestani]
crestani
parents: 890
diff changeset
113 (Assert (weak-list-p weaklist2))
5136
0f66906b6e37 Undo Assert-equal, Assert=, etc.; make `Assert' handle this automatically
Ben Wing <ben@xemacs.org>
parents: 4855
diff changeset
114 (Assert (eq (weak-list-type weaklist2) 'assoc))
1636
f062c28f4a11 [xemacs-hg @ 2003-08-20 11:53:41 by crestani]
crestani
parents: 890
diff changeset
115 (Assert (weak-list-p weaklist3))
5136
0f66906b6e37 Undo Assert-equal, Assert=, etc.; make `Assert' handle this automatically
Ben Wing <ben@xemacs.org>
parents: 4855
diff changeset
116 (Assert (eq (weak-list-type weaklist3) 'assoc))
1636
f062c28f4a11 [xemacs-hg @ 2003-08-20 11:53:41 by crestani]
crestani
parents: 890
diff changeset
117 (Assert (weak-list-p weaklist4))
5136
0f66906b6e37 Undo Assert-equal, Assert=, etc.; make `Assert' handle this automatically
Ben Wing <ben@xemacs.org>
parents: 4855
diff changeset
118 (Assert (eq (weak-list-type weaklist4) 'assoc))
1636
f062c28f4a11 [xemacs-hg @ 2003-08-20 11:53:41 by crestani]
crestani
parents: 890
diff changeset
119
f062c28f4a11 [xemacs-hg @ 2003-08-20 11:53:41 by crestani]
crestani
parents: 890
diff changeset
120 (garbage-collect)
f062c28f4a11 [xemacs-hg @ 2003-08-20 11:53:41 by crestani]
crestani
parents: 890
diff changeset
121
5136
0f66906b6e37 Undo Assert-equal, Assert=, etc.; make `Assert' handle this automatically
Ben Wing <ben@xemacs.org>
parents: 4855
diff changeset
122 (Assert (eq (weak-list-list weaklist1) testlist))
0f66906b6e37 Undo Assert-equal, Assert=, etc.; make `Assert' handle this automatically
Ben Wing <ben@xemacs.org>
parents: 4855
diff changeset
123 (Assert (equal (weak-list-list weaklist2) testlist))
0f66906b6e37 Undo Assert-equal, Assert=, etc.; make `Assert' handle this automatically
Ben Wing <ben@xemacs.org>
parents: 4855
diff changeset
124 (Assert (equal (weak-list-list weaklist3) testlist))
0f66906b6e37 Undo Assert-equal, Assert=, etc.; make `Assert' handle this automatically
Ben Wing <ben@xemacs.org>
parents: 4855
diff changeset
125 (Assert (equal (weak-list-list weaklist4) testlist)))
1636
f062c28f4a11 [xemacs-hg @ 2003-08-20 11:53:41 by crestani]
crestani
parents: 890
diff changeset
126
f062c28f4a11 [xemacs-hg @ 2003-08-20 11:53:41 by crestani]
crestani
parents: 890
diff changeset
127 (garbage-collect)
f062c28f4a11 [xemacs-hg @ 2003-08-20 11:53:41 by crestani]
crestani
parents: 890
diff changeset
128
f062c28f4a11 [xemacs-hg @ 2003-08-20 11:53:41 by crestani]
crestani
parents: 890
diff changeset
129 ;; tests for key-assoc weak-lists
f062c28f4a11 [xemacs-hg @ 2003-08-20 11:53:41 by crestani]
crestani
parents: 890
diff changeset
130 (let* ((a (cons 23 42))
f062c28f4a11 [xemacs-hg @ 2003-08-20 11:53:41 by crestani]
crestani
parents: 890
diff changeset
131 (b (cons a a))
f062c28f4a11 [xemacs-hg @ 2003-08-20 11:53:41 by crestani]
crestani
parents: 890
diff changeset
132 (testlist (list b b))
f062c28f4a11 [xemacs-hg @ 2003-08-20 11:53:41 by crestani]
crestani
parents: 890
diff changeset
133 (weaklist1 (make-weak-list 'key-assoc))
f062c28f4a11 [xemacs-hg @ 2003-08-20 11:53:41 by crestani]
crestani
parents: 890
diff changeset
134 (weaklist2 (make-weak-list 'key-assoc))
f062c28f4a11 [xemacs-hg @ 2003-08-20 11:53:41 by crestani]
crestani
parents: 890
diff changeset
135 (weaklist3 (make-weak-list 'key-assoc))
f062c28f4a11 [xemacs-hg @ 2003-08-20 11:53:41 by crestani]
crestani
parents: 890
diff changeset
136 (weaklist4 (make-weak-list 'key-assoc)))
f062c28f4a11 [xemacs-hg @ 2003-08-20 11:53:41 by crestani]
crestani
parents: 890
diff changeset
137 (set-weak-list-list weaklist1 testlist)
f062c28f4a11 [xemacs-hg @ 2003-08-20 11:53:41 by crestani]
crestani
parents: 890
diff changeset
138 (set-weak-list-list weaklist2 (list b (cons (cons 1 2) a) b))
f062c28f4a11 [xemacs-hg @ 2003-08-20 11:53:41 by crestani]
crestani
parents: 890
diff changeset
139 (set-weak-list-list weaklist3 (list b (cons a (cons 1 2)) b))
f062c28f4a11 [xemacs-hg @ 2003-08-20 11:53:41 by crestani]
crestani
parents: 890
diff changeset
140 (set-weak-list-list weaklist4 (list b (cons (cons 1 2) (cons 3 4)) b))
f062c28f4a11 [xemacs-hg @ 2003-08-20 11:53:41 by crestani]
crestani
parents: 890
diff changeset
141 (Assert (weak-list-p weaklist1))
5136
0f66906b6e37 Undo Assert-equal, Assert=, etc.; make `Assert' handle this automatically
Ben Wing <ben@xemacs.org>
parents: 4855
diff changeset
142 (Assert (eq (weak-list-type weaklist1) 'key-assoc))
1636
f062c28f4a11 [xemacs-hg @ 2003-08-20 11:53:41 by crestani]
crestani
parents: 890
diff changeset
143 (Assert (weak-list-p weaklist2))
5136
0f66906b6e37 Undo Assert-equal, Assert=, etc.; make `Assert' handle this automatically
Ben Wing <ben@xemacs.org>
parents: 4855
diff changeset
144 (Assert (eq (weak-list-type weaklist2) 'key-assoc))
1636
f062c28f4a11 [xemacs-hg @ 2003-08-20 11:53:41 by crestani]
crestani
parents: 890
diff changeset
145 (Assert (weak-list-p weaklist3))
5136
0f66906b6e37 Undo Assert-equal, Assert=, etc.; make `Assert' handle this automatically
Ben Wing <ben@xemacs.org>
parents: 4855
diff changeset
146 (Assert (eq (weak-list-type weaklist3) 'key-assoc))
1636
f062c28f4a11 [xemacs-hg @ 2003-08-20 11:53:41 by crestani]
crestani
parents: 890
diff changeset
147 (Assert (weak-list-p weaklist4))
5136
0f66906b6e37 Undo Assert-equal, Assert=, etc.; make `Assert' handle this automatically
Ben Wing <ben@xemacs.org>
parents: 4855
diff changeset
148 (Assert (eq (weak-list-type weaklist4) 'key-assoc))
1636
f062c28f4a11 [xemacs-hg @ 2003-08-20 11:53:41 by crestani]
crestani
parents: 890
diff changeset
149
f062c28f4a11 [xemacs-hg @ 2003-08-20 11:53:41 by crestani]
crestani
parents: 890
diff changeset
150 (garbage-collect)
f062c28f4a11 [xemacs-hg @ 2003-08-20 11:53:41 by crestani]
crestani
parents: 890
diff changeset
151
5136
0f66906b6e37 Undo Assert-equal, Assert=, etc.; make `Assert' handle this automatically
Ben Wing <ben@xemacs.org>
parents: 4855
diff changeset
152 (Assert (eq (weak-list-list weaklist1) testlist))
0f66906b6e37 Undo Assert-equal, Assert=, etc.; make `Assert' handle this automatically
Ben Wing <ben@xemacs.org>
parents: 4855
diff changeset
153 (Assert (equal (weak-list-list weaklist2) testlist))
0f66906b6e37 Undo Assert-equal, Assert=, etc.; make `Assert' handle this automatically
Ben Wing <ben@xemacs.org>
parents: 4855
diff changeset
154 (Assert (equal (weak-list-list weaklist3) (list b (cons a (cons 1 2)) b)))
0f66906b6e37 Undo Assert-equal, Assert=, etc.; make `Assert' handle this automatically
Ben Wing <ben@xemacs.org>
parents: 4855
diff changeset
155 (Assert (equal (weak-list-list weaklist4) testlist)))
1636
f062c28f4a11 [xemacs-hg @ 2003-08-20 11:53:41 by crestani]
crestani
parents: 890
diff changeset
156
f062c28f4a11 [xemacs-hg @ 2003-08-20 11:53:41 by crestani]
crestani
parents: 890
diff changeset
157 (garbage-collect)
f062c28f4a11 [xemacs-hg @ 2003-08-20 11:53:41 by crestani]
crestani
parents: 890
diff changeset
158
f062c28f4a11 [xemacs-hg @ 2003-08-20 11:53:41 by crestani]
crestani
parents: 890
diff changeset
159 ;; tests for value-assoc weak-lists
f062c28f4a11 [xemacs-hg @ 2003-08-20 11:53:41 by crestani]
crestani
parents: 890
diff changeset
160 (let* ((a (cons 23 42))
f062c28f4a11 [xemacs-hg @ 2003-08-20 11:53:41 by crestani]
crestani
parents: 890
diff changeset
161 (b (cons a a))
f062c28f4a11 [xemacs-hg @ 2003-08-20 11:53:41 by crestani]
crestani
parents: 890
diff changeset
162 (testlist (list b b))
f062c28f4a11 [xemacs-hg @ 2003-08-20 11:53:41 by crestani]
crestani
parents: 890
diff changeset
163 (weaklist1 (make-weak-list 'value-assoc))
f062c28f4a11 [xemacs-hg @ 2003-08-20 11:53:41 by crestani]
crestani
parents: 890
diff changeset
164 (weaklist2 (make-weak-list 'value-assoc))
f062c28f4a11 [xemacs-hg @ 2003-08-20 11:53:41 by crestani]
crestani
parents: 890
diff changeset
165 (weaklist3 (make-weak-list 'value-assoc))
f062c28f4a11 [xemacs-hg @ 2003-08-20 11:53:41 by crestani]
crestani
parents: 890
diff changeset
166 (weaklist4 (make-weak-list 'value-assoc)))
f062c28f4a11 [xemacs-hg @ 2003-08-20 11:53:41 by crestani]
crestani
parents: 890
diff changeset
167 (set-weak-list-list weaklist1 testlist)
f062c28f4a11 [xemacs-hg @ 2003-08-20 11:53:41 by crestani]
crestani
parents: 890
diff changeset
168 (set-weak-list-list weaklist2 (list b (cons (cons 1 2) a) b))
f062c28f4a11 [xemacs-hg @ 2003-08-20 11:53:41 by crestani]
crestani
parents: 890
diff changeset
169 (set-weak-list-list weaklist3 (list b (cons a (cons 1 2)) b))
f062c28f4a11 [xemacs-hg @ 2003-08-20 11:53:41 by crestani]
crestani
parents: 890
diff changeset
170 (set-weak-list-list weaklist4 (list b (cons (cons 1 2) (cons 3 4)) b))
f062c28f4a11 [xemacs-hg @ 2003-08-20 11:53:41 by crestani]
crestani
parents: 890
diff changeset
171 (Assert (weak-list-p weaklist1))
5136
0f66906b6e37 Undo Assert-equal, Assert=, etc.; make `Assert' handle this automatically
Ben Wing <ben@xemacs.org>
parents: 4855
diff changeset
172 (Assert (eq (weak-list-type weaklist1) 'value-assoc))
1636
f062c28f4a11 [xemacs-hg @ 2003-08-20 11:53:41 by crestani]
crestani
parents: 890
diff changeset
173 (Assert (weak-list-p weaklist2))
5136
0f66906b6e37 Undo Assert-equal, Assert=, etc.; make `Assert' handle this automatically
Ben Wing <ben@xemacs.org>
parents: 4855
diff changeset
174 (Assert (eq (weak-list-type weaklist2) 'value-assoc))
1636
f062c28f4a11 [xemacs-hg @ 2003-08-20 11:53:41 by crestani]
crestani
parents: 890
diff changeset
175 (Assert (weak-list-p weaklist3))
5136
0f66906b6e37 Undo Assert-equal, Assert=, etc.; make `Assert' handle this automatically
Ben Wing <ben@xemacs.org>
parents: 4855
diff changeset
176 (Assert (eq (weak-list-type weaklist3) 'value-assoc))
1636
f062c28f4a11 [xemacs-hg @ 2003-08-20 11:53:41 by crestani]
crestani
parents: 890
diff changeset
177 (Assert (weak-list-p weaklist4))
5136
0f66906b6e37 Undo Assert-equal, Assert=, etc.; make `Assert' handle this automatically
Ben Wing <ben@xemacs.org>
parents: 4855
diff changeset
178 (Assert (eq (weak-list-type weaklist4) 'value-assoc))
1636
f062c28f4a11 [xemacs-hg @ 2003-08-20 11:53:41 by crestani]
crestani
parents: 890
diff changeset
179
f062c28f4a11 [xemacs-hg @ 2003-08-20 11:53:41 by crestani]
crestani
parents: 890
diff changeset
180 (garbage-collect)
f062c28f4a11 [xemacs-hg @ 2003-08-20 11:53:41 by crestani]
crestani
parents: 890
diff changeset
181
5136
0f66906b6e37 Undo Assert-equal, Assert=, etc.; make `Assert' handle this automatically
Ben Wing <ben@xemacs.org>
parents: 4855
diff changeset
182 (Assert (eq (weak-list-list weaklist1) testlist))
0f66906b6e37 Undo Assert-equal, Assert=, etc.; make `Assert' handle this automatically
Ben Wing <ben@xemacs.org>
parents: 4855
diff changeset
183 (Assert (equal (weak-list-list weaklist2) (list b (cons (cons 1 2) a) b)))
0f66906b6e37 Undo Assert-equal, Assert=, etc.; make `Assert' handle this automatically
Ben Wing <ben@xemacs.org>
parents: 4855
diff changeset
184 (Assert (equal (weak-list-list weaklist3) testlist))
0f66906b6e37 Undo Assert-equal, Assert=, etc.; make `Assert' handle this automatically
Ben Wing <ben@xemacs.org>
parents: 4855
diff changeset
185 (Assert (equal (weak-list-list weaklist4) testlist)))
1636
f062c28f4a11 [xemacs-hg @ 2003-08-20 11:53:41 by crestani]
crestani
parents: 890
diff changeset
186
f062c28f4a11 [xemacs-hg @ 2003-08-20 11:53:41 by crestani]
crestani
parents: 890
diff changeset
187 (garbage-collect)
f062c28f4a11 [xemacs-hg @ 2003-08-20 11:53:41 by crestani]
crestani
parents: 890
diff changeset
188
f062c28f4a11 [xemacs-hg @ 2003-08-20 11:53:41 by crestani]
crestani
parents: 890
diff changeset
189 ;; tests for full-assoc weak-lists
f062c28f4a11 [xemacs-hg @ 2003-08-20 11:53:41 by crestani]
crestani
parents: 890
diff changeset
190 (let* ((a (cons 23 42))
f062c28f4a11 [xemacs-hg @ 2003-08-20 11:53:41 by crestani]
crestani
parents: 890
diff changeset
191 (b (cons a a))
f062c28f4a11 [xemacs-hg @ 2003-08-20 11:53:41 by crestani]
crestani
parents: 890
diff changeset
192 (testlist (list b b))
f062c28f4a11 [xemacs-hg @ 2003-08-20 11:53:41 by crestani]
crestani
parents: 890
diff changeset
193 (weaklist1 (make-weak-list 'full-assoc))
f062c28f4a11 [xemacs-hg @ 2003-08-20 11:53:41 by crestani]
crestani
parents: 890
diff changeset
194 (weaklist2 (make-weak-list 'full-assoc))
f062c28f4a11 [xemacs-hg @ 2003-08-20 11:53:41 by crestani]
crestani
parents: 890
diff changeset
195 (weaklist3 (make-weak-list 'full-assoc))
f062c28f4a11 [xemacs-hg @ 2003-08-20 11:53:41 by crestani]
crestani
parents: 890
diff changeset
196 (weaklist4 (make-weak-list 'full-assoc)))
f062c28f4a11 [xemacs-hg @ 2003-08-20 11:53:41 by crestani]
crestani
parents: 890
diff changeset
197 (set-weak-list-list weaklist1 testlist)
f062c28f4a11 [xemacs-hg @ 2003-08-20 11:53:41 by crestani]
crestani
parents: 890
diff changeset
198 (set-weak-list-list weaklist2 (list b (cons (cons 1 2) a) b))
f062c28f4a11 [xemacs-hg @ 2003-08-20 11:53:41 by crestani]
crestani
parents: 890
diff changeset
199 (set-weak-list-list weaklist3 (list b (cons a (cons 1 2)) b))
f062c28f4a11 [xemacs-hg @ 2003-08-20 11:53:41 by crestani]
crestani
parents: 890
diff changeset
200 (set-weak-list-list weaklist4 (list b (cons (cons 1 2) (cons 3 4)) b))
f062c28f4a11 [xemacs-hg @ 2003-08-20 11:53:41 by crestani]
crestani
parents: 890
diff changeset
201 (Assert (weak-list-p weaklist1))
5136
0f66906b6e37 Undo Assert-equal, Assert=, etc.; make `Assert' handle this automatically
Ben Wing <ben@xemacs.org>
parents: 4855
diff changeset
202 (Assert (eq (weak-list-type weaklist1) 'full-assoc))
1636
f062c28f4a11 [xemacs-hg @ 2003-08-20 11:53:41 by crestani]
crestani
parents: 890
diff changeset
203 (Assert (weak-list-p weaklist2))
5136
0f66906b6e37 Undo Assert-equal, Assert=, etc.; make `Assert' handle this automatically
Ben Wing <ben@xemacs.org>
parents: 4855
diff changeset
204 (Assert (eq (weak-list-type weaklist2) 'full-assoc))
1636
f062c28f4a11 [xemacs-hg @ 2003-08-20 11:53:41 by crestani]
crestani
parents: 890
diff changeset
205 (Assert (weak-list-p weaklist3))
5136
0f66906b6e37 Undo Assert-equal, Assert=, etc.; make `Assert' handle this automatically
Ben Wing <ben@xemacs.org>
parents: 4855
diff changeset
206 (Assert (eq (weak-list-type weaklist3) 'full-assoc))
1636
f062c28f4a11 [xemacs-hg @ 2003-08-20 11:53:41 by crestani]
crestani
parents: 890
diff changeset
207 (Assert (weak-list-p weaklist4))
5136
0f66906b6e37 Undo Assert-equal, Assert=, etc.; make `Assert' handle this automatically
Ben Wing <ben@xemacs.org>
parents: 4855
diff changeset
208 (Assert (eq (weak-list-type weaklist4) 'full-assoc))
1636
f062c28f4a11 [xemacs-hg @ 2003-08-20 11:53:41 by crestani]
crestani
parents: 890
diff changeset
209
f062c28f4a11 [xemacs-hg @ 2003-08-20 11:53:41 by crestani]
crestani
parents: 890
diff changeset
210 (garbage-collect)
f062c28f4a11 [xemacs-hg @ 2003-08-20 11:53:41 by crestani]
crestani
parents: 890
diff changeset
211
5136
0f66906b6e37 Undo Assert-equal, Assert=, etc.; make `Assert' handle this automatically
Ben Wing <ben@xemacs.org>
parents: 4855
diff changeset
212 (Assert (eq (weak-list-list weaklist1) testlist))
0f66906b6e37 Undo Assert-equal, Assert=, etc.; make `Assert' handle this automatically
Ben Wing <ben@xemacs.org>
parents: 4855
diff changeset
213 (Assert (equal (weak-list-list weaklist2) (list b (cons (cons 1 2) a) b)))
0f66906b6e37 Undo Assert-equal, Assert=, etc.; make `Assert' handle this automatically
Ben Wing <ben@xemacs.org>
parents: 4855
diff changeset
214 (Assert (equal (weak-list-list weaklist3) (list b (cons a (cons 1 2)) b)))
0f66906b6e37 Undo Assert-equal, Assert=, etc.; make `Assert' handle this automatically
Ben Wing <ben@xemacs.org>
parents: 4855
diff changeset
215 (Assert (equal (weak-list-list weaklist4) testlist)))
1636
f062c28f4a11 [xemacs-hg @ 2003-08-20 11:53:41 by crestani]
crestani
parents: 890
diff changeset
216
f062c28f4a11 [xemacs-hg @ 2003-08-20 11:53:41 by crestani]
crestani
parents: 890
diff changeset
217 (garbage-collect)
1773
aa0db78e67c4 [xemacs-hg @ 2003-11-01 14:54:53 by kaltenbach]
kaltenbach
parents: 1758
diff changeset
218
aa0db78e67c4 [xemacs-hg @ 2003-11-01 14:54:53 by kaltenbach]
kaltenbach
parents: 1758
diff changeset
219 ;; test the intended functionality of the fixpoint iteration used for marking
aa0db78e67c4 [xemacs-hg @ 2003-11-01 14:54:53 by kaltenbach]
kaltenbach
parents: 1758
diff changeset
220 ;; weak data structures like the ephermerons. Basically this tests gc_internals
aa0db78e67c4 [xemacs-hg @ 2003-11-01 14:54:53 by kaltenbach]
kaltenbach
parents: 1758
diff changeset
221 ;; to work properly but it also ensures the ephemerons behave according to the
aa0db78e67c4 [xemacs-hg @ 2003-11-01 14:54:53 by kaltenbach]
kaltenbach
parents: 1758
diff changeset
222 ;; specification
aa0db78e67c4 [xemacs-hg @ 2003-11-01 14:54:53 by kaltenbach]
kaltenbach
parents: 1758
diff changeset
223
aa0db78e67c4 [xemacs-hg @ 2003-11-01 14:54:53 by kaltenbach]
kaltenbach
parents: 1758
diff changeset
224 (let* ((inner_cons (cons 1 2))
aa0db78e67c4 [xemacs-hg @ 2003-11-01 14:54:53 by kaltenbach]
kaltenbach
parents: 1758
diff changeset
225 (weak1 (make-ephemeron inner_cons
aa0db78e67c4 [xemacs-hg @ 2003-11-01 14:54:53 by kaltenbach]
kaltenbach
parents: 1758
diff changeset
226 (make-ephemeron inner_cons
aa0db78e67c4 [xemacs-hg @ 2003-11-01 14:54:53 by kaltenbach]
kaltenbach
parents: 1758
diff changeset
227 (cons 1 2)
aa0db78e67c4 [xemacs-hg @ 2003-11-01 14:54:53 by kaltenbach]
kaltenbach
parents: 1758
diff changeset
228 '(lambda (v) t))
4021
cef5f57bb9e2 [xemacs-hg @ 2007-06-21 13:39:08 by aidan]
aidan
parents: 1773
diff changeset
229 #'(lambda (v) t))))
1773
aa0db78e67c4 [xemacs-hg @ 2003-11-01 14:54:53 by kaltenbach]
kaltenbach
parents: 1758
diff changeset
230 (Assert (ephemeron-ref (ephemeron-ref weak1)))
aa0db78e67c4 [xemacs-hg @ 2003-11-01 14:54:53 by kaltenbach]
kaltenbach
parents: 1758
diff changeset
231 (garbage-collect)
aa0db78e67c4 [xemacs-hg @ 2003-11-01 14:54:53 by kaltenbach]
kaltenbach
parents: 1758
diff changeset
232 ;; assure the inner ephis are still there
aa0db78e67c4 [xemacs-hg @ 2003-11-01 14:54:53 by kaltenbach]
kaltenbach
parents: 1758
diff changeset
233 (Assert (ephemeron-ref (ephemeron-ref weak1)))
aa0db78e67c4 [xemacs-hg @ 2003-11-01 14:54:53 by kaltenbach]
kaltenbach
parents: 1758
diff changeset
234 ;; delete the key reference and force cleaning up the garbage
aa0db78e67c4 [xemacs-hg @ 2003-11-01 14:54:53 by kaltenbach]
kaltenbach
parents: 1758
diff changeset
235 (setq inner_cons (cons 3 4))
aa0db78e67c4 [xemacs-hg @ 2003-11-01 14:54:53 by kaltenbach]
kaltenbach
parents: 1758
diff changeset
236 (garbage-collect)
aa0db78e67c4 [xemacs-hg @ 2003-11-01 14:54:53 by kaltenbach]
kaltenbach
parents: 1758
diff changeset
237 (Assert (not (ephemeron-ref weak1)))
aa0db78e67c4 [xemacs-hg @ 2003-11-01 14:54:53 by kaltenbach]
kaltenbach
parents: 1758
diff changeset
238 )
aa0db78e67c4 [xemacs-hg @ 2003-11-01 14:54:53 by kaltenbach]
kaltenbach
parents: 1758
diff changeset
239
aa0db78e67c4 [xemacs-hg @ 2003-11-01 14:54:53 by kaltenbach]
kaltenbach
parents: 1758
diff changeset
240 (garbage-collect)