diff --git a/test/runtest.py b/test/runtest.py index ab24f5ea1256..7ad98702bad0 100644 --- a/test/runtest.py +++ b/test/runtest.py @@ -704,13 +704,39 @@ def g(): return ray.get_gpu_ids() assert f._submit([0], num_return_vals=0) is None - assert ray.get(f._submit(args=[1], num_return_vals=1)) == [0] - assert ray.get(f._submit(args=[2], num_return_vals=2)) == [0, 1] - assert ray.get(f._submit(args=[3], num_return_vals=3)) == [0, 1, 2] + id1 = f._submit(args=[1], num_return_vals=1) + assert ray.get(id1) == [0] + id1, id2 = f._submit(args=[2], num_return_vals=2) + assert ray.get([id1, id2]) == [0, 1] + id1, id2, id3 = f._submit(args=[3], num_return_vals=3) + assert ray.get([id1, id2, id3]) == [0, 1, 2] assert ray.get( g._submit( args=[], num_cpus=1, num_gpus=1, resources={"Custom": 1})) == [0] + infeasible_id = g._submit(args=[], resources={"NonexistentCustom": 1}) + ready_ids, remaining_ids = ray.wait([infeasible_id], timeout=50) + assert len(ready_ids) == 0 + assert len(remaining_ids) == 1 + + @ray.remote + class Actor(object): + def __init__(self, x, y=0): + self.x = x + self.y = y + + def method(self, a, b=0): + return self.x, self.y, a, b + + def gpu_ids(self): + return ray.get_gpu_ids() + + a = Actor._submit( + args=[0], kwargs={"y": 1}, num_gpus=1, resources={"Custom": 1}) + + id1, id2, id3, id4 = a.method._submit( + args=["test"], kwargs={"b": 2}, num_return_vals=4) + assert ray.get([id1, id2, id3, id4]) == [0, 1, "test", 2] def testGetMultiple(self): self.init_ray()