chore: import upstream snapshot with attribution

This commit is contained in:
wehub-resource-sync
2026-07-13 13:17:40 +08:00
commit f1825c8ceb
10096 changed files with 2364182 additions and 0 deletions
+183
View File
@@ -0,0 +1,183 @@
import sys
import threading
import pytest
import ray
@ray.remote
class NestedActor:
def __init__(self, expected_depth=1):
task_depth = ray._private.worker.global_worker.task_depth
assert task_depth == expected_depth
def run_actor_task(self, max_depth, spawn_task, expected_depth=1):
task_depth = ray._private.worker.global_worker.task_depth
assert task_depth == expected_depth
if expected_depth < max_depth:
if spawn_task:
ray.get(
nested_task.remote(
max_depth,
spawn_task,
expected_depth + 1,
)
)
else:
nested_actor = NestedActor.remote(expected_depth + 1)
ray.get(
nested_actor.run_actor_task.remote(
max_depth, spawn_task, expected_depth + 1
)
)
@ray.remote
def nested_task(max_depth, spawn_task, expected_depth=1):
task_depth = ray._private.worker.global_worker.task_depth
assert task_depth == expected_depth
if expected_depth < max_depth:
if spawn_task:
ray.get(
nested_task.remote(
max_depth,
spawn_task,
expected_depth + 1,
)
)
else:
nested_actor = NestedActor.remote(expected_depth + 1)
ray.get(
nested_actor.run_actor_task.remote(
max_depth, spawn_task, expected_depth + 1
)
)
def test_actor_spawn_actor(shutdown_only):
nested_actor = NestedActor.remote()
ray.get(nested_actor.run_actor_task.remote(max_depth=4, spawn_task=False))
def test_actor_spawn_task(shutdown_only):
nested_actor = NestedActor.remote()
ray.get(nested_actor.run_actor_task.remote(max_depth=2, spawn_task=True))
def test_task_spawn_task(shutdown_only):
ray.get(nested_task.remote(max_depth=5, spawn_task=True))
def test_task_spawn_actor(shutdown_only):
ray.get(nested_task.remote(max_depth=2, spawn_task=False))
def test_task_spawn_detached_actor_spawn_actor(shutdown_only):
@ray.remote
def spawn_detached_actor():
assert ray._private.worker.global_worker.task_depth == 1
nested_actor = NestedActor.options(name="detached", lifetime="detached").remote(
expected_depth=2
)
ray.get(
nested_actor.run_actor_task.remote(
max_depth=3, spawn_task=False, expected_depth=2
)
)
ray.get(spawn_detached_actor.remote())
def test_actor_call_task_call_actor(shutdown_only):
@ray.remote
class TestActor:
def __init__(self, expected_depth=1):
task_depth = ray._private.worker.global_worker.task_depth
assert task_depth == expected_depth
def run(self, spawn_task=False, expected_depth=1):
task_depth = ray._private.worker.global_worker.task_depth
assert task_depth == expected_depth
if spawn_task:
ray.get(
call_actor.remote(
self, spawn_task=False, expected_depth=expected_depth + 1
)
)
@ray.remote
def call_actor(actor, spawn_task=False, expected_depth=1):
task_depth = ray._private.worker.global_worker.task_depth
assert task_depth == expected_depth
ray.get(actor.run.remote(spawn_task=spawn_task, expected_depth=task_depth + 1))
actor = TestActor.remote()
actor.run.remote(spawn_task=True)
def test_crashed_actor_restores_depth(shutdown_only):
@ray.remote
class TestActor:
def __init__(self, expected_depth=1):
task_depth = ray._private.worker.global_worker.task_depth
assert task_depth == expected_depth
def crash(self):
assert False
def create_restartable_actor(self):
task_depth = ray._private.worker.global_worker.task_depth
actor = TestActor.options(max_restarts=1, max_task_retries=0).remote(
expected_depth=task_depth + 1
)
return actor
def run(self):
pass
actor = TestActor.options(max_restarts=1, max_task_retries=0).remote()
with pytest.raises(ray.exceptions.RayTaskError) as _:
ray.get(actor.crash.remote())
nested_actor = ray.get(actor.create_restartable_actor.remote())
ray.get(nested_actor.run.remote())
def test_thread_create_task(shutdown_only):
@ray.remote
def thread_create_task():
assert ray._private.worker.global_worker.task_depth == 1
global has_exception
has_exception = False
@ray.remote
def check_nested_depth():
assert ray._private.worker.global_worker.task_depth == 2
def run_check_nested_depth():
try:
ray.get(check_nested_depth.options(max_retries=0).remote())
except Exception:
global has_exception
has_exception = True
t1 = threading.Thread(target=run_check_nested_depth)
t1.start()
t1.join()
assert not has_exception
ray.get(thread_create_task.remote())
if __name__ == "__main__":
sys.exit(pytest.main(["-sv", __file__]))