# Copyright (C) 2019 EfficiOS Inc.
#
-import unittest
-import datetime
-import bt2
import os
import os.path
+import datetime
+import unittest
+import bt2
_BT_TESTS_DATADIR = os.environ["BT_TESTS_DATADIR"]
_BT_CTF_TRACES_PATH = os.environ["BT_CTF_TRACES_PATH"]
_BT_TESTS_DATADIR, "auto-source-discovery", "params-log-level"
)
+_METADATA_SYNTAX_ERROR_TRACE_PATH = os.path.join(
+ _BT_CTF_TRACES_PATH, "fail", "metadata-syntax-error"
+)
+_BT_ENABLE_PYTHON_PLUGINS = os.environ["BT_TESTS_ENABLE_PYTHON_PLUGINS"] == "1"
+
class _SomeSource(
bt2._UserSourceComponent, message_iterator_class=bt2._UserMessageIterator
os.environ["BABELTRACE_PLUGIN_PATH"] = self._saved_babeltrace_plugin_path
+@unittest.skipUnless(
+ _BT_ENABLE_PYTHON_PLUGINS,
+ "Support for Python plugins is disabled",
+)
class TestAutoDiscoverSourceComponentSpecsGrouping(
_TestAutoDiscoverSourceComponentSpecs
):
self.assertEqual(msgs[7].stream.name, "TestSourceSomeDir: some-dir")
+@unittest.skipUnless(
+ _BT_ENABLE_PYTHON_PLUGINS,
+ "Support for Python plugins is disabled",
+)
class TestAutoDiscoverSourceComponentSpecsParamsObjLogLevel(
_TestAutoDiscoverSourceComponentSpecs
):
self.assertEqual(msgs[1].stream.name, "TestSourceB: deore")
+class TestAutoDiscoverFailures(unittest.TestCase):
+ def test_metadata_syntax_error(self):
+ with self.assertRaisesRegex(
+ bt2._Error,
+ 'At line 3 in metadata stream: syntax error, unexpected CTF_RSBRAC: token="]"',
+ ):
+ specs = [bt2.AutoSourceComponentSpec(_METADATA_SYNTAX_ERROR_TRACE_PATH)]
+ bt2.TraceCollectionMessageIterator(specs)
+
+
if __name__ == "__main__":
unittest.main()