source: trunk/j/src/org/armedbear/lisp/tests/java-tests.lisp @ 10253

Last change on this file since 10253 was 10253, checked in by piso, 16 years ago

Work in progress.

File size: 5.8 KB
Line 
1;;; java-tests.lisp
2;;;
3;;; Copyright (C) 2005 Peter Graves
4;;; $Id: java-tests.lisp,v 1.10 2005-10-28 12:19:47 piso Exp $
5;;;
6;;; This program is free software; you can redistribute it and/or
7;;; modify it under the terms of the GNU General Public License
8;;; as published by the Free Software Foundation; either version 2
9;;; of the License, or (at your option) any later version.
10;;;
11;;; This program is distributed in the hope that it will be useful,
12;;; but WITHOUT ANY WARRANTY; without even the implied warranty of
13;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14;;; GNU General Public License for more details.
15;;;
16;;; You should have received a copy of the GNU General Public License
17;;; along with this program; if not, write to the Free Software
18;;; Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
19
20(unless (member "RT" *modules* :test #'string=)
21  (load "rt-package.lisp")
22  (load #+abcl (compile-file-if-needed "rt.lisp")
23        ;; Force compilation to avoid fasl name conflict between SBCL and
24        ;; Allegro.
25        #-abcl (compile-file "rt.lisp"))
26  (provide "RT"))
27
28;; FIXME
29(load "test-utilities.lisp")
30
31(regression-test:rem-all-tests)
32
33(setf regression-test:*expected-failures* nil)
34
35(unless (find-package '#:test)
36  (defpackage #:test (:use #:cl #:regression-test)))
37
38(in-package #:test)
39
40#+abcl
41(use-package '#:java)
42
43#+allegro
44(require :jlinker)
45#+allegro
46(use-package '#:javatools.jlinker)
47#+allegro
48(use-package '#:javatools.jlinker '#:cl-user) ;; For convenience only.
49#+(and allegro mswindows)
50(use-package '#:javatools.jlinker '#:cg-user) ;; For convenience only.
51#+allegro
52(load "jl-config.cl")
53#+allegro
54(or (jlinker-query) (jlinker-init))
55
56#+abcl
57(deftest java-object.1
58  (class-name (find-class 'java-object nil))
59  java-object)
60
61(deftest jclass.1
62  (jcall (jmethod "java.lang.Object" "toString") (jclass "java.lang.String"))
63  "class java.lang.String")
64
65(deftest jclass.2
66  (equal (jcall (jmethod "java.lang.Object" "getClass") "foo")
67         (jclass "java.lang.String"))
68  #+abcl    t
69  #+allegro nil)
70
71(deftest jclass.3
72  (equal (jclass '|java.lang.String|) (jclass "java.lang.String"))
73  t)
74
75(deftest jclass.4
76  (let ((class1 (jcall (jmethod "java.lang.Object" "getClass") "foo"))
77        (class2 (jclass "java.lang.String")))
78    (jcall (jmethod "java.lang.Object" "equals" "java.lang.Object")
79           class1 class2))
80  t)
81
82(deftest jclass.5
83  (jcall (jmethod "java.lang.Object" "toString") (jclass "int"))
84  "int")
85
86(deftest jclass.6
87  (equal (jclass '|int|) (jclass "int"))
88  t)
89
90;; No such class.
91(deftest jclass.error.1
92  (signals-error (jclass "foo") 'error)
93  t)
94
95;; Silly argument.
96(deftest jclass.error.2
97  (signals-error (jclass 42) 'error)
98  t)
99
100(deftest jclass-of.1
101  (jclass-of "foo")
102  "java.lang.String"
103  "java.lang.String")
104
105(deftest jclass-of.2
106  (jclass-of "foo" "java.lang.String")
107  t
108  "java.lang.String")
109
110(deftest jclass-of.3
111  (jclass-of "foo" "bar")
112  nil
113  "java.lang.String")
114
115(deftest jclass-of.4
116  (jclass-of 42)
117  nil
118  nil)
119
120(deftest jclass-of.5
121  (jclass-of 'foo)
122  nil
123  nil)
124
125(deftest jclass-name.1
126  (jclass-name "java.lang.String")
127  "java.lang.String")
128
129(deftest jclass-name.2
130  (signals-error (jclass-name "foo") 'error)
131  t)
132
133(deftest jclass-name.3
134  (signals-error (jclass-name 42) 'error)
135  t)
136
137(deftest jclass-name.4
138  (jclass-name (jclass "java.lang.String"))
139  "java.lang.String")
140
141(deftest jclass-name.5
142  (jclass-name (jclass "java.lang.String") "java.lang.String")
143  t
144  "java.lang.String")
145
146(deftest jclass-name.6
147  (jclass-name (jclass "java.lang.String") "java.lang.Object")
148  nil
149  "java.lang.String")
150
151(deftest jclass-name.7
152  (jclass-name (jclass "java.lang.String") "foo")
153  nil
154  "java.lang.String")
155
156(deftest jclass-name.8
157  (jclass-name (jclass "int"))
158  "int")
159
160(deftest jconstructor.1
161  (jclass-of (jconstructor "java.lang.String" "java.lang.String"))
162  "java.lang.reflect.Constructor"
163  "java.lang.reflect.Constructor")
164
165(deftest jnew.1
166  (let ((constructor (jconstructor "java.lang.String" "java.lang.String")))
167    (jclass-of (jnew constructor "foo")))
168  "java.lang.String"
169  "java.lang.String")
170
171(deftest jnew.2
172  (jclass-of (jnew (jconstructor "java.awt.Point")))
173  "java.awt.Point"
174  "java.awt.Point")
175
176#-abcl
177(deftest jnew.3
178  (jclass-of (jnew "java.awt.Point") "java.awt.Point")
179  t
180  "java.awt.Point")
181
182(deftest jcall.1
183  (let ((method (jmethod "java.lang.String" "length")))
184    (jcall method "test"))
185  4)
186
187(deftest jcall.2
188  (jcall "length" "test")
189  4)
190
191(deftest jcall.3
192  (let ((method (jmethod "java.lang.String" "regionMatches" 4)))
193    (jcall method "test" 0 "this is a test" 10 4))
194  t)
195
196(deftest jcall.4
197  (let ((method (jmethod "java.lang.String" "regionMatches" 5)))
198    (jcall method "test" (make-immediate-object nil :boolean) 0 "this is a test" 10 4))
199  t)
200
201(deftest jfield.1
202  (type-of (jfield "java.lang.Integer" "TYPE"))
203  #+abcl    java-object
204  #+allegro tran-struct)
205
206(deftest jmethod.1
207  (jcall (jmethod "java.lang.Object" "toString")
208         (jmethod "java.lang.String" "substring" 1))
209  "public java.lang.String java.lang.String.substring(int)")
210
211(deftest jmethod.2
212  (jcall (jmethod "java.lang.Object" "toString")
213         (jmethod "java.lang.String" "substring" 2))
214  "public java.lang.String java.lang.String.substring(int,int)")
215
216(deftest jmethod.3
217  (signals-error (jmethod "java.lang.String" "substring" 3) 'error)
218  t)
219
220#+abcl
221(deftest jmethod-return-type.1
222  (jclass-name (jmethod-return-type (jmethod "java.lang.String" "length")))
223  "int")
224
225#+abcl
226(deftest jmethod-return-type.2
227  (jclass-name (jmethod-return-type (jmethod "java.lang.String" "substring" 1)))
228  "java.lang.String")
229
230#+abcl
231(deftest jmethod-return-type.error.1
232  (signals-error (jmethod-return-type (jclass "java.lang.String")) 'error)
233  t)
234
235#+abcl
236(deftest jmethod-return-type.error.2
237  (signals-error (jmethod-return-type 42) 'error)
238  t)
239
240(do-tests)
241
242;;#+allegro
243;;(jlinker-end)
Note: See TracBrowser for help on using the repository browser.