experiments/ClassReloadingTests.st
branchdevelopment
changeset 1923 10990021296a
parent 1916 bfd8ca240746
child 2069 75d40b7b986f
equal deleted inserted replaced
1922:7fa6a6a8f1d8 1923:10990021296a
    88 
    88 
    89     "Created: / 16-12-2012 / 17:02:41 / Marcel Hlopko <marcel.hlopko@fit.cvut.cz>"
    89     "Created: / 16-12-2012 / 17:02:41 / Marcel Hlopko <marcel.hlopko@fit.cvut.cz>"
    90 !
    90 !
    91 
    91 
    92 compileAndRegister: sourceCode
    92 compileAndRegister: sourceCode
    93     |compiledClass|
    93     |compiledClasses|
    94 
    94 
    95     compiledClass := self compile: sourceCode.
    95     compiledClasses := self compile: sourceCode.
    96     ^ self register: compiledClass.
    96     ^ self register: compiledClasses.
    97 
    97 
    98     "Created: / 16-12-2012 / 16:59:19 / Marcel Hlopko <marcel.hlopko@fit.cvut.cz>"
    98     "Created: / 16-12-2012 / 16:59:19 / Marcel Hlopko <marcel.hlopko@fit.cvut.cz>"
    99 !
    99 !
   100 
   100 
   101 performTest
   101 performTest
   105     ].
   105     ].
   106 
   106 
   107     "Created: / 16-12-2012 / 16:35:01 / Marcel Hlopko <marcel.hlopko@fit.cvut.cz>"
   107     "Created: / 16-12-2012 / 16:35:01 / Marcel Hlopko <marcel.hlopko@fit.cvut.cz>"
   108 !
   108 !
   109 
   109 
   110 register: compiledClass
   110 register: aClassOrArray
   111 
   111 
   112     JavaVM registry registerClass: compiledClass.
   112     ^aClassOrArray isArray ifTrue:[
   113     ^JavaVM registry classNamed: compiledClass name
   113         JavaVM registry registerClasses: aClassOrArray .
       
   114         JavaVM registry classNamed: aClassOrArray anElement name.
       
   115     ] ifFalse:[
       
   116         JavaVM registry registerClass: aClassOrArray.
       
   117         JavaVM registry classNamed: aClassOrArray name
       
   118     ].
   114 
   119 
   115     "Created: / 16-12-2012 / 17:02:04 / Marcel Hlopko <marcel.hlopko@fit.cvut.cz>"
   120     "Created: / 16-12-2012 / 17:02:04 / Marcel Hlopko <marcel.hlopko@fit.cvut.cz>"
   116     "Modified: / 16-12-2012 / 23:56:00 / Jan Vrany <jan.vrany@fit.cvut.cz>"
   121     "Modified: / 04-01-2013 / 14:54:58 / Jan Vrany <jan.vrany@fit.cvut.cz>"
   117 !
   122 !
   118 
   123 
   119 testInfrastructure
   124 testInfrastructure
   120 
   125 
   121     |compiledClass|
   126     |compiledClass|
   155 
   160 
   156 !ClassReloadingTests methodsFor:'test helpers'!
   161 !ClassReloadingTests methodsFor:'test helpers'!
   157 
   162 
   158 callerClass
   163 callerClass
   159     | callerClass |
   164     | callerClass |
   160     callerClass := JavaCompiler 
   165     callerClass := (JavaCompiler 
   161             compile: '
   166             compile: '
   162 package classReloadingTests;
   167 package classReloadingTests;
   163 public class Caller {
   168 public class Caller {
   164     public String callFooToString(Object c) {
   169     public String callFooToString(Object c) {
   165         return c.toString();
   170         return c.toString();
   166     }   
   171     }   
   167 }
   172 }
   168 '.
   173 ') anElement.
   169     callerClass 
   174     callerClass 
   170         ifNil: [ self error: 'callerClass is expected to be not nil in these tests' ].
   175         ifNil: [ self error: 'callerClass is expected to be not nil in these tests' ].
   171     ^ callerClass.
   176     ^ callerClass.
   172 
   177 
   173     "Created: / 06-12-2012 / 21:41:35 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
   178     "Created: / 06-12-2012 / 21:41:35 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
   174     "Modified: / 18-12-2012 / 14:00:12 / Marcel Hlopko <marcel.hlopko@fit.cvut.cz>"
   179     "Modified: / 18-12-2012 / 14:00:12 / Marcel Hlopko <marcel.hlopko@fit.cvut.cz>"
       
   180     "Modified: / 04-01-2013 / 14:51:47 / Jan Vrany <jan.vrany@fit.cvut.cz>"
   175 !
   181 !
   176 
   182 
   177 compileAndRegisterChangingClassParent
   183 compileAndRegisterChangingClassParent
   178 
   184 
   179     self compileAndRegister: '
   185     self compileAndRegister: '