X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=tests%2Fdata%2Fcli%2Fconvert%2Fauto-source-discovery-params-log-level%2Fbt_plugin_test.py;h=a1ac699454bef32ec8937e49a789e1a381e0c942;hb=dc807017742411a9a0e328bb25a592aaf10df11e;hp=dc7f4e69940a953a117bb5d1d37d2cc35030aea6;hpb=216b7cc7012d58632a085d2813f1573f09532ac5;p=babeltrace.git diff --git a/tests/data/cli/convert/auto-source-discovery-params-log-level/bt_plugin_test.py b/tests/data/cli/convert/auto-source-discovery-params-log-level/bt_plugin_test.py index dc7f4e69..a1ac6994 100644 --- a/tests/data/cli/convert/auto-source-discovery-params-log-level/bt_plugin_test.py +++ b/tests/data/cli/convert/auto-source-discovery-params-log-level/bt_plugin_test.py @@ -1,42 +1,60 @@ import bt2 import os -# This file defines source component classes that can print (depending the on -# the `print` param): +# This file defines source component classes to help verify the parameters an +# log levels passed to components. Each component creates one stream, with a +# name derived from either: # -# - Parameter names and values, for parameter whose name starts with `test-`. -# - Component log levels as integers +# - the received params that start with `test-` +# - the received log level +# +# The `what` parameter determines what is used. class TestIter(bt2._UserMessageIterator): - pass + def __init__(self, output_port): + params = output_port.user_data['params'] + comp_cls_name = self._component.__class__.__name__ -class Base: - @classmethod - def _print_test_params(cls, params): - items = sorted([str(x) for x in params.items() if x[0].startswith('test-')]) - print('{}: {}'.format(cls.__name__, ', '.join(items))) - - def _print_log_level(self): - cls_name = self.__class__.__name__ - log_level = self.logging_level - print('{}: {}'.format(cls_name, log_level)) - - def _print_info(self, params): - what = params['print'] - if what == 'test-params': - self._print_test_params(params) - elif what == 'log-level': - self._print_log_level() + if params['what'] == 'test-params': + items = sorted([str(x) for x in params.items() if x[0].startswith('test-')]) + stream_name = '{}: {}'.format(comp_cls_name, ', '.join(items)) + elif params['what'] == 'log-level': + log_level = self._component.logging_level + stream_name = '{}: {}'.format(comp_cls_name, log_level) else: assert False + sc = output_port.user_data['sc'] + tc = sc.trace_class + t = tc() + s = t.create_stream(sc, name=stream_name) + + self._msgs = [ + self._create_stream_beginning_message(s), + self._create_stream_end_message(s), + ] + + def __next__(self): + if len(self._msgs) == 0: + raise StopIteration + + return self._msgs.pop(0) + + +class Base: + def __init__(self, params): + tc = self._create_trace_class() + sc = tc.create_stream_class() + + self._add_output_port('out', {'params': params, 'sc': sc}) + @bt2.plugin_component_class class TestSourceA(Base, bt2._UserSourceComponent, message_iterator_class=TestIter): - def __init__(self, params): - self._print_info(params) + def __init__(self, params, obj): + super().__init__(params) @staticmethod def _user_query(priv_query_exec, obj, params, method_obj): @@ -58,8 +76,8 @@ class TestSourceA(Base, bt2._UserSourceComponent, message_iterator_class=TestIte @bt2.plugin_component_class class TestSourceB(Base, bt2._UserSourceComponent, message_iterator_class=TestIter): - def __init__(self, params): - self._print_info(params) + def __init__(self, params, obj): + super().__init__(params) @staticmethod def _user_query(priv_query_exec, obj, params, method_obj):