mirror of
https://github.com/konsoletyper/teavm.git
synced 2024-11-27 01:30:35 +08:00
Add a test for an issue which I believe is caused by failure to identify
an asynchronous method. Unfortunately I am unable to actually produce a failing test; instead an exception message is generated during test execution. This seems to be an issue with the test runner mechanism.
This commit is contained in:
parent
651532c203
commit
95f07d80a7
@ -167,6 +167,13 @@ public class VMTest {
|
||||
assertEquals("ok", acl.instanceState);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void asyncWait() {
|
||||
AsyncClinitClass acl = new AsyncClinitClass();
|
||||
acl.doWait();
|
||||
assertEquals("ok", acl.instanceState);
|
||||
}
|
||||
|
||||
@Test
|
||||
@SkipJVM
|
||||
public void loopAndExceptionPhi() {
|
||||
@ -244,13 +251,28 @@ public class VMTest {
|
||||
public static String bar() {
|
||||
return "bar";
|
||||
}
|
||||
|
||||
|
||||
public AsyncClinitClass() {
|
||||
instanceState += "ok";
|
||||
try {
|
||||
Thread.sleep(1);
|
||||
} catch (InterruptedException ie) {
|
||||
throw new RuntimeException(ie);
|
||||
}
|
||||
catch (InterruptedException ie) {
|
||||
}
|
||||
|
||||
public synchronized void doWait() {
|
||||
new Thread(() -> {
|
||||
synchronized (AsyncClinitClass.this) {
|
||||
notify();
|
||||
}
|
||||
}).start();
|
||||
|
||||
try {
|
||||
Thread.sleep(1);
|
||||
wait();
|
||||
} catch (InterruptedException ie) {
|
||||
instanceState = "error";
|
||||
throw new RuntimeException(ie);
|
||||
}
|
||||
}
|
||||
@ -294,4 +316,4 @@ public class VMTest {
|
||||
super(ONE);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user