from ttk.remote.server.executor import _resolve_3party_api, _aclnn_resolve
def test_resolve_3party_returns_name():
"""_resolve_3party_api 返回 (callable, name),name=命中搜索入参(非 __name__)。"""
f, name = _resolve_3party_api("add", "Add", "torch")
assert name == "add"
assert callable(f)
def test_resolve_3party_op_type_fallback():
"""op_name miss → op_type 命中,name=op_type"""
f, name = _resolve_3party_api("nonexistent_op", "add", "torch")
assert name == "add"
def test_resolve_3party_miss_returns_none_tuple():
f, name = _resolve_3party_api("zzz_no_such", "ZzzNoSuch", "torch")
assert f is None and name is None
def test_aclnn_returns_op_name(monkeypatch):
"""aclnn name = 请求原 op_name(aclnnXxx),非 strip+snake 后的内部 key"""
import ttk.remote.server.executor as ex
monkeypatch.setattr(ex, "_auto_import_from_torch",
lambda s: (lambda *a, **k: None))
f, name = _aclnn_resolve("aclnnAdd")
assert name == "add"
assert callable(f)
def test_ok_envelope_carries_api():
from ttk.remote.server.executor import _ok
env = _ok("/tmp/out.npz", 1, [[2, 3]], ["float32"], perf={"device_us": 1000.0}, api="torch.add")
assert env["api"] == "torch.add"
def test_err_envelope_carries_api():
from ttk.remote.server.executor import _err
env = _err(400, "bad", api="torch.add")
assert env["api"] == "torch.add"