diff options
| -rw-r--r-- | meta/classes/testsdk.bbclass | 18 | ||||
| -rw-r--r-- | 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): | |||
| 88 | import os | 88 | import os |
| 89 | import oeqa.sdkext | 89 | import oeqa.sdkext |
| 90 | import subprocess | 90 | import subprocess |
| 91 | from oeqa.oetest import SDKTestContext, SDKExtTestContext | ||
| 92 | from bb.utils import export_proxies | 91 | from bb.utils import export_proxies |
| 92 | from oeqa.oetest import SDKTestContext, SDKExtTestContext | ||
| 93 | from oeqa.utils import avoid_paths_in_environ | ||
| 94 | |||
| 93 | 95 | ||
| 94 | # extensible sdk use network | 96 | # extensible sdk use network |
| 95 | export_proxies(d) | 97 | export_proxies(d) |
| 96 | 98 | ||
| 97 | # extensible sdk shows a warning if found bitbake in the path | 99 | # extensible sdk shows a warning if found bitbake in the path |
| 98 | # because can cause problems so clean it | 100 | # because can cause problems so clean it |
| 99 | new_path = '' | ||
| 100 | paths_to_avoid = ['bitbake/bin', 'poky/scripts', | 101 | paths_to_avoid = ['bitbake/bin', 'poky/scripts', |
| 101 | d.getVar('STAGING_DIR', True), | 102 | d.getVar('STAGING_DIR', True), |
| 102 | d.getVar('BASE_WORKDIR', True)] | 103 | d.getVar('BASE_WORKDIR', True)] |
| 103 | for p in os.environ['PATH'].split(':'): | 104 | os.environ['PATH'] = avoid_paths_in_environ(paths_to_avoid) |
| 104 | avoid = False | ||
| 105 | for pa in paths_to_avoid: | ||
| 106 | if pa in p: | ||
| 107 | avoid = True | ||
| 108 | break | ||
| 109 | if avoid: | ||
| 110 | continue | ||
| 111 | |||
| 112 | new_path = new_path + p + ':' | ||
| 113 | new_path = new_path[:-1] | ||
| 114 | os.environ['PATH'] = new_path | ||
| 115 | 105 | ||
| 116 | pn = d.getVar("PN", True) | 106 | pn = d.getVar("PN", True) |
| 117 | bb.utils.mkdirhier(d.getVar("TEST_LOG_SDKEXT_DIR", True)) | 107 | 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): | |||
| 13 | def __str__(self): | 13 | def __str__(self): |
| 14 | return "Command '%s' returned non-zero exit status %d with output: %s" % (self.cmd, self.retcode, self.output) | 14 | return "Command '%s' returned non-zero exit status %d with output: %s" % (self.cmd, self.retcode, self.output) |
| 15 | 15 | ||
| 16 | def avoid_paths_in_environ(paths): | ||
| 17 | """ | ||
| 18 | Searches for every path in os.environ['PATH'] | ||
| 19 | if found remove it. | ||
| 20 | |||
| 21 | Returns new PATH without avoided PATHs. | ||
| 22 | """ | ||
| 23 | import os | ||
| 24 | |||
| 25 | new_path = '' | ||
| 26 | for p in os.environ['PATH'].split(':'): | ||
| 27 | avoid = False | ||
| 28 | for pa in paths: | ||
| 29 | if pa in p: | ||
| 30 | avoid = True | ||
| 31 | break | ||
| 32 | if avoid: | ||
| 33 | continue | ||
| 34 | |||
| 35 | new_path = new_path + p + ':' | ||
| 36 | |||
| 37 | new_path = new_path[:-1] | ||
| 38 | return new_path | ||
