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

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

JMETHOD, JMETHOD-RETURN-TYPE

File size: 5.6 KB
Line 
1;;; java-tests.lisp
2;;;
3;;; Copyright (C) 2005 Peter Graves
4;;; $Id: java-tests.lisp,v 1.9 2005-10-28 00:11:58 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;; No such class.
83(deftest jclass.5
84  (signals-error (jclass "foo") 'error)
85  t)
86
87;; Silly argument.
88(deftest jclass.6
89  (signals-error (jclass 42) 'error)
90  t)
91
92(deftest jclass-of.1
93  (jclass-of "foo")
94  "java.lang.String"
95  "java.lang.String")
96
97(deftest jclass-of.2
98  (jclass-of "foo" "java.lang.String")
99  t
100  "java.lang.String")
101
102(deftest jclass-of.3
103  (jclass-of "foo" "bar")
104  nil
105  "java.lang.String")
106
107(deftest jclass-of.4
108  (jclass-of 42)
109  nil
110  nil)
111
112(deftest jclass-of.5
113  (jclass-of 'foo)
114  nil
115  nil)
116
117(deftest jclass-name.1
118  (jclass-name "java.lang.String")
119  "java.lang.String")
120
121(deftest jclass-name.2
122  (signals-error (jclass-name "foo") 'error)
123  t)
124
125(deftest jclass-name.3
126  (signals-error (jclass-name 42) 'error)
127  t)
128
129(deftest jclass-name.4
130  (jclass-name (jclass "java.lang.String"))
131  "java.lang.String")
132
133(deftest jclass-name.5
134  (jclass-name (jclass "java.lang.String") "java.lang.String")
135  t
136  "java.lang.String")
137
138(deftest jclass-name.6
139  (jclass-name (jclass "java.lang.String") "java.lang.Object")
140  nil
141  "java.lang.String")
142
143(deftest jclass-name.7
144  (jclass-name (jclass "java.lang.String") "foo")
145  nil
146  "java.lang.String")
147
148(deftest jconstructor.1
149  (jclass-of (jconstructor "java.lang.String" "java.lang.String"))
150  "java.lang.reflect.Constructor"
151  "java.lang.reflect.Constructor")
152
153(deftest jnew.1
154  (let ((constructor (jconstructor "java.lang.String" "java.lang.String")))
155    (jclass-of (jnew constructor "foo")))
156  "java.lang.String"
157  "java.lang.String")
158
159(deftest jnew.2
160  (jclass-of (jnew (jconstructor "java.awt.Point")))
161  "java.awt.Point"
162  "java.awt.Point")
163
164#-abcl
165(deftest jnew.3
166  (jclass-of (jnew "java.awt.Point") "java.awt.Point")
167  t
168  "java.awt.Point")
169
170(deftest jcall.1
171  (let ((method (jmethod "java.lang.String" "length")))
172    (jcall method "test"))
173  4)
174
175(deftest jcall.2
176  (jcall "length" "test")
177  4)
178
179(deftest jcall.3
180  (let ((method (jmethod "java.lang.String" "regionMatches" 4)))
181    (jcall method "test" 0 "this is a test" 10 4))
182  t)
183
184(deftest jcall.4
185  (let ((method (jmethod "java.lang.String" "regionMatches" 5)))
186    (jcall method "test" (make-immediate-object nil :boolean) 0 "this is a test" 10 4))
187  t)
188
189(deftest jfield.1
190  (type-of (jfield "java.lang.Integer" "TYPE"))
191  #+abcl    java-object
192  #+allegro tran-struct)
193
194(deftest jmethod.1
195  (jcall (jmethod "java.lang.Object" "toString")
196         (jmethod "java.lang.String" "substring" 1))
197  "public java.lang.String java.lang.String.substring(int)")
198
199(deftest jmethod.2
200  (jcall (jmethod "java.lang.Object" "toString")
201         (jmethod "java.lang.String" "substring" 2))
202  "public java.lang.String java.lang.String.substring(int,int)")
203
204(deftest jmethod.3
205  (signals-error (jmethod "java.lang.String" "substring" 3) 'error)
206  t)
207
208#+abcl
209(deftest jmethod-return-type.1
210  (jclass-name (jmethod-return-type (jmethod "java.lang.String" "length")))
211  "int")
212
213#+abcl
214(deftest jmethod-return-type.2
215  (jclass-name (jmethod-return-type (jmethod "java.lang.String" "substring" 1)))
216  "java.lang.String")
217
218#+abcl
219(deftest jmethod-return-type.error.1
220  (signals-error (jmethod-return-type (jclass "java.lang.String")) 'error)
221  t)
222
223#+abcl
224(deftest jmethod-return-type.error.2
225  (signals-error (jmethod-return-type 42) 'error)
226  t)
227
228(do-tests)
229
230;;#+allegro
231;;(jlinker-end)
Note: See TracBrowser for help on using the repository browser.