+#
+# 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.
+#
+
from bt2 import value
import collections
import unittest
def _build_meta(self):
self._tc = self._component._create_trace_class()
self._t = self._tc()
- self._sc = self._tc.create_stream_class()
+ self._sc = self._tc.create_stream_class(supports_packets=True)
self._ec = self._sc.create_event_class(name='salut')
self._my_int_ft = self._tc.create_signed_integer_field_class(32)
payload_ft = self._tc.create_structure_field_class()
comp = self._graph.add_component(MySink, 'salut')
assert comp
- comp2 = self._graph.add_component(comp.component_class, 'salut2')
+ comp2 = self._graph.add_component(comp.cls, 'salut2')
self.assertEqual(comp2.name, 'salut2')
def test_add_component_params(self):
with self.assertRaises(TypeError):
self._graph.add_component(int, 'salut')
+ def test_add_component_invalid_logging_level_type(self):
+ class MySink(bt2._UserSinkComponent):
+ def _consume(self):
+ pass
+
+ with self.assertRaises(TypeError):
+ self._graph.add_component(MySink, 'salut', logging_level='yo')
+
+ def test_add_component_invalid_logging_level_value(self):
+ class MySink(bt2._UserSinkComponent):
+ def _consume(self):
+ pass
+
+ with self.assertRaises(ValueError):
+ self._graph.add_component(MySink, 'salut', logging_level=12345)
+
+ def test_add_component_logging_level(self):
+ class MySink(bt2._UserSinkComponent):
+ def _consume(self):
+ pass
+
+ comp = self._graph.add_component(MySink, 'salut',
+ logging_level=bt2.LoggingLevel.DEBUG)
+ self.assertEqual(comp.logging_level, bt2.LoggingLevel.DEBUG)
+
def test_connect_ports(self):
class MyIter(bt2._UserMessageIterator):
def __next__(self):
sink.input_ports['in'])
self.assertTrue(src.output_ports['out'].is_connected)
self.assertTrue(sink.input_ports['in'].is_connected)
- self.assertEqual(src.output_ports['out'].connection._ptr, conn._ptr)
- self.assertEqual(sink.input_ports['in'].connection._ptr, conn._ptr)
+ self.assertEqual(src.output_ports['out'].connection.addr, conn.addr)
+ self.assertEqual(sink.input_ports['in'].connection.addr, conn.addr)
def test_connect_ports_invalid_direction(self):
class MyIter(bt2._UserMessageIterator):
conn = self._graph.connect_ports(sink.input_ports['in'],
src.output_ports['out'])
- def test_connect_ports_refused(self):
- class MyIter(bt2._UserMessageIterator):
- def __next__(self):
- raise bt2.Stop
-
- class MySource(bt2._UserSourceComponent,
- message_iterator_class=MyIter):
- def __init__(self, params):
- self._add_output_port('out')
-
- class MySink(bt2._UserSinkComponent):
- def __init__(self, params):
- self._add_input_port('in')
-
- def _consume(self):
- raise bt2.Stop
-
- def _accept_port_connection(self, port, other_port):
- return False
-
- src = self._graph.add_component(MySource, 'src')
- sink = self._graph.add_component(MySink, 'sink')
-
- with self.assertRaises(bt2.PortConnectionRefused):
- conn = self._graph.connect_ports(src.output_ports['out'],
- sink.input_ports['in'])
-
def test_cancel(self):
self.assertFalse(self._graph.is_canceled)
self._graph.cancel()
self.assertTrue(self._graph.is_canceled)
- # Test that Graph.run() raises bt2.GraphCanceled if the graph gets canceled
+ # Test that Graph.run() raises bt2.Canceled if the graph gets canceled
# during execution.
def test_cancel_while_running(self):
class MyIter(_MyIter):
up = graph.add_component(MySource, 'down')
down = graph.add_component(MySink, 'up')
graph.connect_ports(up.output_ports['out'], down.input_ports['in'])
- with self.assertRaises(bt2.GraphCanceled):
+ with self.assertRaises(bt2.Canceled):
graph.run()
def test_run(self):
self.assertIsInstance(msg, bt2.message._PacketBeginningMessage)
elif comp_self._at >= 2 and comp_self._at <= 6:
self.assertIsInstance(msg, bt2.message._EventMessage)
- self.assertEqual(msg.event.event_class.name, 'salut')
+ self.assertEqual(msg.event.cls.name, 'salut')
elif comp_self._at == 7:
self.assertIsInstance(msg, bt2.message._PacketEndMessage)
elif comp_self._at == 8: