X-Git-Url: http://git.efficios.com/?p=babeltrace.git;a=blobdiff_plain;f=tests%2Fbindings%2Fpython%2Fbt2%2Ftest_event.py;h=39486bc6b6bdc9daf7514df206c59dfd447b8552;hp=4288fd91f1471e54bab75be2f3325bc1e5df838b;hb=0235b0db7de5bcacdb3650c92461f2ce5eb2143d;hpb=8d8b141db4c46135a35be19e4a1c192f6a36d67b diff --git a/tests/bindings/python/bt2/test_event.py b/tests/bindings/python/bt2/test_event.py index 4288fd91..39486bc6 100644 --- a/tests/bindings/python/bt2/test_event.py +++ b/tests/bindings/python/bt2/test_event.py @@ -1,20 +1,7 @@ +# SPDX-License-Identifier: GPL-2.0-only # # 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 unittest import bt2 @@ -95,7 +82,8 @@ class EventTestCase(unittest.TestCase): cc = tc.create_structure_field_class() cc += [ ('cpu_id', tc.create_signed_integer_field_class(8)), - ('stuff', tc.create_real_field_class()), + ('stuff', tc.create_double_precision_real_field_class()), + ('gnu', tc.create_string_field_class()), ] # packet context (stream-class-defined) @@ -105,7 +93,10 @@ class EventTestCase(unittest.TestCase): pc = tc.create_structure_field_class() pc += [ ('something', tc.create_unsigned_integer_field_class(8)), - ('something_else', tc.create_real_field_class()), + ( + 'something_else', + tc.create_double_precision_real_field_class(), + ), ] stream_class = tc.create_stream_class( @@ -189,6 +180,7 @@ class EventTestCase(unittest.TestCase): def event_fields_config(event): event.common_context_field['cpu_id'] = 1 event.common_context_field['stuff'] = 13.194 + event.common_context_field['gnu'] = 'salut' msg = self._create_test_const_event_message( event_fields_config=event_fields_config, with_cc=True @@ -196,6 +188,7 @@ class EventTestCase(unittest.TestCase): self.assertEqual(msg.event.common_context_field['cpu_id'], 1) self.assertEqual(msg.event.common_context_field['stuff'], 13.194) + self.assertEqual(msg.event.common_context_field['gnu'], 'salut') self.assertIs( type(msg.event.common_context_field), bt2_field._StructureFieldConst ) @@ -284,23 +277,30 @@ class EventTestCase(unittest.TestCase): msg = utils.get_event_message() self.assertIs(type(msg.event.stream), bt2_stream._Stream) - def test_const_getitem(self): - def event_fields_config(event): - event.payload_field['giraffe'] = 1 - event.payload_field['gnu'] = 23 - event.payload_field['mosquito'] = 42 - event.specific_context_field['ant'] = -1 - event.specific_context_field['msg'] = 'hellooo' - event.common_context_field['cpu_id'] = 1 - event.common_context_field['stuff'] = 13.194 - - def packet_fields_config(packet): - packet.context_field['something'] = 154 - packet.context_field['something_else'] = 17.2 + @staticmethod + def _event_payload_fields_config(event): + event.payload_field['giraffe'] = 1 + event.payload_field['gnu'] = 23 + event.payload_field['mosquito'] = 42 + + @staticmethod + def _event_fields_config(event): + EventTestCase._event_payload_fields_config(event) + event.specific_context_field['ant'] = -1 + event.specific_context_field['msg'] = 'hellooo' + event.common_context_field['cpu_id'] = 1 + event.common_context_field['stuff'] = 13.194 + event.common_context_field['gnu'] = 'salut' + + @staticmethod + def _packet_fields_config(packet): + packet.context_field['something'] = 154 + packet.context_field['something_else'] = 17.2 + def test_const_getitem(self): msg = self._create_test_const_event_message( - packet_fields_config=packet_fields_config, - event_fields_config=event_fields_config, + packet_fields_config=self._packet_fields_config, + event_fields_config=self._event_fields_config, with_cc=True, with_sc=True, with_ep=True, @@ -328,6 +328,15 @@ class EventTestCase(unittest.TestCase): with self.assertRaises(KeyError): ev['yes'] + def test_const_getitem_no_packet(self): + msg = self._create_test_const_event_message( + event_fields_config=self._event_payload_fields_config, with_ep=True, + ) + ev = msg.event + + with self.assertRaises(KeyError): + ev['yes'] + def test_getitem(self): msg = utils.get_event_message() ev = msg.event @@ -340,6 +349,110 @@ class EventTestCase(unittest.TestCase): self.assertEqual(ev['something'], 154) self.assertIs(type(ev['something']), bt2_field._UnsignedIntegerField) + def test_iter_full(self): + msg = self._create_test_const_event_message( + packet_fields_config=self._packet_fields_config, + event_fields_config=self._event_fields_config, + with_cc=True, + with_sc=True, + with_ep=True, + with_packet=True, + ) + expected_field_names = [ + # payload + 'giraffe', + 'gnu', + 'mosquito', + # specific context + 'ant', + 'msg', + # common context + 'cpu_id', + 'stuff', + # packet context + 'something', + 'something_else', + ] + self.assertEqual(list(msg.event), expected_field_names) + + def test_iter_payload_only(self): + msg = self._create_test_const_event_message( + event_fields_config=self._event_payload_fields_config, with_ep=True, + ) + expected_field_names = [ + # payload + 'giraffe', + 'gnu', + 'mosquito', + ] + self.assertEqual(list(msg.event), expected_field_names) + + def test_len_full(self): + msg = self._create_test_const_event_message( + packet_fields_config=self._packet_fields_config, + event_fields_config=self._event_fields_config, + with_cc=True, + with_sc=True, + with_ep=True, + with_packet=True, + ) + self.assertEqual(len(msg.event), 9) + + def test_len_payload_only(self): + msg = self._create_test_const_event_message( + packet_fields_config=None, + event_fields_config=self._event_payload_fields_config, + with_ep=True, + ) + self.assertEqual(len(msg.event), 3) + + def test_in_full(self): + msg = self._create_test_const_event_message( + packet_fields_config=self._packet_fields_config, + event_fields_config=self._event_fields_config, + with_cc=True, + with_sc=True, + with_ep=True, + with_packet=True, + ) + field_names = [ + # payload + 'giraffe', + 'gnu', + 'mosquito', + # specific context + 'ant', + 'msg', + # common context + 'cpu_id', + 'stuff', + # packet context + 'something', + 'something_else', + ] + + for field_name in field_names: + self.assertTrue(field_name in msg.event) + + self.assertFalse('lol' in msg.event) + + def test_in_payload_only(self): + msg = self._create_test_const_event_message( + packet_fields_config=None, + event_fields_config=self._event_payload_fields_config, + with_ep=True, + ) + field_names = [ + 'giraffe', + 'gnu', + 'mosquito', + ] + + for field_name in field_names: + self.assertTrue(field_name in msg.event) + + self.assertFalse('lol' in msg.event) + if __name__ == "__main__": unittest.main()