--- a/experiments/ClassReloadingTests.st Fri Dec 21 19:14:02 2012 +0100
+++ b/experiments/ClassReloadingTests.st Fri Dec 21 19:16:34 2012 +0100
@@ -67,7 +67,17 @@
history
- "Created: #compileAndRegisterChangingClassParent / 18-12-2012 / 13:47:32 / Marcel Hlopko <marcel.hlopko@fit.cvut.cz>"
+ "Created: #resources / 21-12-2012 / 18:09:27 / Marcel Hlopko <marcel.hlopko@fit.cvut.cz>"
+! !
+
+!ClassReloadingTests class methodsFor:'resources'!
+
+resources
+
+ ^ Array
+ with: JavaInitializedResource.
+
+ "Created: / 21-12-2012 / 18:09:27 / Marcel Hlopko <marcel.hlopko@fit.cvut.cz>"
! !
!ClassReloadingTests methodsFor:'private'!
--- a/experiments/JavaByteCodeInterpreterTests.st Fri Dec 21 19:14:02 2012 +0100
+++ b/experiments/JavaByteCodeInterpreterTests.st Fri Dec 21 19:16:34 2012 +0100
@@ -369,8 +369,8 @@
!
testSetterAndGettersDouble
+ <skip>
| result expResult crate |
-
crate := self loadCrateJavaClass new.
expResult := 1234.45.
self
@@ -379,10 +379,10 @@
receiver: crate
args: (Array with: 1234.45).
result := self
- invoke: #'getDoubleVar()D'
- class: crate class
- receiver: crate
- args: nil.
+ invoke: #'getDoubleVar()D'
+ class: crate class
+ receiver: crate
+ args: nil.
self assert: (expResult = result).
"setDoubleVar:
@@ -398,11 +398,12 @@
"Created: / 13-03-2011 / 17:43:42 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
"Modified: / 16-03-2011 / 21:54:05 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
+ "Modified: / 21-12-2012 / 19:08:10 / Marcel Hlopko <marcel.hlopko@fit.cvut.cz>"
!
testSetterAndGettersDoubleMaxValue
+ <skip>
| result expResult crate |
-
crate := self loadCrateJavaClass new.
expResult := 1.79769313486232E+308.
self
@@ -411,10 +412,10 @@
receiver: crate
args: (Array with: 1.79769313486232E+308).
result := self
- invoke: #'getDoubleVar()D'
- class: crate class
- receiver: crate
- args: nil.
+ invoke: #'getDoubleVar()D'
+ class: crate class
+ receiver: crate
+ args: nil.
self assert: (expResult = result).
"setDoubleVar:
@@ -430,11 +431,12 @@
"Created: / 14-03-2011 / 14:06:13 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
"Modified: / 16-03-2011 / 21:53:59 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
+ "Modified: / 21-12-2012 / 19:08:06 / Marcel Hlopko <marcel.hlopko@fit.cvut.cz>"
!
testSetterAndGettersDoubleMinValue
+ <skip>
| result expResult crate |
-
crate := self loadCrateJavaClass new.
expResult := 4.94065645841247E-324.
self
@@ -443,11 +445,12 @@
receiver: crate
args: (Array with: 4.94065645841247E-324).
result := self
- invoke: #'getDoubleVar()D'
- class: crate class
- receiver: crate
- args: nil.
+ invoke: #'getDoubleVar()D'
+ class: crate class
+ receiver: crate
+ args: nil.
self assert: (expResult = result).
+
"setDoubleVar:
0 aload_0
1 dload_1
@@ -461,11 +464,12 @@
"Created: / 14-03-2011 / 14:06:36 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
"Modified: / 16-03-2011 / 21:54:24 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
+ "Modified: / 21-12-2012 / 19:08:03 / Marcel Hlopko <marcel.hlopko@fit.cvut.cz>"
!
testSetterAndGettersDoubleNan
+ <skip>
| result crate |
-
crate := self loadCrateJavaClass new.
self
invoke: #'setDoubleVar(D)V'
@@ -473,11 +477,12 @@
receiver: crate
args: (Array with: Float nan).
result := self
- invoke: #'getDoubleVar()D'
- class: crate class
- receiver: crate
- args: nil.
+ invoke: #'getDoubleVar()D'
+ class: crate class
+ receiver: crate
+ args: nil.
self assert: (result isNaN).
+
"setDoubleVar:
0 aload_0
1 dload_1
@@ -491,11 +496,12 @@
"Created: / 14-03-2011 / 14:07:26 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
"Modified: / 16-03-2011 / 21:54:27 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
+ "Modified: / 21-12-2012 / 19:08:00 / Marcel Hlopko <marcel.hlopko@fit.cvut.cz>"
!
testSetterAndGettersDoubleWithInfinityArg
+ <skip>
| result expResult crate |
-
crate := self loadCrateJavaClass new.
expResult := Float infinity.
self
@@ -504,11 +510,12 @@
receiver: crate
args: (Array with: Float infinity).
result := self
- invoke: #'getDoubleVar()D'
- class: crate class
- receiver: crate
- args: nil.
+ invoke: #'getDoubleVar()D'
+ class: crate class
+ receiver: crate
+ args: nil.
self assert: (expResult = result).
+
"setDoubleVar:
0 aload_0
1 dload_1
@@ -522,11 +529,12 @@
"Created: / 14-03-2011 / 13:52:57 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
"Modified: / 16-03-2011 / 21:54:32 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
+ "Modified: / 21-12-2012 / 19:07:57 / Marcel Hlopko <marcel.hlopko@fit.cvut.cz>"
!
testSetterAndGettersDoubleWithNegativeInfinityArg
+ <skip>
| result expResult crate |
-
crate := self loadCrateJavaClass new.
expResult := Float negativeInfinity.
self
@@ -535,11 +543,12 @@
receiver: crate
args: (Array with: Float negativeInfinity).
result := self
- invoke: #'getDoubleVar()D'
- class: crate class
- receiver: crate
- args: nil.
+ invoke: #'getDoubleVar()D'
+ class: crate class
+ receiver: crate
+ args: nil.
self assert: (expResult = result).
+
"setDoubleVar:
0 aload_0
1 dload_1
@@ -553,11 +562,12 @@
"Created: / 14-03-2011 / 13:53:20 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
"Modified: / 16-03-2011 / 21:54:40 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
+ "Modified: / 21-12-2012 / 19:07:54 / Marcel Hlopko <marcel.hlopko@fit.cvut.cz>"
!
testSetterAndGettersInt
+ <skip>
| result expResult crate |
-
crate := self loadCrateJavaClass new.
expResult := 1234.
self
@@ -566,29 +576,31 @@
receiver: crate
args: (Array with: 1234).
result := self
- invoke: #'getIntVar()I'
- class: crate class
- receiver: crate
- args: nil.
+ invoke: #'getIntVar()I'
+ class: crate class
+ receiver: crate
+ args: nil.
self assert: (expResult = result).
+
"setIntVar:
- 0 aload_0
- 1 iload_1
- 2 putfield 2 [JavaFieldRef (stx.libjava.tests.simpleClasses.Crate 'intVar'I offs=1)]
- 5 return
+ 0 aload_0
+ 1 iload_1
+ 2 putfield 2 [JavaFieldRef (stx.libjava.tests.simpleClasses.Crate 'intVar'I offs=1)]
+ 5 return
getIntVar:
- 0 aload_0
- 1 getfield 2 [JavaFieldRef (stx.libjava.tests.simpleClasses.Crate 'intVar'I offs=1)]
+ 0 aload_0
+ 1 getfield 2 [JavaFieldRef (stx.libjava.tests.simpleClasses.Crate 'intVar'I offs=1)]
4 ireturn"
"Created: / 13-03-2011 / 17:42:39 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
"Modified: / 16-03-2011 / 21:55:34 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
+ "Modified: / 21-12-2012 / 19:07:50 / Marcel Hlopko <marcel.hlopko@fit.cvut.cz>"
!
testSetterAndGettersIntMaxValue
+ <skip>
| result expResult crate |
-
crate := self loadCrateJavaClass new.
expResult := 2147483647.
self
@@ -597,29 +609,31 @@
receiver: crate
args: (Array with: 2147483647).
result := self
- invoke: #'getIntVar()I'
- class: crate class
- receiver: crate
- args: nil.
+ invoke: #'getIntVar()I'
+ class: crate class
+ receiver: crate
+ args: nil.
self assert: (expResult = result).
+
"setIntVar:
- 0 aload_0
- 1 iload_1
- 2 putfield 2 [JavaFieldRef (stx.libjava.tests.simpleClasses.Crate 'intVar'I offs=1)]
- 5 return
+ 0 aload_0
+ 1 iload_1
+ 2 putfield 2 [JavaFieldRef (stx.libjava.tests.simpleClasses.Crate 'intVar'I offs=1)]
+ 5 return
getIntVar:
- 0 aload_0
- 1 getfield 2 [JavaFieldRef (stx.libjava.tests.simpleClasses.Crate 'intVar'I offs=1)]
+ 0 aload_0
+ 1 getfield 2 [JavaFieldRef (stx.libjava.tests.simpleClasses.Crate 'intVar'I offs=1)]
4 ireturn"
"Created: / 14-03-2011 / 14:02:07 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
"Modified: / 16-03-2011 / 21:55:37 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
+ "Modified: / 21-12-2012 / 19:07:43 / Marcel Hlopko <marcel.hlopko@fit.cvut.cz>"
!
testSetterAndGettersIntMinValue
+ <skip>
| result expResult crate |
-
crate := self loadCrateJavaClass new.
expResult := -2147483648.
self
@@ -628,29 +642,31 @@
receiver: crate
args: (Array with: -2147483648).
result := self
- invoke: #'getIntVar()I'
- class: crate class
- receiver: crate
- args: nil.
+ invoke: #'getIntVar()I'
+ class: crate class
+ receiver: crate
+ args: nil.
self assert: (expResult = result).
+
"setIntVar:
- 0 aload_0
- 1 iload_1
- 2 putfield 2 [JavaFieldRef (stx.libjava.tests.simpleClasses.Crate 'intVar'I offs=1)]
- 5 return
+ 0 aload_0
+ 1 iload_1
+ 2 putfield 2 [JavaFieldRef (stx.libjava.tests.simpleClasses.Crate 'intVar'I offs=1)]
+ 5 return
getIntVar:
- 0 aload_0
- 1 getfield 2 [JavaFieldRef (stx.libjava.tests.simpleClasses.Crate 'intVar'I offs=1)]
+ 0 aload_0
+ 1 getfield 2 [JavaFieldRef (stx.libjava.tests.simpleClasses.Crate 'intVar'I offs=1)]
4 ireturn"
"Created: / 14-03-2011 / 14:01:45 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
"Modified: / 16-03-2011 / 21:55:41 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
+ "Modified: / 21-12-2012 / 19:07:40 / Marcel Hlopko <marcel.hlopko@fit.cvut.cz>"
!
testSetterAndGettersLong
+ <skip>
| result expResult crate |
-
crate := self loadCrateJavaClass new.
expResult := 1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890.
self
@@ -660,10 +676,10 @@
args: (Array
with: 1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890).
result := self
- invoke: #'getLongVar()J'
- class: crate class
- receiver: crate
- args: nil.
+ invoke: #'getLongVar()J'
+ class: crate class
+ receiver: crate
+ args: nil.
self assert: (expResult = result).
"setLongVar:
@@ -674,16 +690,17 @@
getLongVar:
0 aload_0
- 1 getfield 4 [JavaFieldRef (stx.libjava.tests.simpleClasses.Crate 'longVar'J offs=3)]
+ 1 getfield 4 [JavaFieldRef (stx.libjava.tests.simpleClasses.Crate 'longVar'J offs=3)]
4 lreturn"
"Created: / 14-03-2011 / 13:36:51 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
"Modified: / 16-03-2011 / 21:56:38 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
+ "Modified: / 21-12-2012 / 19:07:36 / Marcel Hlopko <marcel.hlopko@fit.cvut.cz>"
!
testSetterAndGettersLongMaxValue
+ <skip>
| result expResult crate |
-
crate := self loadCrateJavaClass new.
expResult := 9223372036854775807.
self
@@ -692,11 +709,12 @@
receiver: crate
args: (Array with: 9223372036854775807).
result := self
- invoke: #'getLongVar()J'
- class: crate class
- receiver: crate
- args: nil.
+ invoke: #'getLongVar()J'
+ class: crate class
+ receiver: crate
+ args: nil.
self assert: (expResult = result).
+
"setLongVar:
0 aload_0
1 lload_1
@@ -710,11 +728,12 @@
"Created: / 14-03-2011 / 14:04:53 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
"Modified: / 16-03-2011 / 21:56:50 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
+ "Modified: / 21-12-2012 / 19:07:33 / Marcel Hlopko <marcel.hlopko@fit.cvut.cz>"
!
testSetterAndGettersLongMinValue
+ <skip>
| result expResult crate |
-
crate := self loadCrateJavaClass new.
expResult := -9223372036854775808.
self
@@ -723,11 +742,12 @@
receiver: crate
args: (Array with: -9223372036854775808).
result := self
- invoke: #'getLongVar()J'
- class: crate class
- receiver: crate
- args: nil.
+ invoke: #'getLongVar()J'
+ class: crate class
+ receiver: crate
+ args: nil.
self assert: (expResult = result).
+
"setLongVar:
0 aload_0
1 lload_1
@@ -741,11 +761,12 @@
"Created: / 14-03-2011 / 14:04:07 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
"Modified: / 16-03-2011 / 21:56:52 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
+ "Modified: / 21-12-2012 / 19:07:29 / Marcel Hlopko <marcel.hlopko@fit.cvut.cz>"
!
testSetterAndGettersLongWithIntArg
+ <skip>
| result expResult crate |
-
crate := self loadCrateJavaClass new.
expResult := 12.
self
@@ -754,11 +775,12 @@
receiver: crate
args: (Array with: 12).
result := self
- invoke: #'getLongVar()J'
- class: crate class
- receiver: crate
- args: nil.
+ invoke: #'getLongVar()J'
+ class: crate class
+ receiver: crate
+ args: nil.
self assert: (expResult = result).
+
"setLongVar:
0 aload_0
1 lload_1
@@ -772,11 +794,12 @@
"Created: / 14-03-2011 / 13:49:02 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
"Modified: / 16-03-2011 / 21:56:55 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
+ "Modified: / 21-12-2012 / 19:07:24 / Marcel Hlopko <marcel.hlopko@fit.cvut.cz>"
!
testSetterAndGettersString
+ <skip>
| result expResult crate |
-
crate := self loadCrateJavaClass new.
expResult := 'hello world'.
self
@@ -785,24 +808,26 @@
receiver: crate
args: (Array with: 'hello world').
result := self
- invoke: #'getStringVar()Ljava/lang/String;'
- class: crate class
- receiver: crate
- args: nil.
+ invoke: #'getStringVar()Ljava/lang/String;'
+ class: crate class
+ receiver: crate
+ args: nil.
self assert: (expResult = result).
-"setString:
-0 aload_0
-1 aload_1
-2 putfield 5 [JavaFieldRef (stx.libjava.tests.simpleClasses.Crate 'stringVar'Ljava/lang/String; offs=4)]
-5 return
-getString:
-0 aload_0
-1 getfield 5 [JavaFieldRef (stx.libjava.tests.simpleClasses.Crate 'stringVar'Ljava/lang/String; offs=4)]
-4 areturn "
+ "setString:
+ 0 aload_0
+ 1 aload_1
+ 2 putfield 5 [JavaFieldRef (stx.libjava.tests.simpleClasses.Crate 'stringVar'Ljava/lang/String; offs=4)]
+ 5 return
+
+ getString:
+ 0 aload_0
+ 1 getfield 5 [JavaFieldRef (stx.libjava.tests.simpleClasses.Crate 'stringVar'Ljava/lang/String; offs=4)]
+ 4 areturn"
"Created: / 14-03-2011 / 13:45:57 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
"Modified: / 16-03-2011 / 21:57:33 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
+ "Modified: / 21-12-2012 / 19:07:19 / Marcel Hlopko <marcel.hlopko@fit.cvut.cz>"
!
testSimpleAdd
@@ -1014,15 +1039,15 @@
!JavaByteCodeInterpreterTests methodsFor:'tests2'!
testGetBoolean
+ <skip>
| result expResult inst |
-
inst := self loadSimpleClassWithManyReferences new.
expResult := 1.
result := self
- invoke: #'getBoolean()Z'
- class: inst class
- receiver: inst
- args: nil.
+ invoke: #'getBoolean()Z'
+ class: inst class
+ receiver: inst
+ args: nil.
self assertFalse: (result isNil).
self assertTrue: (result = expResult).
@@ -1038,86 +1063,93 @@
"Created: / 14-03-2011 / 21:36:37 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
"Modified: / 21-03-2011 / 17:45:18 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
+ "Modified: / 21-12-2012 / 19:05:21 / Marcel Hlopko <marcel.hlopko@fit.cvut.cz>"
!
testGetByte
+ <skip>
| result expResult |
-
expResult := 11.
result := self
- invoke: #'getByte()B'
- class: self loadSimpleClassWithManyReferences
- receiver: self loadSimpleClassWithManyReferences new
- args: nil.
+ invoke: #'getByte()B'
+ class: self loadSimpleClassWithManyReferences
+ receiver: self loadSimpleClassWithManyReferences new
+ args: nil.
self assertFalse: (result isNil).
self assertTrue: (result = expResult).
-"0 aload_0
-1 getfield 3 [JavaFieldRef (stx.libjava.tests.simpleClasses.SimpleClassWithManyReferences 'values'[Ljava/lang/Object; offs=1)]
-4 bipush 7
-6 aaload
-7 checkcast 17 [java.lang.Byte]
-10 invokevirtual 31 [JavaMethodRef (java.lang.Byte 'byteValue'()B)]
-13 ireturn "
+
+ "0 aload_0
+ 1 getfield 3 [JavaFieldRef (stx.libjava.tests.simpleClasses.SimpleClassWithManyReferences 'values'[Ljava/lang/Object; offs=1)]
+ 4 bipush 7
+ 6 aaload
+ 7 checkcast 17 [java.lang.Byte]
+ 10 invokevirtual 31 [JavaMethodRef (java.lang.Byte 'byteValue'()B)]
+ 13 ireturn"
"Created: / 14-03-2011 / 21:34:23 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
"Modified: / 16-03-2011 / 22:04:19 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
+ "Modified: / 21-12-2012 / 19:05:27 / Marcel Hlopko <marcel.hlopko@fit.cvut.cz>"
!
testGetChar
+ <skip>
| result expResult |
-
expResult := 97.
result := self
- invoke: #'getChar()C'
- class: self loadSimpleClassWithManyReferences
- receiver: self loadSimpleClassWithManyReferences new
- args: nil.
+ invoke: #'getChar()C'
+ class: self loadSimpleClassWithManyReferences
+ receiver: self loadSimpleClassWithManyReferences new
+ args: nil.
self assertFalse: (result isNil).
self assertTrue: (result = expResult).
-"0 aload_0
-1 getfield 3 [JavaFieldRef (stx.libjava.tests.simpleClasses.SimpleClassWithManyReferences 'values'[Ljava/lang/Object; offs=1)]
-4 iconst_3
-5 aaload
-6 checkcast 25 [java.lang.Character]
-9 invokevirtual 26 [JavaMethodRef (java.lang.Character 'charValue'()C)]
-12 ireturn "
+
+ "0 aload_0
+ 1 getfield 3 [JavaFieldRef (stx.libjava.tests.simpleClasses.SimpleClassWithManyReferences 'values'[Ljava/lang/Object; offs=1)]
+ 4 iconst_3
+ 5 aaload
+ 6 checkcast 25 [java.lang.Character]
+ 9 invokevirtual 26 [JavaMethodRef (java.lang.Character 'charValue'()C)]
+ 12 ireturn"
"Created: / 14-03-2011 / 21:31:36 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
"Modified: / 21-03-2011 / 17:45:33 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
+ "Modified: / 21-12-2012 / 19:05:31 / Marcel Hlopko <marcel.hlopko@fit.cvut.cz>"
!
testGetDateArray
+ <skip>
| result expResult |
-
"again - you're comparing java array with st array - watch out"
- "/ expResult := #( nil nil nil ).
+ "/ expResult := #( nil nil nil ).
result := self
- invoke: #'getDateArray()[Ljava/util/Date;'
- class: self loadSimpleClassWithManyReferences
- receiver: self loadSimpleClassWithManyReferences new
- args: nil.
+ invoke: #'getDateArray()[Ljava/util/Date;'
+ class: self loadSimpleClassWithManyReferences
+ receiver: self loadSimpleClassWithManyReferences new
+ args: nil.
self assertFalse: (result isNil).
-"/ self assertTrue: (result = expResult).
-"0 aload_0
-1 getfield 3 [JavaFieldRef (stx.libjava.tests.simpleClasses.SimpleClassWithManyReferences 'values'[Ljava/lang/Object; offs=1)]
-4 bipush 8
-6 aaload
-7 checkcast 32 [UnresolvedClass([Ljava.util.Date;)]
-10 checkcast 32 [UnresolvedClass([Ljava.util.Date;)]
-13 areturn "
+
+ "/ self assertTrue: (result = expResult).
+ "0 aload_0
+ 1 getfield 3 [JavaFieldRef (stx.libjava.tests.simpleClasses.SimpleClassWithManyReferences 'values'[Ljava/lang/Object; offs=1)]
+ 4 bipush 8
+ 6 aaload
+ 7 checkcast 32 [UnresolvedClass([Ljava.util.Date;)]
+ 10 checkcast 32 [UnresolvedClass([Ljava.util.Date;)]
+ 13 areturn"
"Created: / 14-03-2011 / 21:35:33 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
"Modified: / 21-03-2011 / 17:59:27 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
+ "Modified: / 21-12-2012 / 19:05:37 / Marcel Hlopko <marcel.hlopko@fit.cvut.cz>"
!
testGetDouble
+ <skip>
| result |
-
result := self
- invoke: #'getDouble()Ljava/lang/Double;'
- class: self loadSimpleClassWithManyReferences
- receiver: self loadSimpleClassWithManyReferences new
- args: nil.
+ invoke: #'getDouble()Ljava/lang/Double;'
+ class: self loadSimpleClassWithManyReferences
+ receiver: self loadSimpleClassWithManyReferences new
+ args: nil.
self assertFalse: (result isNil).
"0 aload_0
@@ -1129,41 +1161,44 @@
"Created: / 14-03-2011 / 21:30:47 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
"Modified: / 22-03-2011 / 17:10:26 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
+ "Modified: / 21-12-2012 / 19:05:42 / Marcel Hlopko <marcel.hlopko@fit.cvut.cz>"
!
testGetInt
+ <skip>
| result expResult |
-
expResult := 1.
result := self
- invoke: #'getInt()I'
- class: self loadSimpleClassWithManyReferences
- receiver: self loadSimpleClassWithManyReferences new
- args: nil.
+ invoke: #'getInt()I'
+ class: self loadSimpleClassWithManyReferences
+ receiver: self loadSimpleClassWithManyReferences new
+ args: nil.
self assertFalse: (result isNil).
self assertTrue: (result = expResult).
-"0 aload_0
-1 getfield 3 [JavaFieldRef (stx.libjava.tests.simpleClasses.SimpleClassWithManyReferences 'values'[Ljava/lang/Object; offs=1)]
-4 iconst_1
-5 aaload
-6 checkcast 13 [java.lang.Integer]
-9 invokevirtual 23 [JavaMethodRef (java.lang.Integer 'intValue'()I)]
-12 ireturn"
+
+ "0 aload_0
+ 1 getfield 3 [JavaFieldRef (stx.libjava.tests.simpleClasses.SimpleClassWithManyReferences 'values'[Ljava/lang/Object; offs=1)]
+ 4 iconst_1
+ 5 aaload
+ 6 checkcast 13 [java.lang.Integer]
+ 9 invokevirtual 23 [JavaMethodRef (java.lang.Integer 'intValue'()I)]
+ 12 ireturn"
"Created: / 14-03-2011 / 21:30:47 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
"Modified: / 16-03-2011 / 22:05:31 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
+ "Modified: / 21-12-2012 / 19:05:48 / Marcel Hlopko <marcel.hlopko@fit.cvut.cz>"
!
testGetIntArray
+ <skip>
| result expResult |
-
"again - you're comparing java array with st array - watch out"
expResult := #( nil nil nil nil nil ).
result := self
- invoke: #'getIntArray()[I'
- class: self loadSimpleClassWithManyReferences
- receiver: self loadSimpleClassWithManyReferences new
- args: nil.
+ invoke: #'getIntArray()[I'
+ class: self loadSimpleClassWithManyReferences
+ receiver: self loadSimpleClassWithManyReferences new
+ args: nil.
self assertFalse: (result isNil).
self
invoke: #'setIntArray([I)V'
@@ -1182,78 +1217,95 @@
"Created: / 14-03-2011 / 21:33:13 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
"Modified: / 21-03-2011 / 18:53:06 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
+ "Modified: / 21-12-2012 / 19:05:52 / Marcel Hlopko <marcel.hlopko@fit.cvut.cz>"
!
testGetLong
+ <skip>
| result expResult |
-
expResult := 10.
result := self
- invoke: #'getLong()J'
- class: self loadSimpleClassWithManyReferences
- receiver: self loadSimpleClassWithManyReferences new
- args: nil.
+ invoke: #'getLong()J'
+ class: self loadSimpleClassWithManyReferences
+ receiver: self loadSimpleClassWithManyReferences new
+ args: nil.
self assertFalse: (result isNil).
self assertTrue: (result = expResult).
-"0 aload_0
-1 getfield 3 [JavaFieldRef (stx.libjava.tests.simpleClasses.SimpleClassWithManyReferences 'values'[Ljava/lang/Object; offs=1)]
-4 iconst_4
-5 aaload
-6 checkcast 27 [java.lang.Long]
-9 invokevirtual 28 [JavaMethodRef (java.lang.Long 'longValue'()J)]
- 12 lreturn"
+ "0 aload_0
+ 1 getfield 3 [JavaFieldRef (stx.libjava.tests.simpleClasses.SimpleClassWithManyReferences 'values'[Ljava/lang/Object; offs=1)]
+ 4 iconst_4
+ 5 aaload
+ 6 checkcast 27 [java.lang.Long]
+ 9 invokevirtual 28 [JavaMethodRef (java.lang.Long 'longValue'()J)]
+ 12 lreturn"
"Created: / 14-03-2011 / 21:32:14 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
"Modified: / 16-03-2011 / 22:05:55 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
+ "Modified: / 21-12-2012 / 19:05:56 / Marcel Hlopko <marcel.hlopko@fit.cvut.cz>"
!
testGetShort
+ <skip>
| result expResult |
-
expResult := 1.
result := self
- invoke: #'getShort()S'
- class: self loadSimpleClassWithManyReferences
- receiver: self loadSimpleClassWithManyReferences new
- args: nil.
+ invoke: #'getShort()S'
+ class: self loadSimpleClassWithManyReferences
+ receiver: self loadSimpleClassWithManyReferences new
+ args: nil.
self assertFalse: (result isNil).
self assertTrue: (result = expResult).
-"0 aload_0
-1 getfield 3 [JavaFieldRef (stx.libjava.tests.simpleClasses.SimpleClassWithManyReferences 'values'[Ljava/lang/Object; offs=1)]
-4 bipush 6
-6 aaload
-7 checkcast 14 [java.lang.Short]
-10 invokevirtual 30 [JavaMethodRef (java.lang.Short 'shortValue'()S)]
-13 ireturn "
+
+ "0 aload_0
+ 1 getfield 3 [JavaFieldRef (stx.libjava.tests.simpleClasses.SimpleClassWithManyReferences 'values'[Ljava/lang/Object; offs=1)]
+ 4 bipush 6
+ 6 aaload
+ 7 checkcast 14 [java.lang.Short]
+ 10 invokevirtual 30 [JavaMethodRef (java.lang.Short 'shortValue'()S)]
+ 13 ireturn"
"Created: / 14-03-2011 / 21:33:48 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
"Modified: / 16-03-2011 / 22:06:07 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
+ "Modified: / 21-12-2012 / 19:06:01 / Marcel Hlopko <marcel.hlopko@fit.cvut.cz>"
!
testGetString
-|result|
+ <skip>
+ | result |
result := self
- invoke: #'getString()Ljava/lang/String;'
- class: self loadSimpleClassWithManyReferences
- receiver: self loadSimpleClassWithManyReferences new
- args: nil.
- self assertFalse: (result isNil).
+ invoke: #'getString()Ljava/lang/String;'
+ class: self loadSimpleClassWithManyReferences
+ receiver: self loadSimpleClassWithManyReferences new
+ args: nil.
+ self assertFalse: (result isNil).
"Modified: / 28-03-2011 / 22:40:16 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
+ "Modified: / 21-12-2012 / 19:06:05 / Marcel Hlopko <marcel.hlopko@fit.cvut.cz>"
!
testInitSimpleClassWithManyReferences
-
+ <skip>
| c |
self
invoke: #'<init>()V'
class: (c := self loadSimpleClassWithManyReferences)
- receiver: c new
+ receiver: c new
args: nil.
- "Created: / 28-03-2011 / 22:39:37 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
- "Modified: / 01-04-2011 / 14:54:24 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Created: / 21-12-2012 / 19:05:02 / Marcel Hlopko <marcel.hlopko@fit.cvut.cz>"
+!
+
+testInitimpleClassWithManyReferences
+ <skip>
+ | c |
+ self
+ invoke: #'<init>()V'
+ class: (c := self loadSimpleClassWithManyReferences)
+ receiver: c new
+ args: nil.
+
+ "Created: / 21-12-2012 / 19:05:09 / Marcel Hlopko <marcel.hlopko@fit.cvut.cz>"
!
testLookupSwitch
@@ -1272,8 +1324,8 @@
!
testSetBoolean
+ <skip>
| inst |
-
inst := self loadSimpleClassWithManyReferences new.
self
invoke: #'setBoolean(I)V'
@@ -1286,27 +1338,28 @@
receiver: inst
args: #( 4 ).
-"
-1: ILOAD_1 (27) ARGS: [] STACK: [.. -> FIELD 1: 'Arg 1']
-2: ICONST_2 (5) ARGS: [] STACK: [.. -> 2]
-3: IREM (112) ARGS: [] STACK: [value, value -> result]
-4: IFNE (154) ARGS: [JMP to: 20] STACK: [value -> ..]
-7: ALOAD_0 (42) ARGS: [] STACK: [.. -> FIELD 0: stx.libjava.tests.simpleClasses.SimpleClassWithManyReferences]
-8: GETFIELD (180) ARGS: [JavaFieldRef (stx.libjava.tests.simpleClasses.SimpleClassWithManyReferences 'values'[Ljava/lang/Object; offs=1)] STACK: [objectRef -> objectRef]
-11: BIPUSH (16) ARGS: [9] STACK: [.. -> value]
-13: GETSTATIC (178) ARGS: [JavaFieldRef (java.lang.Boolean 'TRUE'Ljava/lang/Boolean; offs=29)] STACK: [.. -> objectRef]
-16: AASTORE (83) ARGS: [] STACK: [arrayRef, index, value -> ..]
-17: GOTO (167) ARGS: [JMP to: 31] STACK: [.. -> ..]
-20: ALOAD_0 (42) ARGS: [] STACK: [.. -> FIELD 0: stx.libjava.tests.simpleClasses.SimpleClassWithManyReferences]
-21: GETFIELD (180) ARGS: [JavaFieldRef (stx.libjava.tests.simpleClasses.SimpleClassWithManyReferences 'values'[Ljava/lang/Object; offs=1)] STACK: [objectRef -> objectRef]
-24: BIPUSH (16) ARGS: [9] STACK: [.. -> value]
-26: ICONST_0 (3) ARGS: [] STACK: [.. -> 0]
-27: INVSTATIC (184) ARGS: [JavaMethodRef (java.lang.Boolean 'valueOf'(Z)Ljava/lang/Boolean;)] STACK: [[arg1, arg2, ...] -> ..]
-30: AASTORE (83) ARGS: [] STACK: [arrayRef, index, value -> ..]
-31: RETURN (177) ARGS: [] STACK: [.. -> EMPTY]"
+ "
+ 1: ILOAD_1 (27) ARGS: [] STACK: [.. -> FIELD 1: 'Arg 1']
+ 2: ICONST_2 (5) ARGS: [] STACK: [.. -> 2]
+ 3: IREM (112) ARGS: [] STACK: [value, value -> result]
+ 4: IFNE (154) ARGS: [JMP to: 20] STACK: [value -> ..]
+ 7: ALOAD_0 (42) ARGS: [] STACK: [.. -> FIELD 0: stx.libjava.tests.simpleClasses.SimpleClassWithManyReferences]
+ 8: GETFIELD (180) ARGS: [JavaFieldRef (stx.libjava.tests.simpleClasses.SimpleClassWithManyReferences 'values'[Ljava/lang/Object; offs=1)] STACK: [objectRef -> objectRef]
+ 11: BIPUSH (16) ARGS: [9] STACK: [.. -> value]
+ 13: GETSTATIC (178) ARGS: [JavaFieldRef (java.lang.Boolean 'TRUE'Ljava/lang/Boolean; offs=29)] STACK: [.. -> objectRef]
+ 16: AASTORE (83) ARGS: [] STACK: [arrayRef, index, value -> ..]
+ 17: GOTO (167) ARGS: [JMP to: 31] STACK: [.. -> ..]
+ 20: ALOAD_0 (42) ARGS: [] STACK: [.. -> FIELD 0: stx.libjava.tests.simpleClasses.SimpleClassWithManyReferences]
+ 21: GETFIELD (180) ARGS: [JavaFieldRef (stx.libjava.tests.simpleClasses.SimpleClassWithManyReferences 'values'[Ljava/lang/Object; offs=1)] STACK: [objectRef -> objectRef]
+ 24: BIPUSH (16) ARGS: [9] STACK: [.. -> value]
+ 26: ICONST_0 (3) ARGS: [] STACK: [.. -> 0]
+ 27: INVSTATIC (184) ARGS: [JavaMethodRef (java.lang.Boolean 'valueOf'(Z)Ljava/lang/Boolean;)] STACK: [[arg1, arg2, ...] -> ..]
+ 30: AASTORE (83) ARGS: [] STACK: [arrayRef, index, value -> ..]
+ 31: RETURN (177) ARGS: [] STACK: [.. -> EMPTY]"
"Created: / 21-03-2011 / 18:53:48 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
"Modified: / 22-03-2011 / 12:18:51 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
+ "Modified: / 21-12-2012 / 19:06:14 / Marcel Hlopko <marcel.hlopko@fit.cvut.cz>"
!
testTableSwitch
@@ -1326,6 +1379,11 @@
!JavaByteCodeInterpreterTests class methodsFor:'documentation'!
+version_HG
+
+ ^ '$Changeset: <not expanded> $'
+!
+
version_SVN
- ^ '$Id$'
+ ^ '§Id§'
! !
--- a/experiments/JavaCompilerTests.st Fri Dec 21 19:14:02 2012 +0100
+++ b/experiments/JavaCompilerTests.st Fri Dec 21 19:16:34 2012 +0100
@@ -67,7 +67,17 @@
history
- "Created: #testCompilingFromComplexStringWithComplexAssertions / 16-12-2012 / 15:38:56 / Marcel Hlopko <marcel.hlopko@fit.cvut.cz>"
+ "Created: #resources / 21-12-2012 / 18:24:51 / Marcel Hlopko <marcel.hlopko@fit.cvut.cz>"
+! !
+
+!JavaCompilerTests class methodsFor:'resources'!
+
+resources
+
+ ^ Array
+ with: JavaInitializedResource.
+
+ "Created: / 21-12-2012 / 18:24:51 / Marcel Hlopko <marcel.hlopko@fit.cvut.cz>"
! !
!JavaCompilerTests methodsFor:'analyzer - class name tests'!
--- a/experiments/SingleClassReloadingTests.st Fri Dec 21 19:14:02 2012 +0100
+++ b/experiments/SingleClassReloadingTests.st Fri Dec 21 19:16:34 2012 +0100
@@ -76,14 +76,6 @@
"Modified (comment): #testAddingMethod / 18-12-2012 / 14:12:06 / Marcel Hlopko <marcel.hlopko@fit.cvut.cz>"
! !
-!SingleClassReloadingTests class methodsFor:'resources'!
-
-resources
- ^ Array with: JavaFreshlyInitializedResource.
-
- "Created: / 06-12-2012 / 18:22:13 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
-! !
-
!SingleClassReloadingTests methodsFor:'interfaces'!
testAddingInterface
--- a/experiments/experiments.rc Fri Dec 21 19:14:02 2012 +0100
+++ b/experiments/experiments.rc Fri Dec 21 19:16:34 2012 +0100
@@ -25,7 +25,7 @@
VALUE "LegalCopyright", "Copyright Claus Gittinger 1988-2012\nCopyright eXept Software AG 1998-2012\0"
VALUE "ProductName", "Smalltalk/X\0"
VALUE "ProductVersion", "6.2.3.0\0"
- VALUE "ProductDate", "Tue, 18 Dec 2012 13:49:41 GMT\0"
+ VALUE "ProductDate", "Fri, 21 Dec 2012 18:14:42 GMT\0"
END
END