From eb1f8b9427c1b346c1113f74df678883e9b2c729 Mon Sep 17 00:00:00 2001 From: Aníbal Limón Date: Sun, 21 Feb 2016 12:14:44 -0600 Subject: classes/testsdk: Move code for avoid PATHs to oeqa.utils MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Due to the neeed to use in other modules. (From OE-Core rev: a25aef2bdefae54c8b3eb2bd4afec5a86110ddc7) Signed-off-by: Aníbal Limón Signed-off-by: Ross Burton Signed-off-by: Richard Purdie --- meta/classes/testsdk.bbclass | 18 ++++-------------- meta/lib/oeqa/utils/__init__.py | 23 +++++++++++++++++++++++ 2 files changed, 27 insertions(+), 14 deletions(-) diff --git a/meta/classes/testsdk.bbclass b/meta/classes/testsdk.bbclass index a56ad5edfc..41e03d6e06 100644 --- a/meta/classes/testsdk.bbclass +++ b/meta/classes/testsdk.bbclass @@ -88,30 +88,20 @@ def testsdkext_main(d): import os import oeqa.sdkext import subprocess - from oeqa.oetest import SDKTestContext, SDKExtTestContext from bb.utils import export_proxies + from oeqa.oetest import SDKTestContext, SDKExtTestContext + from oeqa.utils import avoid_paths_in_environ + # extensible sdk use network export_proxies(d) # extensible sdk shows a warning if found bitbake in the path # because can cause problems so clean it - new_path = '' paths_to_avoid = ['bitbake/bin', 'poky/scripts', d.getVar('STAGING_DIR', True), d.getVar('BASE_WORKDIR', True)] - for p in os.environ['PATH'].split(':'): - avoid = False - for pa in paths_to_avoid: - if pa in p: - avoid = True - break - if avoid: - continue - - new_path = new_path + p + ':' - new_path = new_path[:-1] - os.environ['PATH'] = new_path + os.environ['PATH'] = avoid_paths_in_environ(paths_to_avoid) pn = d.getVar("PN", True) bb.utils.mkdirhier(d.getVar("TEST_LOG_SDKEXT_DIR", True)) diff --git a/meta/lib/oeqa/utils/__init__.py b/meta/lib/oeqa/utils/__init__.py index 2260046026..8f706f3637 100644 --- a/meta/lib/oeqa/utils/__init__.py +++ b/meta/lib/oeqa/utils/__init__.py @@ -13,3 +13,26 @@ class CommandError(Exception): def __str__(self): return "Command '%s' returned non-zero exit status %d with output: %s" % (self.cmd, self.retcode, self.output) +def avoid_paths_in_environ(paths): + """ + Searches for every path in os.environ['PATH'] + if found remove it. + + Returns new PATH without avoided PATHs. + """ + import os + + new_path = '' + for p in os.environ['PATH'].split(':'): + avoid = False + for pa in paths: + if pa in p: + avoid = True + break + if avoid: + continue + + new_path = new_path + p + ':' + + new_path = new_path[:-1] + return new_path -- cgit v1.2.3-54-g00ecf