From: <cg...@us...> - 2008-12-25 15:30:22
|
Revision: 5800 http://jython.svn.sourceforge.net/jython/?rev=5800&view=rev Author: cgroves Date: 2008-12-25 15:30:20 +0000 (Thu, 25 Dec 2008) Log Message: ----------- test_117,119,120 - Tested by test_jser2 test_121 - Moved to test_java_visibility test_122 - Testing java package reloading that never worked test_123 - Moved to org.python.util.InterpreterTest test_129 - Tested by test_array_jy Modified Paths: -------------- trunk/jython/Lib/test/test_array_jy.py trunk/jython/Lib/test/test_java_visibility.py trunk/jython/tests/java/org/python/tests/Invisible.java trunk/jython/tests/java/org/python/tests/SubVisible.java trunk/jython/tests/java/org/python/util/InterpreterTest.java Added Paths: ----------- trunk/jython/tests/java/org/python/tests/OnlySubclassable.java Removed Paths: ------------- trunk/jython/bugtests/classes/test092m/ trunk/jython/bugtests/classes/test119j.java trunk/jython/bugtests/classes/test121p/ trunk/jython/bugtests/test117.py trunk/jython/bugtests/test117j.java trunk/jython/bugtests/test119.py trunk/jython/bugtests/test120.py trunk/jython/bugtests/test121.py trunk/jython/bugtests/test122.py trunk/jython/bugtests/test122p/ trunk/jython/bugtests/test123.py trunk/jython/bugtests/test123j.java trunk/jython/bugtests/test125m.py trunk/jython/bugtests/test129.py trunk/jython/bugtests/test129j.java Modified: trunk/jython/Lib/test/test_array_jy.py =================================================================== --- trunk/jython/Lib/test/test_array_jy.py 2008-12-25 00:49:33 UTC (rev 5799) +++ trunk/jython/Lib/test/test_array_jy.py 2008-12-25 15:30:20 UTC (rev 5800) @@ -28,20 +28,20 @@ (jStringArr.typecode, str(String))) self.assertEqual(zeros(String, 5), Array.newInstance(String, 5)) - import java # require for eval to work + import java.lang.String # require for eval to work self.assertEqual(jStringArr, eval(str(jStringArr))) def test_java_compat(self): - from java import awt - hsb = awt.Color.RGBtoHSB(0,255,255, None) + from java.awt import Color + hsb = Color.RGBtoHSB(0,255,255, None) self.assertEqual(hsb, array('f', [0.5,1,1]), "output hsb float array does not correspond to input rgb values") - rgb = apply(awt.Color.HSBtoRGB, tuple(hsb)) + rgb = apply(Color.HSBtoRGB, tuple(hsb)) self.assertEqual(rgb, -0xff0001, "output rgb bytes don't match input hsb floats") hsb1 = zeros('f', 3) - awt.Color.RGBtoHSB(0,255,255, hsb1) + Color.RGBtoHSB(0, 255, 255, hsb1) self.assertEqual(hsb, hsb1, "hsb float arrays were not equal") def test_main(): Modified: trunk/jython/Lib/test/test_java_visibility.py =================================================================== --- trunk/jython/Lib/test/test_java_visibility.py 2008-12-25 00:49:33 UTC (rev 5799) +++ trunk/jython/Lib/test/test_java_visibility.py 2008-12-25 15:30:20 UTC (rev 5800) @@ -1,7 +1,8 @@ import unittest from test import test_support from java.util import HashMap -from org.python.tests import InterfaceCombination, Invisible, SubVisible, Visible, VisibleOverride +from org.python.tests import (InterfaceCombination, Invisible, OnlySubclassable, SubVisible, + Visible, VisibleOverride) from org.python.tests import VisibilityResults as Results class VisibilityTest(unittest.TestCase): @@ -10,6 +11,8 @@ self.assert_(not item.startswith("package")) self.assert_(not item.startswith("private")) self.assert_(not item.startswith("protected")) + self.assertRaises(TypeError, Invisible, + "Calling a Java class with package protected constructors should raise a TypeError") def test_protected_from_python_subclass(self): class SubVisible(Visible): @@ -24,7 +27,17 @@ self.assertEquals(Results.PROTECTED_METHOD, s.protectedMethod(0)) self.assertEquals(Results.OVERLOADED_PROTECTED_METHOD, s.protectedMethod('foo')) self.assertEquals(Results.UNUSED, SubVisible(Results.UNUSED).visibleField) + self.assertRaises(TypeError, OnlySubclassable, + "Calling a Java class with protected constructors should raise a TypeError") + class SubSubclassable(OnlySubclassable): + pass + sub = SubSubclassable() + self.assert_(not sub.filledInByConstructor == 0, + '''Creating SubSubclassable should call OnlySubclassable's constructor to fill in + filledInByConstructor''') + + def test_visible(self): v = Visible() self.assertEquals(Results.PUBLIC_FIELD, v.visibleField) Deleted: trunk/jython/bugtests/classes/test119j.java =================================================================== --- trunk/jython/bugtests/classes/test119j.java 2008-12-25 00:49:33 UTC (rev 5799) +++ trunk/jython/bugtests/classes/test119j.java 2008-12-25 15:30:20 UTC (rev 5800) @@ -1,5 +0,0 @@ - - -public class test119j implements java.io.Serializable { - public int a = 1; -} \ No newline at end of file Deleted: trunk/jython/bugtests/test117.py =================================================================== --- trunk/jython/bugtests/test117.py 2008-12-25 00:49:33 UTC (rev 5799) +++ trunk/jython/bugtests/test117.py 2008-12-25 15:30:20 UTC (rev 5800) @@ -1,41 +0,0 @@ -""" -Check serialization of PyJavaInstance subclasses. (from Lib). -#unitcheck -""" - -import support - -support.compileJava("test117j.java") - -import java, org -pi = java.io.PipedInputStream() -po = java.io.PipedOutputStream(pi) -oo = java.io.ObjectOutputStream(po) -oi = org.python.util.PythonObjectInputStream(pi) - -import test117j - -class B: - b = 2 - -class C(test117j): - c = 3 - -foo = test117j() -oo.writeObject(foo) -bar = oi.readObject() -#print type(foo), type(bar) -#print foo.__class__, bar.__class__ -if bar.a != 1: - raise support.TestError("Restored attrib should be 1") - -oo.writeObject(B()) -x = oi.readObject() -if x.b != 2: - raise support.TestError("Restored attrib should be 2") - -oo.writeObject(C()) -x = oi.readObject() -if x.c != 3: - raise support.TestError("Restored attrib should be 3") - Deleted: trunk/jython/bugtests/test117j.java =================================================================== --- trunk/jython/bugtests/test117j.java 2008-12-25 00:49:33 UTC (rev 5799) +++ trunk/jython/bugtests/test117j.java 2008-12-25 15:30:20 UTC (rev 5800) @@ -1,6 +0,0 @@ - -import java.io.*; - -public class test117j implements java.io.Serializable { - public int a = 1; -} \ No newline at end of file Deleted: trunk/jython/bugtests/test119.py =================================================================== --- trunk/jython/bugtests/test119.py 2008-12-25 00:49:33 UTC (rev 5799) +++ trunk/jython/bugtests/test119.py 2008-12-25 15:30:20 UTC (rev 5800) @@ -1,35 +0,0 @@ -""" -Check serialization of PyJavaInstance subclasses. (from classpath). -#unitcheck -""" - -import support - -support.compileJava("classes/test119j.java") - -import java, org -pi = java.io.PipedInputStream() -po = java.io.PipedOutputStream(pi) -oo = java.io.ObjectOutputStream(po) -oi = org.python.util.PythonObjectInputStream(pi) - -import test119j - -class B: - b = 2 - -class C(test119j): - c = 3 - -oo.writeObject(test119j()) -if oi.readObject().a != 1: - raise support.TestError("Deser of java class failed") - - -oo.writeObject(B()) -if oi.readObject().b != 2: - raise support.TestError("Deser of python class failed") - -oo.writeObject(C()) -if oi.readObject().c != 3: - raise support.TestError("Deser of java subclass class failed") Deleted: trunk/jython/bugtests/test120.py =================================================================== --- trunk/jython/bugtests/test120.py 2008-12-25 00:49:33 UTC (rev 5799) +++ trunk/jython/bugtests/test120.py 2008-12-25 15:30:20 UTC (rev 5800) @@ -1,20 +0,0 @@ -""" -Check serialization of java subclasses. -#unitcheck -""" - -import support - -import java, org - -class V(java.util.Vector): - foo = 1 - -#print java.io.ObjectStreamClass.lookup(V); - -oo = java.io.ObjectOutputStream(java.io.FileOutputStream("test120.out")) -oo.writeObject(V()) - -oi = org.python.util.PythonObjectInputStream(java.io.FileInputStream("test120.out")) -o = oi.readObject() -#print o Deleted: trunk/jython/bugtests/test121.py =================================================================== --- trunk/jython/bugtests/test121.py 2008-12-25 00:49:33 UTC (rev 5799) +++ trunk/jython/bugtests/test121.py 2008-12-25 15:30:20 UTC (rev 5800) @@ -1,16 +0,0 @@ -""" -Check nonpublic constructor. -""" - -import support - -support.compileJava("classes/test121p/test121j.java") - -from test121p import test121j - -try: - test121j() -except TypeError, e: - support.compare(e, "no public constructor") -else: - raise support.TestError("Should fail (access)") Deleted: trunk/jython/bugtests/test122.py =================================================================== --- trunk/jython/bugtests/test122.py 2008-12-25 00:49:33 UTC (rev 5799) +++ trunk/jython/bugtests/test122.py 2008-12-25 15:30:20 UTC (rev 5800) @@ -1,33 +0,0 @@ -""" -Should reloading a python module cause java classes to be reloaded? -""" - -import support -src= """ -package test122p; -public class test122j { - public String version = "%s"; -} -""" - -def mk(v): - f = open("test122p/test122j.java", "w") - f.write(src % v) - f.close() - support.compileJava("test122p/test122j.java") - -mk(1) - -import test122p -bar1 = test122p.test122j() -if bar1.version != "1": - raise support.TestError("Wrong version#1 %s" % bar1.version) - -# -# Test removed. Reloading java packages are not supposed to work. -# -#mk(2) -#reload(test122p) -#bar2 = test122p.test122j() -#if bar2.version != "2": -# raise support.TestError("Wrong version#2 %s" % bar2.version) Deleted: trunk/jython/bugtests/test123.py =================================================================== --- trunk/jython/bugtests/test123.py 2008-12-25 00:49:33 UTC (rev 5799) +++ trunk/jython/bugtests/test123.py 2008-12-25 15:30:20 UTC (rev 5800) @@ -1,14 +0,0 @@ - -""" - -""" - -import support - -support.compileJava("test123j.java") - -import test123j - -test123j.main(None) - - Deleted: trunk/jython/bugtests/test123j.java =================================================================== --- trunk/jython/bugtests/test123j.java 2008-12-25 00:49:33 UTC (rev 5799) +++ trunk/jython/bugtests/test123j.java 2008-12-25 15:30:20 UTC (rev 5800) @@ -1,24 +0,0 @@ - -import org.python.util.PythonInterpreter; -import org.python.core.*; - -public class test123j { - public static void main(String args[]) { - for(int i=0; i<10; i++) { - PyThread p1 = new PyThread(); - Thread t1 = new Thread(p1); - t1.start(); - } - } - - public static class PyThread implements Runnable { - public void run() { - PythonInterpreter interp = new PythonInterpreter(); - interp.exec("import sys"); - interp.set("a", new PyInteger(41)); - //interp.exec("print a"); - interp.exec("x = 2+2"); - PyObject x = interp.get("x"); - } - } -} \ No newline at end of file Deleted: trunk/jython/bugtests/test125m.py =================================================================== --- trunk/jython/bugtests/test125m.py 2008-12-25 00:49:33 UTC (rev 5799) +++ trunk/jython/bugtests/test125m.py 2008-12-25 15:30:20 UTC (rev 5800) @@ -1,3 +0,0 @@ - -def fun2(): - return 2 Deleted: trunk/jython/bugtests/test129.py =================================================================== --- trunk/jython/bugtests/test129.py 2008-12-25 00:49:33 UTC (rev 5799) +++ trunk/jython/bugtests/test129.py 2008-12-25 15:30:20 UTC (rev 5800) @@ -1,18 +0,0 @@ -""" - -""" - -import support -import java, jarray - -support.compileJava("test129j.java") - -arr = jarray.zeros(10, java.lang.Class.forName('[I')) -for x in range(10): arr[x] = jarray.zeros(10, 'i') - -import test129j - -test129j.chk(arr) - -if arr[0][0] != 47: - raise support.TestError("Array[0][0] should be 47: %d" % arr[0][0]) Deleted: trunk/jython/bugtests/test129j.java =================================================================== --- trunk/jython/bugtests/test129j.java 2008-12-25 00:49:33 UTC (rev 5799) +++ trunk/jython/bugtests/test129j.java 2008-12-25 15:30:20 UTC (rev 5800) @@ -1,7 +0,0 @@ - -public class test129j { - public static int chk(int[][] arr) { - arr[0][0] = 47; - return arr.length * arr[0].length; - } -} \ No newline at end of file Modified: trunk/jython/tests/java/org/python/tests/Invisible.java =================================================================== --- trunk/jython/tests/java/org/python/tests/Invisible.java 2008-12-25 00:49:33 UTC (rev 5799) +++ trunk/jython/tests/java/org/python/tests/Invisible.java 2008-12-25 15:30:20 UTC (rev 5800) @@ -18,6 +18,8 @@ int packageField = PACKAGE_FIELD; + Invisible() {} + private static int privateStaticMethod() { return 7; } Added: trunk/jython/tests/java/org/python/tests/OnlySubclassable.java =================================================================== --- trunk/jython/tests/java/org/python/tests/OnlySubclassable.java (rev 0) +++ trunk/jython/tests/java/org/python/tests/OnlySubclassable.java 2008-12-25 15:30:20 UTC (rev 5800) @@ -0,0 +1,10 @@ +package org.python.tests; + +public class OnlySubclassable { + + public int filledInByConstructor; + + protected OnlySubclassable() { + filledInByConstructor = 1; + } +} Modified: trunk/jython/tests/java/org/python/tests/SubVisible.java =================================================================== --- trunk/jython/tests/java/org/python/tests/SubVisible.java 2008-12-25 00:49:33 UTC (rev 5799) +++ trunk/jython/tests/java/org/python/tests/SubVisible.java 2008-12-25 15:30:20 UTC (rev 5800) @@ -1,7 +1,6 @@ package org.python.tests; public class SubVisible extends Visible implements VisibleOverride { - /** * Overrides {@link Visible#visibleStatic(int)} */ Modified: trunk/jython/tests/java/org/python/util/InterpreterTest.java =================================================================== --- trunk/jython/tests/java/org/python/util/InterpreterTest.java 2008-12-25 00:49:33 UTC (rev 5799) +++ trunk/jython/tests/java/org/python/util/InterpreterTest.java 2008-12-25 15:30:20 UTC (rev 5800) @@ -1,8 +1,11 @@ package org.python.util; +import java.util.concurrent.CountDownLatch; import junit.framework.TestCase; +import org.python.core.Py; import org.python.core.PyDictionary; +import org.python.core.PyInteger; import org.python.core.PyObject; import org.python.core.PyUnicode; @@ -19,4 +22,28 @@ PyObject pyo = interp.eval("{u'one': u'two'}"); assertEquals(test, pyo); } + + public void testMultipleThreads() { + final CountDownLatch doneSignal = new CountDownLatch(10); + for (int i = 0; i < 10; i++) { + new Thread() { + @Override + public void run() { + PythonInterpreter interp = new PythonInterpreter(); + interp.exec("import sys"); + interp.set("a", new PyInteger(41)); + int set = Py.tojava(interp.get("a"), Integer.class); + assertEquals(41, set); + interp.exec("x = 'hello ' + 'goodbye'"); + assertEquals("hello goodbye", Py.tojava(interp.get("x"), String.class)); + doneSignal.countDown(); + } + }.start(); + } + try { + doneSignal.await(); + } catch (InterruptedException e) { + System.err.println("Interpreters in multiple threads test interrupted, bailing"); + } + } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |