Skip to content

Commit

Permalink
Handle trace without callback objects (#27)
Browse files Browse the repository at this point in the history
Signed-off-by: Christophe Bedard <christophe.bedard@apex.ai>
  • Loading branch information
christophebedard authored Jun 18, 2024
1 parent eb2b8f6 commit d8c352c
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 0 deletions.
8 changes: 8 additions & 0 deletions tracetools_analysis/test/tracetools_analysis/test_utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,8 @@
import unittest

from tracetools_analysis import time_diff_to_str
from tracetools_analysis.data_model.ros2 import Ros2DataModel
from tracetools_analysis.utils.ros2 import Ros2DataModelUtil


class TestUtils(unittest.TestCase):
Expand All @@ -31,3 +33,9 @@ def test_time_diff_to_str(self) -> None:
self.assertEqual('1 m 10 s', time_diff_to_str(69.6969))
self.assertEqual('6 m 10 s', time_diff_to_str(369.6969))
self.assertEqual('2 m 0 s', time_diff_to_str(120.499999999))

def test_ros2_no_callbacks(self) -> None:
data_model = Ros2DataModel()
data_model.finalize()
util = Ros2DataModelUtil(data_model)
self.assertEqual({}, util.get_callback_symbols())
3 changes: 3 additions & 0 deletions tracetools_analysis/tracetools_analysis/utils/ros2.py
Original file line number Diff line number Diff line change
Expand Up @@ -117,6 +117,9 @@ def get_callback_symbols(self) -> Mapping[int, str]:
callback_instances = self.data.callback_instances
callback_symbols = self.data.callback_symbols

if 'callback_object' not in callback_instances.columns:
return {}

# Get a list of callback objects
callback_objects = set(callback_instances['callback_object'])
# Get their symbol
Expand Down

0 comments on commit d8c352c

Please sign in to comment.