Merge branch 'convert-names-lists-to-sets' into 'master'
Convert lists of event & context names to sets See merge request micro-ROS/ros_tracing/ros2_tracing!135
This commit is contained in:
commit
c31d184e76
3 changed files with 30 additions and 18 deletions
|
@ -48,7 +48,7 @@ class TraceTestCase(unittest.TestCase):
|
||||||
events_ros: List[str],
|
events_ros: List[str],
|
||||||
nodes: List[str],
|
nodes: List[str],
|
||||||
base_path: str = '/tmp',
|
base_path: str = '/tmp',
|
||||||
events_kernel: List[str] = None,
|
events_kernel: List[str] = [],
|
||||||
package: str = 'tracetools_test',
|
package: str = 'tracetools_test',
|
||||||
) -> None:
|
) -> None:
|
||||||
"""Create a TraceTestCase."""
|
"""Create a TraceTestCase."""
|
||||||
|
@ -70,7 +70,8 @@ class TraceTestCase(unittest.TestCase):
|
||||||
self._events_ros,
|
self._events_ros,
|
||||||
self._events_kernel,
|
self._events_kernel,
|
||||||
self._package,
|
self._package,
|
||||||
self._nodes)
|
self._nodes,
|
||||||
|
)
|
||||||
|
|
||||||
print(f'TRACE DIRECTORY: {full_path}')
|
print(f'TRACE DIRECTORY: {full_path}')
|
||||||
self._exit_code = exit_code
|
self._exit_code = exit_code
|
||||||
|
|
|
@ -53,13 +53,15 @@ def run_and_trace(
|
||||||
|
|
||||||
launch_actions = []
|
launch_actions = []
|
||||||
# Add trace action
|
# Add trace action
|
||||||
launch_actions.append(Trace(
|
launch_actions.append(
|
||||||
|
Trace(
|
||||||
session_name=session_name,
|
session_name=session_name,
|
||||||
append_timestamp=False,
|
append_timestamp=False,
|
||||||
base_path=base_path,
|
base_path=base_path,
|
||||||
events_ust=ros_events,
|
events_ust=ros_events,
|
||||||
events_kernel=kernel_events
|
events_kernel=kernel_events,
|
||||||
))
|
)
|
||||||
|
)
|
||||||
# Add nodes
|
# Add nodes
|
||||||
for node_name in node_names:
|
for node_name in node_names:
|
||||||
n = Node(
|
n = Node(
|
||||||
|
|
|
@ -18,6 +18,7 @@ from distutils.version import StrictVersion
|
||||||
import re
|
import re
|
||||||
from typing import List
|
from typing import List
|
||||||
from typing import Optional
|
from typing import Optional
|
||||||
|
from typing import Set
|
||||||
from typing import Union
|
from typing import Union
|
||||||
|
|
||||||
import lttng
|
import lttng
|
||||||
|
@ -50,9 +51,9 @@ def get_version() -> Union[StrictVersion, None]:
|
||||||
def setup(
|
def setup(
|
||||||
session_name: str,
|
session_name: str,
|
||||||
base_path: str = DEFAULT_BASE_PATH,
|
base_path: str = DEFAULT_BASE_PATH,
|
||||||
ros_events: List[str] = DEFAULT_EVENTS_ROS,
|
ros_events: Union[List[str], Set[str]] = DEFAULT_EVENTS_ROS,
|
||||||
kernel_events: List[str] = DEFAULT_EVENTS_KERNEL,
|
kernel_events: Union[List[str], Set[str]] = DEFAULT_EVENTS_KERNEL,
|
||||||
context_names: List[str] = DEFAULT_CONTEXT,
|
context_names: Union[List[str], Set[str]] = DEFAULT_CONTEXT,
|
||||||
channel_name_ust: str = 'ros2',
|
channel_name_ust: str = 'ros2',
|
||||||
channel_name_kernel: str = 'kchan',
|
channel_name_kernel: str = 'kchan',
|
||||||
) -> Optional[str]:
|
) -> Optional[str]:
|
||||||
|
@ -70,6 +71,14 @@ def setup(
|
||||||
:param channel_name_kernel: the kernel channel name
|
:param channel_name_kernel: the kernel channel name
|
||||||
:return: the full path to the trace directory
|
:return: the full path to the trace directory
|
||||||
"""
|
"""
|
||||||
|
# Convert lists to sets
|
||||||
|
if not isinstance(ros_events, set):
|
||||||
|
ros_events = set(ros_events)
|
||||||
|
if not isinstance(kernel_events, set):
|
||||||
|
kernel_events = set(kernel_events)
|
||||||
|
if not isinstance(context_names, set):
|
||||||
|
context_names = set(context_names)
|
||||||
|
|
||||||
# Resolve full tracing directory path
|
# Resolve full tracing directory path
|
||||||
full_path = get_full_session_path(session_name, base_path=base_path)
|
full_path = get_full_session_path(session_name, base_path=base_path)
|
||||||
|
|
||||||
|
@ -181,16 +190,16 @@ def destroy(
|
||||||
|
|
||||||
|
|
||||||
def _create_events(
|
def _create_events(
|
||||||
event_names_list: List[str],
|
event_names: Set[str],
|
||||||
) -> List[lttng.Event]:
|
) -> List[lttng.Event]:
|
||||||
"""
|
"""
|
||||||
Create events list from names.
|
Create events list from names.
|
||||||
|
|
||||||
:param event_names_list: a list of names to create events for
|
:param event_names: a set of names to create events for
|
||||||
:return: the list of events
|
:return: the list of events
|
||||||
"""
|
"""
|
||||||
events_list = []
|
events_list = []
|
||||||
for event_name in event_names_list:
|
for event_name in event_names:
|
||||||
e = lttng.Event()
|
e = lttng.Event()
|
||||||
e.name = event_name
|
e.name = event_name
|
||||||
e.type = lttng.EVENT_TRACEPOINT
|
e.type = lttng.EVENT_TRACEPOINT
|
||||||
|
@ -290,16 +299,16 @@ def _context_name_to_type(
|
||||||
|
|
||||||
|
|
||||||
def _create_context_list(
|
def _create_context_list(
|
||||||
context_names_list: List[str],
|
context_names: Set[str],
|
||||||
) -> List[lttng.EventContext]:
|
) -> List[lttng.EventContext]:
|
||||||
"""
|
"""
|
||||||
Create context list from names, and check for errors.
|
Create context list from names, and check for errors.
|
||||||
|
|
||||||
:param context_names_list: the list of context names
|
:param context_names: the set of context names
|
||||||
:return: the event context list
|
:return: the event context list
|
||||||
"""
|
"""
|
||||||
context_list = []
|
context_list = []
|
||||||
for context_name in context_names_list:
|
for context_name in context_names:
|
||||||
ec = lttng.EventContext()
|
ec = lttng.EventContext()
|
||||||
context_type = _context_name_to_type(context_name)
|
context_type = _context_name_to_type(context_name)
|
||||||
if context_type is not None:
|
if context_type is not None:
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue