mirror of
https://github.com/vale981/ray
synced 2025-03-06 10:31:39 -05:00
67 lines
2 KiB
Python
67 lines
2 KiB
Python
![]() |
import ray
|
||
|
import ray.cluster_utils
|
||
|
from ray.exceptions import CrossLanguageError
|
||
|
import pytest
|
||
|
|
||
|
|
||
|
def test_cross_language_cpp():
|
||
|
ray.init(job_config=ray.job_config.JobConfig(code_search_path=["../../plus.so"]))
|
||
|
obj = ray.cross_language.cpp_function("Plus1").remote(1)
|
||
|
assert 2 == ray.get(obj)
|
||
|
|
||
|
obj1 = ray.cross_language.cpp_function("ThrowTask").remote()
|
||
|
with pytest.raises(CrossLanguageError):
|
||
|
ray.get(obj1)
|
||
|
|
||
|
obj = ray.cross_language.cpp_function("Plus1").remote("invalid arg")
|
||
|
with pytest.raises(CrossLanguageError):
|
||
|
ray.get(obj)
|
||
|
|
||
|
obj = ray.cross_language.cpp_function("Plus1").remote(1, 2)
|
||
|
with pytest.raises(CrossLanguageError):
|
||
|
ray.get(obj)
|
||
|
|
||
|
obj = ray.cross_language.cpp_function("Plus1").remote()
|
||
|
with pytest.raises(CrossLanguageError):
|
||
|
ray.get(obj)
|
||
|
|
||
|
obj2 = ray.cross_language.cpp_function("NotExsitTask").remote()
|
||
|
with pytest.raises(CrossLanguageError):
|
||
|
ray.get(obj2)
|
||
|
|
||
|
obj3 = ray.cross_language.cpp_function("Echo").remote("hello")
|
||
|
assert "hello" == ray.get(obj3)
|
||
|
|
||
|
list = [0] * 100000
|
||
|
obj4 = ray.cross_language.cpp_function("ReturnLargeArray").remote(list)
|
||
|
assert list == ray.get(obj4)
|
||
|
|
||
|
map = {0: "hello"}
|
||
|
obj5 = ray.cross_language.cpp_function("GetMap").remote(map)
|
||
|
assert {0: "hello", 1: "world"} == ray.get(obj5)
|
||
|
|
||
|
v = ["hello", "world"]
|
||
|
obj6 = ray.cross_language.cpp_function("GetList").remote(v)
|
||
|
assert v == ray.get(obj6)
|
||
|
|
||
|
obj6 = ray.cross_language.cpp_function("GetArray").remote(v)
|
||
|
assert v == ray.get(obj6)
|
||
|
|
||
|
tuple = [1, "hello"]
|
||
|
obj7 = ray.cross_language.cpp_function("GetTuple").remote(tuple)
|
||
|
assert tuple == ray.get(obj7)
|
||
|
|
||
|
student = ["tom", 20]
|
||
|
obj8 = ray.cross_language.cpp_function("GetStudent").remote(student)
|
||
|
assert student == ray.get(obj8)
|
||
|
|
||
|
students = {0: ["tom", 20], 1: ["jerry", 10]}
|
||
|
obj9 = ray.cross_language.cpp_function("GetStudents").remote(students)
|
||
|
assert students == ray.get(obj9)
|
||
|
|
||
|
|
||
|
if __name__ == "__main__":
|
||
|
import sys
|
||
|
|
||
|
sys.exit(pytest.main(["-v", __file__]))
|