Skip to content

Commit 61ff03c

Browse files
committed
add tests for array as return + little fixes
1 parent df533a1 commit 61ff03c

File tree

5 files changed

+79
-7
lines changed

5 files changed

+79
-7
lines changed

Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
.PHONY: test
22

33
tests:
4-
$(MAKE) -C src/tests/javawrapper
4+
$(MAKE) -C src/tests/javawrapper all

recipes/android/src/java.pyx

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,6 @@ cdef class JavaClass(object):
101101
raise JavaException('Invalid call, number of argument'
102102
' mismatch for constructor')
103103

104-
cdef jmethodID constructor
105104
try:
106105
# convert python arguments to java arguments
107106
if len(args):

src/tests/javawrapper/Makefile

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,18 @@
1-
.PHONY: all
1+
.PHONY: all build clean tests
22

3-
all:
4-
-rm -rf ../../../dist/javawrapper
3+
clean:
4+
-rm -rf ../../../dist/javawrapper;
5+
6+
build:
57
cd ../../.. && ./distribute.sh -d 'javawrapper' -m 'kivy'
68
cp -a javawrapper ../../../dist/javawrapper/src/org/
9+
10+
tests:
711
cd ../../../dist/javawrapper/ && ./build.py \
812
--package org.pythonandroid.test \
913
--name TestJavaWrapper --version 1 \
1014
--private ../../src/tests/javawrapper/python \
1115
--permission VIBRATE \
12-
debug installd
13-
adb logcat
16+
debug installd && adb logcat -c && adb logcat
17+
18+
all: clean build tests

src/tests/javawrapper/javawrapper/Test.java

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,4 +46,51 @@ public class Test {
4646
public float fieldF = 1.23456789f;
4747
public double fieldD = 1.23456789;
4848
public String fieldString = new String("helloworld");
49+
50+
public boolean[] methodArrayZ() {
51+
boolean[] x = new boolean[3];
52+
x[0] = x[1] = x[2] = true;
53+
return x;
54+
};
55+
public byte[] methodArrayB() {
56+
byte[] x = new byte[3];
57+
x[0] = x[1] = x[2] = 127;
58+
return x;
59+
};
60+
public char[] methodArrayC() {
61+
char[] x = new char[3];
62+
x[0] = x[1] = x[2] = 'k';
63+
return x;
64+
};
65+
public short[] methodArrayS() {
66+
short[] x = new short[3];
67+
x[0] = x[1] = x[2] = 32767;
68+
return x;
69+
};
70+
public int[] methodArrayI() {
71+
int[] x = new int[3];
72+
x[0] = x[1] = x[2] = 2147483467;
73+
return x;
74+
};
75+
public long[] methodArrayJ() {
76+
long[] x = new long[3];
77+
x[0] = x[1] = x[2] = 2147483467;
78+
return x;
79+
};
80+
public float[] methodArrayF() {
81+
float[] x = new float[3];
82+
x[0] = x[1] = x[2] = 1.23456789f;
83+
return x;
84+
};
85+
public double[] methodArrayD() {
86+
double[] x = new double[3];
87+
x[0] = x[1] = x[2] = 1.23456789;
88+
return x;
89+
};
90+
public String[] methodArrayString() {
91+
String[] x = new String[3];
92+
x[0] = x[1] = x[2] = new String("helloworld");
93+
return x;
94+
};
95+
4996
}

src/tests/javawrapper/python/main.py

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,16 @@ class Test(JavaClass):
1414
methodD = JavaMethod('()D')
1515
methodString = JavaMethod('()Ljava/lang/String;')
1616

17+
methodArrayZ = JavaMethod('()[Z')
18+
methodArrayB = JavaMethod('()[B')
19+
methodArrayC = JavaMethod('()[C')
20+
methodArrayS = JavaMethod('()[S')
21+
methodArrayI = JavaMethod('()[I')
22+
methodArrayJ = JavaMethod('()[J')
23+
methodArrayF = JavaMethod('()[F')
24+
methodArrayD = JavaMethod('()[D')
25+
methodArrayString = JavaMethod('()[Ljava/lang/String;')
26+
1727
methodStaticZ = JavaStaticMethod('()Z')
1828
methodStaticB = JavaStaticMethod('()B')
1929
methodStaticC = JavaStaticMethod('()C')
@@ -95,4 +105,15 @@ def do(msg, value, want):
95105
do('field double', test.fieldD, 1.23456789)
96106
do('field String', test.fieldString, 'helloworld')
97107

108+
print '-- test methods with array return'
109+
do('method bool', test.methodArrayZ(), [True] * 3)
110+
do('method byte', test.methodArrayB(), [127] * 3)
111+
do('method char', test.methodArrayC(), ['k'] * 3)
112+
do('method short', test.methodArrayS(), [32767] * 3)
113+
do('method int', test.methodArrayI(), [2147483467] * 3)
114+
do('method long', test.methodArrayJ(), [2147483467] * 3)
115+
do('method float', test.methodArrayF(), [1.23456789] * 3)
116+
do('method double', test.methodArrayD(), [1.23456789] * 3)
117+
do('method String', test.methodArrayString(), ['helloworld'] * 3)
118+
98119
print '--------------- ENDTESTS ----------------'

0 commit comments

Comments
 (0)