Re: [OE-core] [PATCH] scripts/oe-selftest: enhancement 7865
Hello, Please don't consider this patch. It was intended for 7865, but a better patch was proposed for this -Original Message- From: Constantin, Costin C Sent: Saturday, June 13, 2015 11:59 PM To: openembedded-core@lists.openembedded.org Cc: Constantin, Costin C Subject: [PATCH] scripts/oe-selftest: enhancement 7865 Signed-off-by: Costin Constantin costin.c.constan...@intel.com --- scripts/oe-selftest | 36 1 file changed, 24 insertions(+), 12 deletions(-) diff --git a/scripts/oe-selftest b/scripts/oe-selftest index a04e9fc..1a89c31 100755 --- a/scripts/oe-selftest +++ b/scripts/oe-selftest @@ -16,7 +16,10 @@ # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. # DESCRIPTION -# This script runs tests defined in meta/lib/selftest/ +# This script runs tests defined in meta/lib/selftest/ for all +$BUILDDIR/../meta* layers # In order to work, each meta* layer needs to have a relative lib/oeqa/selftest path to it. +# Subdirectories to this relative path are accepted. +# Test module names need to be unique between all layers. # It's purpose is to automate the testing of different bitbake tools. # To use it you just need to source your build environment setup script and # add the meta-selftest layer to your BBLAYERS. @@ -24,15 +27,26 @@ # Call the script as: oe-selftest module.Class.method to run just a single test # E.g: oe-selftest bboutput.BitbakeLayers will run just the BitbakeLayers class from meta/lib/selftest/bboutput.py - import os import sys import unittest import logging import argparse +import glob as g sys.path.insert(0, os.path.abspath(os.path.join(os.path.dirname(__file__), '..', 'meta/lib'))) +tests_path = g.glob(os.path.abspath(os.path.join(os.getenv(BUILDDIR), +.., meta*/lib/oeqa/selftest))) # adding tests paths to the sys.path +enabling dynamic import further on # support for subdirectories is also +added test_subdirs = [] for pth in tests_path: +sys.path.insert(0, pth) +for sbd in g.glob(pth + /*): +if os.path.isdir(sbd): +sys.path.append(sbd) +test_subdirs.append(sbd) + import oeqa.selftest import oeqa.utils.ftools as ftools from oeqa.utils.commands import runCmd, get_bb_var, get_test_layer @@ -125,14 +139,13 @@ def remove_inc_files(): def get_tests(exclusive_modules=[], include_hidden=False): testslist = [] for x in exclusive_modules: -testslist.append('oeqa.selftest.' + x) +testslist.append(x) if not testslist: -testpath = os.path.abspath(os.path.dirname(oeqa.selftest.__file__)) -files = sorted([f for f in os.listdir(testpath) if f.endswith('.py') and not (f.startswith('_') and not include_hidden) and not f.startswith('__') and f != 'base.py']) -for f in files: -module = 'oeqa.selftest.' + f[:-3] -testslist.append(module) - +for pth in (tests_path + test_subdirs) : +files = sorted([f for f in os.listdir(pth) if f.endswith('.py') and not (f.startswith('_') and not include_hidden) and not f.startswith('__') and f != 'base.py']) +for f in files: +module = f[:-3] +testslist.append(module) return testslist def main(): @@ -145,8 +158,7 @@ def main(): if args.list_modules: log.info('Listing all available test modules:') testslist = get_tests(include_hidden=True) -for test in testslist: -module = test.split('.')[-1] +for module in testslist: info = '' if module.startswith('_'): info = ' (hidden)' @@ -154,7 +166,7 @@ def main(): if args.list_allclasses: try: import importlib -modlib = importlib.import_module(test) +modlib = importlib.import_module(module) for v in vars(modlib): t = vars(modlib)[v] if isinstance(t, type(oeSelfTest)) and issubclass(t, oeSelfTest) and t!=oeSelfTest: -- 2.1.4 -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
Re: [OE-core] [PATCH] scripts/oe-selftest: enhancement 7865
A bit more love for commit message please Andreas -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
[OE-core] [PATCH] scripts/oe-selftest: enhancement 7865
Signed-off-by: Costin Constantin costin.c.constan...@intel.com --- scripts/oe-selftest | 36 1 file changed, 24 insertions(+), 12 deletions(-) diff --git a/scripts/oe-selftest b/scripts/oe-selftest index a04e9fc..1a89c31 100755 --- a/scripts/oe-selftest +++ b/scripts/oe-selftest @@ -16,7 +16,10 @@ # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. # DESCRIPTION -# This script runs tests defined in meta/lib/selftest/ +# This script runs tests defined in meta/lib/selftest/ for all $BUILDDIR/../meta* layers +# In order to work, each meta* layer needs to have a relative lib/oeqa/selftest path to it. +# Subdirectories to this relative path are accepted. +# Test module names need to be unique between all layers. # It's purpose is to automate the testing of different bitbake tools. # To use it you just need to source your build environment setup script and # add the meta-selftest layer to your BBLAYERS. @@ -24,15 +27,26 @@ # Call the script as: oe-selftest module.Class.method to run just a single test # E.g: oe-selftest bboutput.BitbakeLayers will run just the BitbakeLayers class from meta/lib/selftest/bboutput.py - import os import sys import unittest import logging import argparse +import glob as g sys.path.insert(0, os.path.abspath(os.path.join(os.path.dirname(__file__), '..', 'meta/lib'))) +tests_path = g.glob(os.path.abspath(os.path.join(os.getenv(BUILDDIR), .., meta*/lib/oeqa/selftest))) +# adding tests paths to the sys.path enabling dynamic import further on +# support for subdirectories is also added +test_subdirs = [] +for pth in tests_path: +sys.path.insert(0, pth) +for sbd in g.glob(pth + /*): +if os.path.isdir(sbd): +sys.path.append(sbd) +test_subdirs.append(sbd) + import oeqa.selftest import oeqa.utils.ftools as ftools from oeqa.utils.commands import runCmd, get_bb_var, get_test_layer @@ -125,14 +139,13 @@ def remove_inc_files(): def get_tests(exclusive_modules=[], include_hidden=False): testslist = [] for x in exclusive_modules: -testslist.append('oeqa.selftest.' + x) +testslist.append(x) if not testslist: -testpath = os.path.abspath(os.path.dirname(oeqa.selftest.__file__)) -files = sorted([f for f in os.listdir(testpath) if f.endswith('.py') and not (f.startswith('_') and not include_hidden) and not f.startswith('__') and f != 'base.py']) -for f in files: -module = 'oeqa.selftest.' + f[:-3] -testslist.append(module) - +for pth in (tests_path + test_subdirs) : +files = sorted([f for f in os.listdir(pth) if f.endswith('.py') and not (f.startswith('_') and not include_hidden) and not f.startswith('__') and f != 'base.py']) +for f in files: +module = f[:-3] +testslist.append(module) return testslist def main(): @@ -145,8 +158,7 @@ def main(): if args.list_modules: log.info('Listing all available test modules:') testslist = get_tests(include_hidden=True) -for test in testslist: -module = test.split('.')[-1] +for module in testslist: info = '' if module.startswith('_'): info = ' (hidden)' @@ -154,7 +166,7 @@ def main(): if args.list_allclasses: try: import importlib -modlib = importlib.import_module(test) +modlib = importlib.import_module(module) for v in vars(modlib): t = vars(modlib)[v] if isinstance(t, type(oeSelfTest)) and issubclass(t, oeSelfTest) and t!=oeSelfTest: -- 2.1.4 -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core