-
Notifications
You must be signed in to change notification settings - Fork 7
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add xml parameterizable directories (Sourcery refactored) #25
base: dir-xml-support
Are you sure you want to change the base?
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -86,32 +86,36 @@ def get_filename(map, hw): | |
|
||
|
||
def handle_iio_emu(ctx, request, _iio_emu): | ||
if "hw" in ctx and hasattr(_iio_emu, "auto") and _iio_emu.auto: | ||
if _iio_emu.current_device != ctx["hw"]: | ||
# restart with new hw | ||
if _iio_emu.p: | ||
print("Stopping iio-emu") | ||
_iio_emu.stop() | ||
else: | ||
print("Using same hardware not restarting iio-emu") | ||
map = get_hw_map(request) | ||
fn, dd = get_filename(map, ctx["hw"]) | ||
if not fn: | ||
return ctx | ||
if request.config.getoption("--emu-xml-dir"): | ||
path = request.config.getoption("--emu-xml-dir") | ||
exml = os.path.join(path, fn) | ||
print("exml", exml) | ||
else: | ||
path = pathlib.Path(__file__).parent.absolute() | ||
exml = os.path.join(path, "resources", "devices", fn) | ||
if not os.path.exists(exml): | ||
pytest.skip("No XML file found for hardware") | ||
_iio_emu.xml_path = exml | ||
_iio_emu.current_device = ctx["hw"] | ||
_iio_emu.data_devices = dd | ||
print("Starting iio-emu") | ||
_iio_emu.start() | ||
if ( | ||
"hw" in ctx | ||
and hasattr(_iio_emu, "auto") | ||
and _iio_emu.auto | ||
and _iio_emu.current_device != ctx["hw"] | ||
): | ||
# restart with new hw | ||
if _iio_emu.p: | ||
print("Stopping iio-emu") | ||
_iio_emu.stop() | ||
else: | ||
print("Using same hardware not restarting iio-emu") | ||
map = get_hw_map(request) | ||
fn, dd = get_filename(map, ctx["hw"]) | ||
if not fn: | ||
return ctx | ||
if request.config.getoption("--emu-xml-dir"): | ||
path = request.config.getoption("--emu-xml-dir") | ||
exml = os.path.join(path, fn) | ||
print("exml", exml) | ||
else: | ||
path = pathlib.Path(__file__).parent.absolute() | ||
exml = os.path.join(path, "resources", "devices", fn) | ||
if not os.path.exists(exml): | ||
pytest.skip("No XML file found for hardware") | ||
_iio_emu.xml_path = exml | ||
_iio_emu.current_device = ctx["hw"] | ||
_iio_emu.data_devices = dd | ||
print("Starting iio-emu") | ||
_iio_emu.start() | ||
return ctx | ||
|
||
|
||
|
@@ -219,10 +223,9 @@ def single_ctx_desc(request, _contexts): | |
hardware = hardware if isinstance(hardware, list) else [hardware] | ||
if not marker: | ||
return _contexts[0] | ||
else: | ||
for dec in _contexts: | ||
if dec["hw"] in marker.args[0]: | ||
return dec | ||
for dec in _contexts: | ||
if dec["hw"] in marker.args[0]: | ||
return dec | ||
Comment on lines
-222
to
+228
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Function
|
||
pytest.skip("No required hardware found") | ||
|
||
|
||
|
@@ -262,10 +265,9 @@ def _iio_emu_func(request, _contexts, _iio_emu): | |
hardware = hardware if isinstance(hardware, list) else [hardware] | ||
if not marker: | ||
return _contexts[0] | ||
else: | ||
for dec in _contexts: | ||
if dec["hw"] in marker.args[0]: | ||
return handle_iio_emu(dec, request, _iio_emu) | ||
for dec in _contexts: | ||
if dec["hw"] in marker.args[0]: | ||
return handle_iio_emu(dec, request, _iio_emu) | ||
Comment on lines
-265
to
+270
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Function
|
||
pytest.skip("No required hardware found") | ||
|
||
|
||
|
@@ -293,10 +295,7 @@ def _iio_emu(request): | |
if isinstance(field, dict) and "emulate" in field: | ||
hw_w_emulation[hw] = field | ||
if hw in hw_w_emulation: | ||
devices = [] | ||
for field in map[hw]: | ||
if isinstance(field, str): | ||
devices.append(field) | ||
devices = [field for field in map[hw] if isinstance(field, str)] | ||
Comment on lines
-296
to
+298
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Function
|
||
hw_w_emulation[hw]["devices"] = devices | ||
|
||
emu = iio_emu_manager(xml_path="auto", auto=True) | ||
|
@@ -316,16 +315,12 @@ def _contexts(request, _iio_emu): | |
|
||
if _iio_emu: | ||
if _iio_emu.auto: | ||
ctx_plus_hw = [] | ||
for hw in _iio_emu.hw: | ||
ctx_plus_hw.append( | ||
{ | ||
ctx_plus_hw = [{ | ||
"uri": _iio_emu.uri, | ||
"type": "emu", | ||
"devices": _iio_emu.hw[hw]["devices"], | ||
"hw": hw, | ||
} | ||
) | ||
} for hw in _iio_emu.hw] | ||
Comment on lines
-319
to
+323
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Function
|
||
return ctx_plus_hw | ||
else: | ||
uri = _iio_emu.uri | ||
|
@@ -397,16 +392,12 @@ def lookup_hw_from_map(ctx, map): | |
for attr_dict in driver_or_attr["ctx_attr"]: | ||
for attr_name in attr_dict: | ||
# loop over found and compare to | ||
for hw_ctx_attr in ctx_attrs: | ||
for hw_ctx_attr, value in ctx_attrs.items(): | ||
if ( | ||
hw_ctx_attr == attr_name | ||
and attr_dict[attr_name] | ||
in ctx_attrs[hw_ctx_attr] | ||
and attr_dict[attr_name] in value | ||
): | ||
found += 1 | ||
# Compare other attribute types ... | ||
if attr_type == "dev_attr": | ||
pass | ||
Comment on lines
-400
to
-409
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Function
This removes the following comments ( why? ):
|
||
continue | ||
# Loop over drivers | ||
for h in hw: | ||
|
@@ -428,10 +419,7 @@ def lookup_hw_from_map(ctx, map): | |
|
||
|
||
def find_contexts(config, map, request): | ||
if request.config.getoption("--skip-scan"): | ||
ctxs = None | ||
else: | ||
ctxs = iio.scan_contexts() | ||
ctxs = None if request.config.getoption("--skip-scan") else iio.scan_contexts() | ||
Comment on lines
-431
to
+422
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Function
|
||
if not ctxs: | ||
print("\nNo libiio contexts found") | ||
return False | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Function
handle_iio_emu
refactored with the following changes:merge-nested-ifs
)