summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--meta/classes/testsdk.bbclass18
-rw-r--r--meta/lib/oeqa/utils/__init__.py23
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
16def 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