+# 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 uuid
-import copy
import bt2
+import utils
from utils import run_in_component_init, TestOutputPortMessageIterator
+from bt2 import value as bt2_value
+from bt2 import clock_class as bt2_clock_class
class ClockClassOffsetTestCase(unittest.TestCase):
self.assertEqual(cc.offset, bt2.ClockClassOffset())
self.assertTrue(cc.origin_is_unix_epoch)
self.assertIsNone(cc.uuid)
+ self.assertEqual(len(cc.user_attributes), 0)
def test_create_name(self):
def f(comp_self):
self.assertRaisesInComponentInit(TypeError, f)
+ def test_create_user_attributes(self):
+ def f(comp_self):
+ return comp_self._create_clock_class(user_attributes={'salut': 23})
+
+ cc = run_in_component_init(f)
+ self.assertEqual(cc.user_attributes, {'salut': 23})
+ self.assertIs(type(cc.user_attributes), bt2_value.MapValue)
+
+ def test_create_invalid_user_attributes(self):
+ def f(comp_self):
+ return comp_self._create_clock_class(user_attributes=object())
+
+ self.assertRaisesInComponentInit(TypeError, f)
+
+ def test_create_invalid_user_attributes_value_type(self):
+ def f(comp_self):
+ return comp_self._create_clock_class(user_attributes=23)
+
+ self.assertRaisesInComponentInit(TypeError, f)
+
+ def test_const_user_attributes(self):
+ cc = utils.get_const_event_message().default_clock_snapshot.clock_class
+ self.assertIs(type(cc.user_attributes), bt2_value._MapValueConst)
+
class ClockSnapshotTestCase(unittest.TestCase):
def setUp(self):
self._cc = _cc
class MyIter(bt2._UserMessageIterator):
- def __init__(self, self_port_output):
+ def __init__(self, config, self_port_output):
self._at = 0
def __next__(self):
return notif
class MySrc(bt2._UserSourceComponent, message_iterator_class=MyIter):
- def __init__(self, params, obj):
+ def __init__(self, config, params, obj):
self._add_output_port('out')
self._graph = bt2.Graph()
self.assertEqual(self._msg.default_clock_snapshot.value, 123)
def test_clock_class(self):
- self.assertEqual(
- self._msg.default_clock_snapshot.clock_class.addr, self._cc.addr
- )
+ cc = self._msg.default_clock_snapshot.clock_class
+ self.assertEqual(cc.addr, self._cc.addr)
+ self.assertIs(type(cc), bt2_clock_class._ClockClassConst)
def test_ns_from_origin(self):
s_from_origin = 45 + ((354 + 123) / 1000)
self.assertTrue(self._msg.default_clock_snapshot <= 123)
self.assertFalse(self._msg.default_clock_snapshot <= 100)
+
+
+if __name__ == '__main__':
+ unittest.main()