[OE-core] [PATCH 2/4] classes/testsdk: Move the removal of bitbake PATH to eSDK context only

Aníbal Limón anibal.limon at linux.intel.com
Mon Feb 22 15:03:27 UTC 2016


From: Aníbal Limón <limon.anibal at gmail.com>

The removal of bitbake and scripts PATH is only needed by eSDK tests
so move to eSDK context only.

This also it's a support for eSDK update test because it needs to
execute oe-publish-sdk from scripts.

Signed-off-by: Aníbal Limón <limon.anibal at gmail.com>
---
 meta/classes/testsdk.bbclass |  9 ++++-----
 meta/lib/oeqa/oetest.py      | 22 +++++++++++++++++++++-
 2 files changed, 25 insertions(+), 6 deletions(-)

diff --git a/meta/classes/testsdk.bbclass b/meta/classes/testsdk.bbclass
index 7e245e9..01d37c4 100644
--- a/meta/classes/testsdk.bbclass
+++ b/meta/classes/testsdk.bbclass
@@ -96,11 +96,10 @@ def testsdkext_main(d):
     # 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
-    paths_to_avoid = ['bitbake/bin', 'poky/scripts',
-                       d.getVar('STAGING_DIR', True),
-                       d.getVar('BASE_WORKDIR', True)]
+    # extensible sdk can be contaminated if native programs are
+    # in PATH, i.e. use perl-native instead of eSDK one.
+    paths_to_avoid = [d.getVar('STAGING_DIR', True),
+                      d.getVar('BASE_WORKDIR', True)]
     avoid_paths_in_environ(paths_to_avoid)
 
     pn = d.getVar("PN", True)
diff --git a/meta/lib/oeqa/oetest.py b/meta/lib/oeqa/oetest.py
index 3e2ea0f..cd1e7e0 100644
--- a/meta/lib/oeqa/oetest.py
+++ b/meta/lib/oeqa/oetest.py
@@ -21,6 +21,7 @@ import logging
 import oeqa.runtime
 import oeqa.sdkext
 from oeqa.utils.decorators import LogResults, gettag, getResults
+from oeqa.utils import avoid_paths_in_environ
 
 logger = logging.getLogger("BitBake")
 
@@ -128,7 +129,26 @@ class oeSDKTest(oeTest):
         return subprocess.check_output(". %s > /dev/null; %s;" % (self.tc.sdkenv, cmd), shell=True)
 
 class oeSDKExtTest(oeSDKTest):
-    pass
+    def _run(self, cmd):
+        output = None
+
+        paths = os.environ['PATH']
+
+        # extensible sdk shows a warning if found bitbake in the path
+        # because can cause contamination, i.e. use devtool from
+        # poky/scripts instead of eSDK one.
+        paths_to_avoid = ['bitbake/bin', 'poky/scripts']
+        avoid_paths_in_environ(paths_to_avoid)
+
+        try:
+            output = subprocess.check_output(". %s > /dev/null; %s;" % \
+                (self.tc.sdkenv, cmd), shell=True)
+        except:
+            os.environ['PATH'] = paths
+            raise
+
+        os.environ['PATH'] = paths
+        return output
 
 def getmodule(pos=2):
     # stack returns a list of tuples containg frame information
-- 
2.1.4




More information about the Openembedded-core mailing list