Mercurial > hg > xemacs-beta
view tests/automated/database-tests.el @ 2881:0e0af7cbfd1b
[xemacs-hg @ 2005-08-01 16:28:18 by darrylo]
On some (64-bit) systems, sizeof(int) != sizeof(long), and this can
cause crashes because in-use lisp objects can get prematurely gc'd (and
0xdeadbeef'd). This occurs because the memory_description for the
Gap_Array structure incorrectly describes some members as XD_INT's
(32-bit objects), when they should actually be XD_ELEMCOUNT's and
XD_BYTECOUNT's (both 64-bit objects), as that is how they are declared
in the structure.
author | darrylo |
---|---|
date | Mon, 01 Aug 2005 16:28:21 +0000 |
parents | abe6d1db359e |
children | 189fb67ca31a |
line wrap: on
line source
;; Copyright (C) 1998 Free Software Foundation, Inc. ;; Author: Martin Buchholz <martin@xemacs.org> ;; Maintainer: Martin Buchholz <martin@xemacs.org> ;; Created: 1998 ;; 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 database functionality ;;; See test-harness.el (condition-case nil (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)))) (flet ((delete-database-files (filename) (dolist (fn (list filename (concat filename ".db") (concat filename ".pag") (concat filename ".dir"))) (ignore-file-errors (delete-file fn)))) (test-database (db) (Assert (databasep db)) (put-database "key1" "val1" db) (Assert (equal "val1" (get-database "key1" db))) (remove-database "key1" db) (Assert (equal nil (get-database "key1" db))) (close-database db) (Assert (not (database-live-p db))) (Assert (databasep db)))) (let ((filename (expand-file-name "test-harness" (temp-directory)))) (dolist (db-type '(dbm berkeley-db)) (when (featurep db-type) (princ "\n") (delete-database-files filename) (test-database (open-database filename db-type)) (delete-database-files filename)))))