summaryrefslogtreecommitdiff
path: root/poky/meta-selftest/lib
diff options
context:
space:
mode:
authorDave Cobbley <david.j.cobbley@linux.intel.com>2018-08-14 20:05:37 +0300
committerBrad Bishop <bradleyb@fuzziesquirrel.com>2018-08-23 04:26:31 +0300
commiteb8dc40360f0cfef56fb6947cc817a547d6d9bc6 (patch)
treede291a73dc37168da6370e2cf16c347d1eba9df8 /poky/meta-selftest/lib
parent9c3cf826d853102535ead04cebc2d6023eff3032 (diff)
downloadopenbmc-eb8dc40360f0cfef56fb6947cc817a547d6d9bc6.tar.xz
[Subtree] Removing import-layers directory
As part of the move to subtrees, need to bring all the import layers content to the top level. Change-Id: I4a163d10898cbc6e11c27f776f60e1a470049d8f Signed-off-by: Dave Cobbley <david.j.cobbley@linux.intel.com> Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com>
Diffstat (limited to 'poky/meta-selftest/lib')
-rw-r--r--poky/meta-selftest/lib/devtool/__init__.py0
-rw-r--r--poky/meta-selftest/lib/devtool/bbpath.py44
-rw-r--r--poky/meta-selftest/lib/devtool/test.py11
-rw-r--r--poky/meta-selftest/lib/oeqa/runtime/cases/dnf_runtime.py47
-rw-r--r--poky/meta-selftest/lib/oeqa/runtime/cases/selftest.json6
-rw-r--r--poky/meta-selftest/lib/oeqa/runtime/cases/selftest.py31
-rw-r--r--poky/meta-selftest/lib/oeqa/selftest/cases/external-layer.py16
-rw-r--r--poky/meta-selftest/lib/recipetool/bbpath.py41
8 files changed, 196 insertions, 0 deletions
diff --git a/poky/meta-selftest/lib/devtool/__init__.py b/poky/meta-selftest/lib/devtool/__init__.py
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/poky/meta-selftest/lib/devtool/__init__.py
diff --git a/poky/meta-selftest/lib/devtool/bbpath.py b/poky/meta-selftest/lib/devtool/bbpath.py
new file mode 100644
index 000000000..5e8ffb3af
--- /dev/null
+++ b/poky/meta-selftest/lib/devtool/bbpath.py
@@ -0,0 +1,44 @@
+import argparse
+
+already_loaded = False
+kept_context = None
+
+def plugin_name(filename):
+ return os.path.splitext(os.path.basename(filename))[0]
+
+def plugin_init(plugins):
+ global already_loaded
+ already_loaded = plugin_name(__file__) in (plugin_name(p.__name__) for p in plugins)
+
+def print_name(args, config, basepath, workspace):
+ print (__file__)
+
+def print_bbdir(args, config, basepath, workspace):
+ print (__file__.replace('/lib/devtool/bbpath.py',''))
+
+def print_registered(args, config, basepath, workspace):
+ global kept_context
+ print(kept_context.loaded)
+
+def multiloaded(args, config, basepath, workspace):
+ global already_loaded
+ print("yes" if already_loaded else "no")
+
+def register_commands(subparsers, context):
+ global kept_context
+ kept_context = context
+ if 'loaded' in context.__dict__:
+ context.loaded += 1
+ else:
+ context.loaded = 1
+
+ def addparser(name, helptxt, func):
+ parser = subparsers.add_parser(name, help=helptxt,
+ formatter_class=argparse.ArgumentDefaultsHelpFormatter)
+ parser.set_defaults(func=func)
+ return parser
+
+ addparser('pluginfile', 'Print the filename of this plugin', print_name)
+ addparser('bbdir', 'Print the BBPATH directory of this plugin', print_bbdir)
+ addparser('count', 'How many times have this plugin been registered.', print_registered)
+ addparser('multiloaded', 'How many times have this plugin been initialized', multiloaded)
diff --git a/poky/meta-selftest/lib/devtool/test.py b/poky/meta-selftest/lib/devtool/test.py
new file mode 100644
index 000000000..31190f58e
--- /dev/null
+++ b/poky/meta-selftest/lib/devtool/test.py
@@ -0,0 +1,11 @@
+import argparse
+
+def selftest_reverse(args, config, basepath, workspace):
+ """Reverse the value passed to verify the plugin is executing."""
+ print(args.value[::-1])
+
+def register_commands(subparsers, context):
+ parser_build = subparsers.add_parser('selftest-reverse', help='Reverse value (for selftest)',
+ formatter_class=argparse.ArgumentDefaultsHelpFormatter)
+ parser_build.add_argument('value', help='Value to reverse')
+ parser_build.set_defaults(func=selftest_reverse)
diff --git a/poky/meta-selftest/lib/oeqa/runtime/cases/dnf_runtime.py b/poky/meta-selftest/lib/oeqa/runtime/cases/dnf_runtime.py
new file mode 100644
index 000000000..81c50ed97
--- /dev/null
+++ b/poky/meta-selftest/lib/oeqa/runtime/cases/dnf_runtime.py
@@ -0,0 +1,47 @@
+from oeqa.core.decorator.depends import OETestDepends
+from oeqa.runtime.cases.dnf import DnfTest
+from oeqa.utils.httpserver import HTTPService
+
+class DnfSelftest(DnfTest):
+
+ @classmethod
+ def setUpClass(cls):
+ import tempfile
+ cls.temp_dir = tempfile.TemporaryDirectory(prefix="oeqa-remotefeeds-")
+ cls.repo_server = HTTPService(os.path.join(cls.tc.td['WORKDIR'], 'oe-rootfs-repo'),
+ cls.tc.target.server_ip)
+ cls.repo_server.start()
+
+ @classmethod
+ def tearDownClass(cls):
+ cls.repo_server.stop()
+ cls.temp_dir.cleanup()
+
+ @OETestDepends(['dnf.DnfBasicTest.test_dnf_help'])
+ def test_verify_package_feeds(self):
+ """
+ Summary: Check correct setting of PACKAGE_FEED_URIS var
+ Expected: 1. Feeds were correctly set for dnf
+ 2. Update recovers packages from host's repo
+ Author: Humberto Ibarra <humberto.ibarra.lopez@intel.com>
+ Author: Alexander Kanavin <alexander.kanavin@intel.com>
+ """
+ # When we created an image, we had to supply fake ip and port
+ # for the feeds. Now we can patch the real ones into the config file.
+ temp_file = os.path.join(self.temp_dir.name, 'tmp.repo')
+ self.tc.target.copyFrom("/etc/yum.repos.d/oe-remote-repo.repo", temp_file)
+ fixed_config = open(temp_file, "r").read().replace("bogus_ip", self.tc.target.server_ip).replace("bogus_port", str(self.repo_server.port))
+ with open(temp_file, "w") as f:
+ f.write(fixed_config)
+ self.tc.target.copyTo(temp_file, "/etc/yum.repos.d/oe-remote-repo.repo")
+
+ import re
+ # Use '-y' for non-interactive mode: automatically import the feed signing key
+ output_makecache = self.dnf('-vy makecache')
+ self.assertTrue(re.match(r".*Failed to synchronize cache", output_makecache, re.DOTALL) is None, msg = "dnf makecache failed to synchronize repo: %s" %(output_makecache))
+ self.assertTrue(re.match(r".*Metadata cache created", output_makecache, re.DOTALL) is not None, msg = "dnf makecache failed: %s" %(output_makecache))
+
+ output_repoinfo = self.dnf('-v repoinfo')
+ matchobj = re.match(r".*Repo-pkgs\s*:\s*(?P<n_pkgs>[0-9]+)", output_repoinfo, re.DOTALL)
+ self.assertTrue(matchobj is not None, msg = "Could not find the amount of packages in dnf repoinfo output: %s" %(output_repoinfo))
+ self.assertTrue(int(matchobj.group('n_pkgs')) > 0, msg = "Amount of remote packages is not more than zero: %s\n" %(output_repoinfo))
diff --git a/poky/meta-selftest/lib/oeqa/runtime/cases/selftest.json b/poky/meta-selftest/lib/oeqa/runtime/cases/selftest.json
new file mode 100644
index 000000000..e5ae46ecd
--- /dev/null
+++ b/poky/meta-selftest/lib/oeqa/runtime/cases/selftest.json
@@ -0,0 +1,6 @@
+{
+ "test_install_package": {
+ "pkg": "socat",
+ "rm": true
+ }
+}
diff --git a/poky/meta-selftest/lib/oeqa/runtime/cases/selftest.py b/poky/meta-selftest/lib/oeqa/runtime/cases/selftest.py
new file mode 100644
index 000000000..19de74062
--- /dev/null
+++ b/poky/meta-selftest/lib/oeqa/runtime/cases/selftest.py
@@ -0,0 +1,31 @@
+from oeqa.runtime.case import OERuntimeTestCase
+from oeqa.core.decorator.depends import OETestDepends
+
+class Selftest(OERuntimeTestCase):
+
+ @OETestDepends(['ssh.SSHTest.test_ssh'])
+ def test_install_package(self):
+ """
+ Summary: Check basic package installation functionality.
+ Expected: 1. Before the test socat must be installed using scp.
+ 2. After the test socat must be uninstalled using ssh.
+ This can't be checked in this test.
+ Product: oe-core
+ Author: Mariano Lopez <mariano.lopez@intel.com>
+ """
+
+ (status, output) = self.target.run("socat -V")
+ self.assertEqual(status, 0, msg="socat is not installed")
+
+ @OETestDepends(['selftest.Selftest.test_install_package'])
+ def test_verify_uninstall(self):
+ """
+ Summary: Check basic package installation functionality.
+ Expected: 1. test_install_package must uninstall socat.
+ This test is just to verify that.
+ Product: oe-core
+ Author: Mariano Lopez <mariano.lopez@intel.com>
+ """
+
+ (status, output) = self.target.run("socat -V")
+ self.assertNotEqual(status, 0, msg="socat is still installed")
diff --git a/poky/meta-selftest/lib/oeqa/selftest/cases/external-layer.py b/poky/meta-selftest/lib/oeqa/selftest/cases/external-layer.py
new file mode 100644
index 000000000..59b1afab7
--- /dev/null
+++ b/poky/meta-selftest/lib/oeqa/selftest/cases/external-layer.py
@@ -0,0 +1,16 @@
+#from oeqa.selftest.base import oeSelfTest
+from oeqa.selftest.case import OESelftestTestCase
+#from oeqa.utils.decorators import testcase
+
+
+class ImportedTests(OESelftestTestCase):
+
+ def test_unconditional_pass(self):
+ """
+ Summary: Doesn't check anything, used to check import test from other layers.
+ Expected: 1. Pass unconditionally
+ Product: oe-core
+ Author: Mariano Lopez <mariano.lopez@intel.com
+ """
+
+ self.assertEqual(True, True, msg = "Impossible to fail this test")
diff --git a/poky/meta-selftest/lib/recipetool/bbpath.py b/poky/meta-selftest/lib/recipetool/bbpath.py
new file mode 100644
index 000000000..783b2dc76
--- /dev/null
+++ b/poky/meta-selftest/lib/recipetool/bbpath.py
@@ -0,0 +1,41 @@
+import argparse
+
+already_loaded = False
+register_count = 0
+
+def plugin_name(filename):
+ return os.path.splitext(os.path.basename(filename))[0]
+
+def plugin_init(plugins):
+ global already_loaded
+ already_loaded = plugin_name(__file__) in (plugin_name(p.__name__) for p in plugins)
+
+def print_name(opts):
+ print (__file__)
+
+def print_bbdir(opts):
+ print (__file__.replace('/lib/recipetool/bbpath.py',''))
+
+def print_registered(opts):
+ #global kept_context
+ #print(kept_context.loaded)
+ print ("1")
+
+def multiloaded(opts):
+ global already_loaded
+ print("yes" if already_loaded else "no")
+
+def register_commands(subparsers):
+ global register_count
+ register_count += 1
+
+ def addparser(name, helptxt, func):
+ parser = subparsers.add_parser(name, help=helptxt,
+ formatter_class=argparse.ArgumentDefaultsHelpFormatter)
+ parser.set_defaults(func=func)
+ return parser
+
+ addparser('pluginfile', 'Print the filename of this plugin', print_name)
+ addparser('bbdir', 'Print the BBPATH directory of this plugin', print_bbdir)
+ addparser('count', 'How many times have this plugin been registered.', print_registered)
+ addparser('multiloaded', 'How many times have this plugin been initialized', multiloaded)