Skip to content
Snippets Groups Projects
Commit e7970696 authored by Dominic Kempf's avatar Dominic Kempf
Browse files

Add testing for backend selection

parent 6a025fe5
No related branches found
No related tags found
No related merge requests found
...@@ -12,11 +12,12 @@ class FuncProxy(Record): ...@@ -12,11 +12,12 @@ class FuncProxy(Record):
def register_backend(interface, name, func): def register_backend(interface, name, func):
_backend_mapping.setdefault(interface, {}) _backend_mapping.setdefault(interface, {})
assert name not in _backend_mapping[interface]
_backend_mapping[interface][name] = func _backend_mapping[interface][name] = func
def backend(interface=None, name=None): def backend(interface=None, name='default'):
assert interface and name assert interface
def _dec(func): def _dec(func):
if not isinstance(func, _RegisteredFunction): if not isinstance(func, _RegisteredFunction):
......
from dune.perftool.generation import (backend,
get_backend,
generator_factory,
)
@backend(interface="foo", name="f1")
@generator_factory()
def f1():
return 1
@generator_factory()
@backend(interface="foo", name="f2")
def f2():
return 2
@backend(interface="bar", name="f3")
@generator_factory()
def f3():
return 3
@generator_factory()
@backend(interface="bar", name="f4")
def f4():
return 4
def test_backend():
assert get_backend(interface="foo", selector=lambda: "f1")() == 1
assert get_backend(interface="foo", selector=lambda: "f2")() == 2
assert get_backend(interface="bar", selector=lambda: "f3")() == 3
assert get_backend(interface="bar", selector=lambda: "f4")() == 4
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment