Ejemplo n.º 1
0
def translate_to_ctf(inputs, output):
    graph = bt2.Graph()

    rocm_plugin = bt2.find_plugins_in_path("./bt_plugin_rocm.py")[0]
    source_component = graph.add_component(
        rocm_plugin.source_component_classes["RocmSource"], "rocm_source",
        {"inputs": inputs})

    ctf_plugin = bt2.find_plugin("ctf").sink_component_classes["fs"]
    sink_component = graph.add_component(ctf_plugin, "ctf_sink", {
        "path": output,
        "assume-single-trace": True
    })

    utils_plugin = bt2.find_plugin("utils").filter_component_classes["muxer"]
    muxer_component = graph.add_component(utils_plugin, "muxer")

    for i, port in enumerate(source_component.output_ports):
        graph.connect_ports(source_component.output_ports[port],
                            muxer_component.input_ports["in{}".format(i)])

    graph.connect_ports(muxer_component.output_ports["out"],
                        sink_component.input_ports["in"])

    graph.run()
Ejemplo n.º 2
0
def translate_to_ctf(input_db, output):
    graph = bt2.Graph()

    plugin_path = os.path.join(
        pathlib.Path(__file__).parent, "bt_plugin_rocm.py")
    rocm_plugin = bt2.find_plugins_in_path(plugin_path,
                                           fail_on_load_error=True)[0]
    source_component = graph.add_component(
        rocm_plugin.source_component_classes["RocmSource"], "rocm_source",
        {"input": input_db})

    ctf_plugin = bt2.find_plugin("ctf").sink_component_classes["fs"]
    sink_component = graph.add_component(ctf_plugin, "ctf_sink", {
        "path": output,
        "assume-single-trace": True
    })

    utils_plugin = bt2.find_plugin("utils").filter_component_classes["muxer"]
    muxer_component = graph.add_component(utils_plugin, "muxer")

    for i, port in enumerate(source_component.output_ports):
        graph.connect_ports(source_component.output_ports[port],
                            muxer_component.input_ports["in{}".format(i)])

    graph.connect_ports(muxer_component.output_ports["out"],
                        sink_component.input_ports["in"])

    graph.run()
Ejemplo n.º 3
0
 def test_find_file(self):
     extension = _TEST_PLUGIN_PLUGIN_EXTENSION_BY_OS.get(
         os.environ['BT_OS_TYPE'], 'so')
     plugin_name = 'babeltrace-plugin-utils.{}'.format(extension)
     path = os.path.join(_TEST_PLUGIN_PLUGINS_PATH, 'utils', '.libs',
                         plugin_name)
     pset = bt2.find_plugins_in_path(path)
     self.assertTrue(len(pset) == 1)
Ejemplo n.º 4
0
    def test_iter(self):
        pset = bt2.find_plugins_in_path(_TEST_PLUGIN_PLUGINS_PATH)
        names = set()

        for plugin in pset:
            names.add(plugin.name)

        self.assertTrue('ctf' in names)
        self.assertTrue('utils' in names)
        self.assertTrue('text' in names)
 def test_python_plugin_provider(self):
     path = os.environ['PYTHON_PLUGIN_PROVIDER_TEST_PLUGIN_PATH']
     pset = bt2.find_plugins_in_path(path)
     self.assertEqual(len(pset), 1)
     plugin = pset[0]
     self.assertEqual(plugin.name, 'sparkling')
     self.assertEqual(plugin.author, 'Philippe Proulx')
     self.assertEqual(plugin.description, 'A delicious plugin.')
     self.assertEqual(plugin.version.major, 1)
     self.assertEqual(plugin.version.minor, 2)
     self.assertEqual(plugin.version.patch, 3)
     self.assertEqual(plugin.version.extra, 'EXTRA')
     self.assertEqual(plugin.license, 'MIT')
     self.assertEqual(len(plugin.source_component_classes), 1)
     self.assertEqual(len(plugin.filter_component_classes), 1)
     self.assertEqual(len(plugin.sink_component_classes), 1)
     self.assertEqual(plugin.source_component_classes['MySource'].name,
                      'MySource')
     self.assertEqual(plugin.filter_component_classes['MyFilter'].name,
                      'MyFilter')
     self.assertEqual(plugin.sink_component_classes['MySink'].name,
                      'MySink')
Ejemplo n.º 6
0
 def test_find_dir(self):
     pset = bt2.find_plugins_in_path(_TEST_PLUGIN_PLUGINS_PATH)
     self.assertTrue(len(pset) >= 3)
Ejemplo n.º 7
0
 def test_find_none_existing_dir(self):
     plugins = bt2.find_plugins_in_path(_TEST_PLUGIN_PLUGINS_PATH,
                                        recurse=False)
     self.assertIsNone(plugins)
Ejemplo n.º 8
0
 def test_find_nonexistent_dir(self):
     with self.assertRaises(ValueError):
         bt2.find_plugins_in_path(
             '/this/does/not/exist/246703df-cb85-46d5-8406-5e8dc4a88b41')
Ejemplo n.º 9
0
 def test_getitem(self):
     pset = bt2.find_plugins_in_path(_TEST_PLUGIN_PLUGINS_PATH)
     self.assertTrue(pset[0].path.startswith(_TEST_PLUGIN_PLUGINS_PATH))