protected V8(final String globalAlias) { super(null); released = false; v8RuntimePtr = _createIsolate(globalAlias); locker = new V8Locker(this); checkThread(); objectHandle = _getGlobalObject(v8RuntimePtr); }
protected V8(final String globalAlias) { super(null); released = false; v8RuntimePtr = _createIsolate(globalAlias); locker = new V8Locker(this); checkThread(); objectHandle = _getGlobalObject(v8RuntimePtr); }
@Test public void testThreadLocked_tryAcquire() throws InterruptedException { final V8Locker v8Locker = new V8Locker(v8); final boolean result[] = new boolean[1]; Thread t = new Thread(new Runnable() { @Override public void run() { result[0] = v8Locker.tryAcquire(); } }); t.start(); t.join(); assertFalse(result[0]); }
@Test public void testThreadLocked() throws InterruptedException { final V8Locker v8Locker = new V8Locker(v8); passed = false; Thread t = new Thread(new Runnable() { @Override public void run() { try { v8Locker.checkThread(); } catch (Error e) { assertTrue(e.getMessage().startsWith("Invalid V8 thread access")); passed = true; } } }); t.start(); t.join(); assertTrue(passed); }
@Test public void testAcquireOnCreation() { V8Locker v8Locker = new V8Locker(v8); v8Locker.checkThread(); }
@Test public void testGetThread() { V8Locker v8Locker = new V8Locker(v8); assertEquals(Thread.currentThread(), v8Locker.getThread()); }
@Test public void testCannotUseReleasedLocker() { V8Locker v8Locker = new V8Locker(v8); v8Locker.release(); try { v8Locker.checkThread(); } catch (Error e) { assertTrue(e.getMessage().startsWith("Invalid V8 thread access")); return; } fail("Expected exception"); }
@Test public void testHasLock() { V8Locker v8Locker = new V8Locker(v8); assertTrue(v8Locker.hasLock()); }
@Test public void testAcquireLocker() { V8Locker v8Locker = new V8Locker(v8); v8Locker.release(); v8Locker.acquire(); v8Locker.checkThread(); }
@Test public void testMultipleRelease() { V8Locker v8Locker = new V8Locker(v8); v8Locker.release(); v8Locker.release(); v8Locker.release(); }
@Test public void testReleaseAfterV8Released() { V8Locker v8Locker = new V8Locker(v8); v8.close(); v8Locker.release(); v8 = V8.createV8Runtime(); // Create a new runtime so the teardown doesn't fail }
@Test public void testDoesNotHasLock() { V8Locker v8Locker = new V8Locker(v8); v8Locker.release(); assertFalse(v8Locker.hasLock()); }
@Test public void testGetThreadNullAfterRelease() { V8Locker v8Locker = new V8Locker(v8); v8Locker.release(); assertNull(v8Locker.getThread()); }
@Test public void testTryAcquireLocker_True() { V8Locker v8Locker = new V8Locker(v8); v8Locker.release(); boolean result = v8Locker.tryAcquire(); assertTrue(result); v8Locker.checkThread(); }
protected V8(final String globalAlias) { super(null); released = false; locker = new V8Locker(); checkThread(); v8RuntimePtr = _createIsolate(globalAlias); objectHandle = _getGlobalObject(v8RuntimePtr); }
protected V8(final String globalAlias) { super(null); released = false; locker = new V8Locker(); checkThread(); v8RuntimePtr = _createIsolate(globalAlias); objectHandle = _getGlobalObject(v8RuntimePtr); }