X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=tests%2Fbindings%2Fpython%2Fbt2%2Ftest_plugin.py;h=d7e0965b1f21c3d98b2ff0ccdf23b8df2663b38c;hb=ce4923b0c7a2de36eba95725334d251e9aa08aad;hp=6e461f3ed3dac7c60b8b13c452fcf1c285d59da0;hpb=811644b8fe5fb9946972a7ace9df02ed872f448a;p=babeltrace.git diff --git a/tests/bindings/python/bt2/test_plugin.py b/tests/bindings/python/bt2/test_plugin.py index 6e461f3e..d7e0965b 100644 --- a/tests/bindings/python/bt2/test_plugin.py +++ b/tests/bindings/python/bt2/test_plugin.py @@ -1,12 +1,29 @@ -from bt2 import values +# +# Copyright (C) 2019 EfficiOS Inc. +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; only version 2 +# of the License. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +# + import unittest -import copy import bt2 import bt2.plugin import os -_TEST_PLUGIN_PLUGINS_PATH = os.environ['TEST_PLUGIN_PLUGINS_PATH'] +_TEST_PLUGIN_PLUGINS_PATH = os.environ['BT_PLUGINS_PATH'] +_TEST_PLUGIN_PLUGIN_EXTENSION_BY_OS = {'cygwin': 'dll', 'mingw': 'dll'} class PluginSetTestCase(unittest.TestCase): @@ -31,18 +48,35 @@ class PluginSetTestCase(unittest.TestCase): class FindPluginsTestCase(unittest.TestCase): - def test_find_none(self): - pset = bt2.find_plugins('/this/does/not/exist/246703df-cb85-46d5-8406-5e8dc4a88b41') - self.assertIsNone(pset) + def test_find_nonexistent_dir(self): + with self.assertRaises(ValueError): + bt2.find_plugins( + '/this/does/not/exist/246703df-cb85-46d5-8406-5e8dc4a88b41' + ) + + def test_find_none_existing_dir(self): + plugins = bt2.find_plugins(_TEST_PLUGIN_PLUGINS_PATH, recurse=False) + self.assertIsNone(plugins) def test_find_dir(self): pset = bt2.find_plugins(_TEST_PLUGIN_PLUGINS_PATH) self.assertTrue(len(pset) >= 3) + 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(path) + self.assertTrue(len(pset) == 1) + class FindPluginTestCase(unittest.TestCase): def test_find_none(self): - plugin = bt2.find_plugin('this-does-not-exist-246703df-cb85-46d5-8406-5e8dc4a88b41') + plugin = bt2.find_plugin( + 'this-does-not-exist-246703df-cb85-46d5-8406-5e8dc4a88b41' + ) self.assertIsNone(plugin) def test_find_existing(self): @@ -61,7 +95,9 @@ class PluginTestCase(unittest.TestCase): self.assertEqual(self._plugin.name, 'ctf') def test_path(self): - self.assertTrue(self._plugin.path.startswith(_TEST_PLUGIN_PLUGINS_PATH)) + plugin_path = os.path.abspath(os.path.normcase(self._plugin.path)) + plugin_path_env = os.path.abspath(os.path.normcase(_TEST_PLUGIN_PLUGINS_PATH)) + self.assertTrue(plugin_path.startswith(plugin_path_env)) def test_author(self): self.assertTrue('Philippe Proulx' in self._plugin.author)