[Java] Support direct call for normal tasks (#7193)

This commit is contained in:
Kai Yang
2020-02-21 10:03:34 +08:00
committed by GitHub
parent f27bb6eb47
commit 007333b960
21 changed files with 184 additions and 99 deletions
@@ -1,23 +0,0 @@
package org.ray.api;
import java.util.List;
import org.ray.api.options.ActorCreationOptions;
import org.testng.IAlterSuiteListener;
import org.testng.xml.XmlGroups;
import org.testng.xml.XmlRun;
import org.testng.xml.XmlSuite;
public class RayAlterSuiteListener implements IAlterSuiteListener {
@Override
public void alter(List<XmlSuite> suites) {
XmlSuite suite = suites.get(0);
if (ActorCreationOptions.DEFAULT_USE_DIRECT_CALL) {
XmlGroups groups = new XmlGroups();
XmlRun run = new XmlRun();
run.onInclude("directCall");
groups.setRun(run);
suite.setGroups(groups);
}
}
}
@@ -13,7 +13,7 @@ import org.testng.Assert;
import org.testng.annotations.Test;
@Test(groups = {"directCall"})
@Test
public class ActorConcurrentCallTest extends BaseTest {
@RayRemote
@@ -17,7 +17,7 @@ import org.ray.api.options.ActorCreationOptions;
import org.testng.Assert;
import org.testng.annotations.Test;
@Test(groups = {"directCall"})
@Test
public class ActorReconstructionTest extends BaseTest {
@RayRemote()
@@ -16,7 +16,7 @@ import org.ray.api.id.UniqueId;
import org.testng.Assert;
import org.testng.annotations.Test;
@Test(groups = {"directCall"})
@Test
public class ActorTest extends BaseTest {
@RayRemote
@@ -60,7 +60,7 @@ public class CrossLanguageInvocationTest extends BaseMultiLanguageTest {
Assert.assertEquals(res.get(), "[Python]py_func -> [Java]bytesEcho -> hello".getBytes());
}
@Test(groups = {"directCall"})
@Test
public void testCallingPythonActor() {
// Python worker doesn't support direct call yet.
TestUtils.skipTestIfDirectActorCallEnabled();
@@ -91,14 +91,14 @@ public class FailureTest extends BaseTest {
assertTaskFailedWithRayTaskException(Ray.call(FailureTest::badFunc));
}
@Test(groups = {"directCall"})
@Test
public void testActorCreationFailure() {
TestUtils.skipTestUnderSingleProcess();
RayActor<BadActor> actor = Ray.createActor(BadActor::new, true);
assertTaskFailedWithRayTaskException(Ray.call(BadActor::badMethod, actor));
}
@Test(groups = {"directCall"})
@Test
public void testActorTaskFailure() {
TestUtils.skipTestUnderSingleProcess();
RayActor<BadActor> actor = Ray.createActor(BadActor::new, false);
@@ -117,7 +117,7 @@ public class FailureTest extends BaseTest {
}
}
@Test(groups = {"directCall"})
@Test
public void testActorProcessDying() {
TestUtils.skipTestUnderSingleProcess();
// This test case hangs if the worker to worker connection is implemented with grpc.
@@ -10,7 +10,7 @@ import org.ray.api.exception.RayActorException;
import org.testng.Assert;
import org.testng.annotations.Test;
@Test(groups = { "directCall" })
@Test
public class KillActorTest extends BaseTest {
@RayRemote
@@ -21,7 +21,7 @@ import org.slf4j.LoggerFactory;
import org.testng.Assert;
import org.testng.annotations.Test;
@Test(groups = {"directCall"})
@Test
public class MultiThreadingTest extends BaseTest {
private static final Logger LOGGER = LoggerFactory.getLogger(MultiThreadingTest.class);
@@ -74,7 +74,7 @@ public class StressTest extends BaseTest {
}
}
@Test(enabled = false, groups = {"directCall"})
@Test(enabled = false)
public void testSubmittingManyTasksToOneActor() throws Exception {
TestUtils.skipTestUnderSingleProcess();
RayActor<Actor> actor = Ray.createActor(Actor::new);