Jan Vrany <jan.vrany@fit.cvut.cz> [Wed, 30 Mar 2016 21:45:33 +0100] rev 3545
Tests: Do spawn a separate JVM when running tests using ant and real JVM
Otherwise, the classpath is not honoured, causing certain tests to fail.
Jan Vrany <jan.vrany@fit.cvut.cz> [Wed, 30 Mar 2016 18:53:20 +0100] rev 3544
Tests: Moved `stx.libjava.tests.ExceptionTests` classes to mocks package
...i.e., to `stx:libjava.tests.mocks.JavaExceptionTestsHelper. This makes
it easier for ant task `test` to locate actual test cases and exclude
mocks and test helpers.
Jan Vrany <jan.vrany@fit.cvut.cz> [Sun, 27 Mar 2016 00:41:25 +0000] rev 3543
Use #allPackageIDs instead of #allProjectIDs
...as the latter become obsolete.
(grafted from fa52c6a8c459b8c3d2e6e4e45a0830ef7a342bdb)
Jan Vrany <jan.vrany@fit.cvut.cz> [Wed, 30 Mar 2016 18:26:28 +0100] rev 3542
Tests: Moved `stx.libjava.tests.asm.*` classes to mocks package
...i.e., to `stx:libjava.tests.mocks.asm`. This makes it easier for
ant task `test` to locate actual test cases.
Jan Vrany <jan.vrany@fit.cvut.cz> [Sun, 20 Mar 2016 13:19:32 +0000] rev 3541
Build files: added ant target `test` to build and run tests.
Use `ant test` in java directory to run tests under real JVM.
By default test sources should be in directory `java/src-tests`
and are compiled to `java/bin-tests`. If `java/src-tests` does not
exist, `ant test` is noop.
Indeed, individual packages may add more test targets by extending
targets `test.compile.pre`/`test.compile.post` and `test.run.pre` and
\`test.run.post`. When one or more tests fail, property `test.faulure` should
be set to indicate failure.
Jan Vrany <jan.vrany@fit.cvut.cz> [Mon, 21 Mar 2016 09:34:33 +0000] rev 3540
Fixed JavaClass>>isTestSelector: for dynamic ProxyMethod
Must test for isJavaMethod before accessing JavaMethod's annotations.
It could happen that the method is ProxyMethod (therefore a normal Smalltalk
method) which also understands #annotations but the returned structure
is completely different. Therefore we have to check to avoid possible DNU.
Jan Vrany <jan.vrany@fit.cvut.cz> [Mon, 21 Mar 2016 09:21:48 +0000] rev 3539
Fixed baaad bug in INVOKE? handling when method does not exist
...due to incompatible change in .class file. When a method that
does not exist is about to be invoked, then
`java.lang.NoSuchMethodError` must be thrown. If the instruction is
INVOKEINTERFACE, `java.lang.AbstractMethodError` should be thrown
instead.
The VM does not check nor throw these exceptions by itself. Instead
it relies on Smalltalk #doesNotUnderstand: mechanism. There it checks
whether the sending context is a a JavaContext and if so, throw Java
error as specified in JVM spec.
Interesting how far we went without noticing...
Jan Vrany <jan.vrany@fit.cvut.cz> [Sun, 20 Mar 2016 23:55:04 +0000] rev 3538
Added tests for INVOKE? instruction when invoked method is missing
Since this test needs a special fiddling around. class files, the code
is in separate directory and compiles to separate directory.
Jan Vrany <jan.vrany@fit.cvut.cz> [Tue, 15 Mar 2016 15:46:32 +0000] rev 3537
Added JavaMethod>>hasEnabledBreakpoints, required by new stx:libtool
(grafted from 76cf21b2a44156ae29689b67011159ae5393bf4f)
Jan Vrany <jan.vrany@fit.cvut.cz> [Sat, 12 Mar 2016 00:11:19 +0000] rev 3536
JavaByteCodeProcessor: fixed fetchBytes4 use #signExtendedLongValue
...instead of asSigned32. This should fix
JavaByteCodeInterpreterTests>>testLookupSwitch