+class QueryTraceInfoRangeTestCase(unittest.TestCase):
+ def setUp(self):
+ ctf = bt2.find_plugin("ctf")
+ self._fs = ctf.source_component_classes["fs"]
+
+ self._executor = bt2.QueryExecutor()
+
+ def test_trace_no_range(self):
+ # This trace has no `timestamp_begin` and `timestamp_end` in its packet
+ # context. The `trace-info` query should omit the `range-ns` fields in
+ # the `trace` and `stream` data structures.
+
+ res = self._executor.query(
+ self._fs,
+ "trace-info",
+ {"paths": [os.path.join(test_ctf_traces_path, "succeed", "succeed1")]},
+ )
+
+ self.assertEqual(len(res), 1)
+ trace = res[0]
+ streams = trace["streams"]
+ self.assertEqual(len(streams), 1)
+
+ self.assertRaises(KeyError, lambda: trace['range-ns'])
+ self.assertRaises(KeyError, lambda: streams[0]['range-ns'])
+
+