# Key to sort streams in a predictable order.
def sort_predictably(stream):
- if 'range-ns' in stream:
- return stream['range-ns']['begin']
- else:
- return stream['paths'][0]
+ return stream['port-name']
class QueryTraceInfoClockOffsetTestCase(unittest.TestCase):
]
def _check(self, trace, offset):
- self.assertEqual(trace['range-ns']['begin'], 13515309000000000 + offset)
- self.assertEqual(trace['range-ns']['end'], 13515309000000120 + offset)
- self.assertEqual(
- trace['intersection-range-ns']['begin'], 13515309000000070 + offset
- )
- self.assertEqual(
- trace['intersection-range-ns']['end'], 13515309000000100 + offset
- )
-
- streams = sorted(trace['streams'], key=sort_predictably)
+ streams = sorted(trace['stream-infos'], key=sort_predictably)
self.assertEqual(streams[0]['range-ns']['begin'], 13515309000000000 + offset)
self.assertEqual(streams[0]['range-ns']['end'], 13515309000000100 + offset)
self.assertEqual(streams[1]['range-ns']['begin'], 13515309000000070 + offset)
self.assertEqual(streams[1]['range-ns']['end'], 13515309000000120 + offset)
# Test various cominations of the clock-class-offset-s and
- # clock-class-offset-ns parameters to babeltrace.trace-info queries.
+ # clock-class-offset-ns parameters to babeltrace.trace-infos queries.
# Without clock class offset
def test_no_clock_class_offset(self):
res = bt2.QueryExecutor(
- self._fs, 'babeltrace.trace-info', {'inputs': self._inputs}
+ self._fs, 'babeltrace.trace-infos', {'inputs': self._inputs}
).query()
trace = res[0]
self._check(trace, 0)
def test_clock_class_offset_s(self):
res = bt2.QueryExecutor(
self._fs,
- 'babeltrace.trace-info',
+ 'babeltrace.trace-infos',
{'inputs': self._inputs, 'clock-class-offset-s': 2},
).query()
trace = res[0]
def test_clock_class_offset_ns(self):
res = bt2.QueryExecutor(
self._fs,
- 'babeltrace.trace-info',
+ 'babeltrace.trace-infos',
{'inputs': self._inputs, 'clock-class-offset-ns': 2},
).query()
trace = res[0]
def test_clock_class_offset_both(self):
res = bt2.QueryExecutor(
self._fs,
- 'babeltrace.trace-info',
+ 'babeltrace.trace-infos',
{
'inputs': self._inputs,
'clock-class-offset-s': -2,
with self.assertRaises(bt2._Error):
bt2.QueryExecutor(
self._fs,
- 'babeltrace.trace-info',
+ 'babeltrace.trace-infos',
{'inputs': self._inputs, 'clock-class-offset-s': "2"},
).query()
with self.assertRaises(bt2._Error):
bt2.QueryExecutor(
self._fs,
- 'babeltrace.trace-info',
+ 'babeltrace.trace-infos',
{'inputs': self._inputs, 'clock-class-offset-s': None},
).query()
with self.assertRaises(bt2._Error):
bt2.QueryExecutor(
self._fs,
- 'babeltrace.trace-info',
+ 'babeltrace.trace-infos',
{'inputs': self._inputs, 'clock-class-offset-ns': "2"},
).query()
with self.assertRaises(bt2._Error):
bt2.QueryExecutor(
self._fs,
- 'babeltrace.trace-info',
+ 'babeltrace.trace-infos',
{'inputs': self._inputs, 'clock-class-offset-ns': None},
).query()
def test_trace_uuid_stream_class_id_no_stream_id(self):
res = bt2.QueryExecutor(
self._fs,
- "babeltrace.trace-info",
+ "babeltrace.trace-infos",
{
"inputs": [
os.path.join(
self.assertEqual(len(res), 1)
trace = res[0]
- streams = sorted(trace["streams"], key=sort_predictably)
+ streams = sorted(trace["stream-infos"], key=sort_predictably)
self.assertEqual(len(streams), 2)
self.assertRegexpMatches(
str(streams[0]["port-name"]),
def test_trace_uuid_no_stream_class_id_no_stream_id(self):
res = bt2.QueryExecutor(
self._fs,
- "babeltrace.trace-info",
+ "babeltrace.trace-infos",
{"inputs": [os.path.join(test_ctf_traces_path, "succeed", "succeed1")]},
).query()
self.assertEqual(len(res), 1)
trace = res[0]
- streams = sorted(trace["streams"], key=sort_predictably)
+ streams = sorted(trace["stream-infos"], key=sort_predictably)
self.assertEqual(len(streams), 1)
self.assertRegexpMatches(
str(streams[0]["port-name"]),
def test_trace_no_range(self):
# This trace has no `timestamp_begin` and `timestamp_end` in its
- # packet context. The `babeltrace.trace-info` query should omit
+ # packet context. The `babeltrace.trace-infos` query should omit
# the `range-ns` fields in the `trace` and `stream` data
# structures.
res = bt2.QueryExecutor(
self._fs,
- "babeltrace.trace-info",
+ "babeltrace.trace-infos",
{"inputs": [os.path.join(test_ctf_traces_path, "succeed", "succeed1")]},
).query()
self.assertEqual(len(res), 1)
trace = res[0]
- streams = trace["streams"]
+ streams = trace["stream-infos"]
self.assertEqual(len(streams), 1)
self.assertRaises(KeyError, lambda: trace['range-ns'])
def _test_lttng_quirks(self, trace_name):
res = bt2.QueryExecutor(
self._fs,
- "babeltrace.trace-info",
+ "babeltrace.trace-infos",
{"inputs": [os.path.join(self._path, trace_name)]},
).query()
def test_event_after_packet(self):
trace = self._test_lttng_quirks("lttng-event-after-packet")
- streams = trace["streams"]
+ streams = trace["stream-infos"]
self.assertEqual(len(streams), 1)
self.assertEqual(streams[0]['range-ns']['begin'], 1565957300948091100)
def test_lttng_crash(self):
trace = self._test_lttng_quirks("lttng-crash")
- streams = trace["streams"]
+ streams = trace["stream-infos"]
self.assertEqual(len(streams), 1)
self.assertEqual(streams[0]['range-ns']['begin'], 1565891729288866738)