+ def test_trace_with_tracefile_rotation(self):
+ res = bt2.QueryExecutor(
+ self._fs,
+ "babeltrace.trace-infos",
+ {
+ "inputs": [
+ os.path.join(
+ test_ctf_traces_path,
+ "succeed",
+ "lttng-tracefile-rotation",
+ "kernel",
+ )
+ ]
+ },
+ ).query()
+
+ self.assertEqual(len(res), 1)
+ trace = res[0]
+ streams = trace["stream-infos"]
+ self.assertEqual(len(streams), 4)
+
+ # Note: the end timestamps are not the end timestamps found in the
+ # index files, because fix_index_lttng_event_after_packet_bug changes
+ # them based on the time of the last event in the stream.
+
+ self.assertEqual(streams[0]['range-ns']['begin'], 1571261795455986789)
+ self.assertEqual(streams[0]['range-ns']['end'], 1571261797582611840)
+
+ self.assertEqual(streams[1]['range-ns']['begin'], 1571261795456368232)
+ self.assertEqual(streams[1]['range-ns']['end'], 1571261797577754111)
+
+ self.assertEqual(streams[2]['range-ns']['begin'], 1571261795456748255)
+ self.assertEqual(streams[2]['range-ns']['end'], 1571261797577727795)
+
+ self.assertEqual(streams[3]['range-ns']['begin'], 1571261795457285142)
+ self.assertEqual(streams[3]['range-ns']['end'], 1571261797582522088)
+
+
+class QueryTraceInfoPacketTimestampQuirksTestCase(unittest.TestCase):
+ def setUp(self):
+ ctf = bt2.find_plugin('ctf')
+ self._fs = ctf.source_component_classes['fs']
+ self._path = os.path.join(test_ctf_traces_path, 'succeed')
+
+ def _test_lttng_quirks(self, trace_name):
+ res = bt2.QueryExecutor(
+ self._fs,
+ "babeltrace.trace-infos",
+ {"inputs": [os.path.join(self._path, trace_name)]},
+ ).query()
+
+ self.assertEqual(len(res), 1)
+ return res[0]
+
+ def test_event_after_packet(self):
+ trace = self._test_lttng_quirks("lttng-event-after-packet")
+ streams = trace["stream-infos"]
+ self.assertEqual(len(streams), 1)
+
+ self.assertEqual(streams[0]['range-ns']['begin'], 1565957300948091100)
+ self.assertEqual(streams[0]['range-ns']['end'], 1565957302180016069)
+
+ def test_lttng_crash(self):
+ trace = self._test_lttng_quirks("lttng-crash")
+ streams = trace["stream-infos"]
+ self.assertEqual(len(streams), 1)
+
+ self.assertEqual(streams[0]['range-ns']['begin'], 1565891729288866738)
+ self.assertEqual(streams[0]['range-ns']['end'], 1565891729293526525)
+