Re: [OE-core] [PATCH] scripts/oe-selftest: enhancement 7865

2015-06-15 Thread Constantin, Costin C
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

2015-06-14 Thread Andreas Müller
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

2015-06-13 Thread Costin Constantin
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