classes/testsdk: Move code for avoid PATHs to oeqa.utils

Due to the neeed to use in other modules.

(From OE-Core rev: a25aef2bdefae54c8b3eb2bd4afec5a86110ddc7)

Signed-off-by: Aníbal Limón <limon.anibal@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Aníbal Limón 2016-02-21 12:14:44 -06:00 committed by Richard Purdie
parent 55d4849e80
commit eb1f8b9427
2 changed files with 27 additions and 14 deletions

View File

@ -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))

View File

@ -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