mirror of
https://github.com/wassname/ray.git
synced 2026-06-28 15:40:09 +08:00
Pyarrow Segfault Regression Test (#7568)
This commit is contained in:
@@ -407,3 +407,11 @@ py_test(
|
||||
tags = ["exclusive"],
|
||||
deps = ["//:ray_lib"],
|
||||
)
|
||||
|
||||
py_test(
|
||||
name = "test_symbol_collisions",
|
||||
size = "small",
|
||||
srcs = ["test_symbol_collisions.py"],
|
||||
tags = ["exclusive"],
|
||||
deps = ["//:ray_lib"],
|
||||
)
|
||||
|
||||
@@ -0,0 +1,29 @@
|
||||
"""
|
||||
This script ensures that various libraries do not conflict with ray by
|
||||
trying to import both libraries in both orders.
|
||||
A specific example is that importing ray after pyarrow causes a Segfault.
|
||||
"""
|
||||
import subprocess
|
||||
|
||||
TESTED_LIBRARIES = ["pyarrow"]
|
||||
|
||||
|
||||
def test_imports():
|
||||
def try_imports(library1, library2):
|
||||
return_info = subprocess.run([
|
||||
"python", "-c", "import {}; import {}".format(library1, library2)
|
||||
])
|
||||
if return_info.returncode != 0:
|
||||
return "Importing {} before {} caused an error".format(
|
||||
library1, library2)
|
||||
return ""
|
||||
|
||||
for library in TESTED_LIBRARIES:
|
||||
assert try_imports("ray", library) == ""
|
||||
assert try_imports(library, "ray") == ""
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
import sys
|
||||
import pytest
|
||||
sys.exit(pytest.main(["-v", __file__]))
|
||||
Reference in New Issue
Block a user