source: trunk/abcl/test/lisp/abcl/closure-serialization.lisp

Last change on this file was 15364, checked in by Mark Evenson, 4 years ago

Fix test case for closure serialization

File size: 1.3 KB
Line 
1;;; compiler-tests.lisp
2;;;
3;;; Copyright (C) 2010 Erik Huelsmann
4;;;
5;;; $Id$
6;;;
7;;; This program is free software; you can redistribute it and/or
8;;; modify it under the terms of the GNU General Public License
9;;; as published by the Free Software Foundation; either version 2
10;;; of the License, or (at your option) any later version.
11;;;
12;;; This program is distributed in the hope that it will be useful,
13;;; but WITHOUT ANY WARRANTY; without even the implied warranty of
14;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15;;; GNU General Public License for more details.
16;;;
17;;; You should have received a copy of the GNU General Public License
18;;; along with this program; if not, write to the Free Software
19;;; Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
20(in-package #:abcl.test.lisp)
21(require '#:java)
22
23(defun f (x)
24  (flet ((g (y) (cons x y)))
25    (let* ((b (java:jnew "java.io.ByteArrayOutputStream"))
26           (o (java:jnew "java.io.ObjectOutputStream" b)))
27      (java:jcall "writeObject" o #'g)
28      (java:jcall "flush" o)
29      (java:jcall "toByteArray" b))))
30
31(deftest serialization-of-closure
32    (let* ((b (java:jnew "java.io.ByteArrayInputStream" (f 3)))
33         (i (java:jnew "java.io.ObjectInputStream" b)))
34      (fmakunbound 'f)
35      (funcall (java:jcall "readObject" i) T))
36  '(3 . T))
Note: See TracBrowser for help on using the repository browser.