Mercurial > hg > xemacs-beta
changeset 890:7532e276a83a
[xemacs-hg @ 2002-06-28 14:24:43 by michaels]
2002-06-27 Mike Sperber <mike@xemacs.org>
* automated/weak-tests.el: Create.
author | michaels |
---|---|
date | Fri, 28 Jun 2002 14:24:45 +0000 |
parents | aa5a731873df |
children | bf76db2b446e |
files | tests/ChangeLog tests/automated/weak-tests.el |
diffstat | 2 files changed, 69 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/tests/ChangeLog Fri Jun 28 14:24:23 2002 +0000 +++ b/tests/ChangeLog Fri Jun 28 14:24:45 2002 +0000 @@ -1,3 +1,7 @@ +2002-06-27 Mike Sperber <mike@xemacs.org> + + * automated/weak-tests.el: Create. + 2002-06-23 Stephen J. Turnbull <stephen@xemacs.org> * automated/mule-tests.el ((featurep 'mule)): Fix unicode test.
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/automated/weak-tests.el Fri Jun 28 14:24:45 2002 +0000 @@ -0,0 +1,65 @@ +;; Copyright (C) 1998 Free Software Foundation, Inc. + +;; Author: Mike Sperber <mike@xemacs.org> +;; Maintainer: Mike Sperber <mike@xemacs.org> +;; Created: 2002 +;; Keywords: tests, database + +;; This file is part of XEmacs. + +;; XEmacs is free software; you can redistribute it and/or modify it +;; under the terms of the GNU General Public License as published by +;; the Free Software Foundation; either version 2, or (at your option) +;; any later version. + +;; XEmacs is distributed in the hope that it will be useful, but +;; WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +;; General Public License for more details. + +;; You should have received a copy of the GNU General Public License +;; along with XEmacs; see the file COPYING. If not, write to the Free +;; Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA +;; 02111-1307, USA. + +;;; Synched up with: Not in FSF. + +;;; Commentary: + +;;; Test implementation of weak boxes and ephemerons +;;; See test-harness.el + +(condition-case err + (require 'test-harness) + (file-error + (when (and (boundp 'load-file-name) (stringp load-file-name)) + (push (file-name-directory load-file-name) load-path) + (require 'test-harness)))) + +(garbage-collect) +(let ((w (make-weak-box (cons 2 3)))) + (Assert (equal (cons 2 3) (weak-box-ref w))) + (garbage-collect) + (Assert (not (weak-box-ref w)))) + +(garbage-collect) + +(let* ((p (cons 3 4)) + (finalized-p nil) + (eph1 (make-ephemeron (cons 1 2) p + '(lambda (value) + (setq finalized-p t)))) + (eph2 (make-ephemeron p p))) + (Assert (eq p (ephemeron-ref (make-ephemeron (cons 1 2) p)))) + (Assert (ephemeron-p (make-ephemeron (cons 1 2) p))) + + (garbage-collect) + (garbage-collect) ; ensure the post-gc hook runs + + (Assert finalized-p) + (Assert (not (ephemeron-ref eph1))) + + (garbage-collect) + + (Assert (eq p (ephemeron-ref eph2)))) +