X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=tests%2Fdata%2Fcli%2Fparams%2Fbt_plugin_params.py;fp=tests%2Fdata%2Fcli%2Fparams%2Fbt_plugin_params.py;h=4d750137d3f6371732a9b21897cd088106a9633d;hb=7b8c5132ba2d578e6df2fbe1375d3ce6d23ad051;hp=0000000000000000000000000000000000000000;hpb=be05cb0e1965d5c7cdd906e64c1287695df72406;p=babeltrace.git diff --git a/tests/data/cli/params/bt_plugin_params.py b/tests/data/cli/params/bt_plugin_params.py new file mode 100644 index 00000000..4d750137 --- /dev/null +++ b/tests/data/cli/params/bt_plugin_params.py @@ -0,0 +1,51 @@ +# +# Copyright (C) 2019 EfficiOS Inc. +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; only version 2 +# of the License. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +# + +import bt2 + + +def to_string(p): + # Print BT values in a predictable way (the order of map entries) and with + # additional information (u suffix to differentiate unsigned integers from + # signed integers). + + if type(p) is bt2.ArrayValue: + s = '[{}]'.format(', '.join([to_string(x) for x in p])) + elif type(p) is bt2.MapValue: + s = '{{{}}}'.format( + ', '.join([k + '=' + to_string(p[k]) for k in sorted(p.keys())]) + ) + elif type(p) is bt2.UnsignedIntegerValue: + s = str(p) + 'u' + else: + s = str(p) + + return s + + +@bt2.plugin_component_class +class SinkThatPrintsParams(bt2._UserSinkComponent): + def __init__(self, params, obj): + self._add_input_port('in') + print(to_string(params)) + + def _user_consume(self): + raise bt2.Stop + + +bt2.register_plugin(__name__, "params")