[OE-core] [PATCH 17/21] oeqa/utils/targetbuild: change download to use bitbake's fetcher

Stefan Stanacar stefanx.stanacar at intel.com
Fri Aug 23 15:30:57 UTC 2013


Use bb.fetcher2 instead of running our own wget command
(helps with proxy too). Also no need to use the class attribute target,
use self.target, as the tests pass that to the class.
Also, we shouldn't clean the archive, now that it gets to DL_DIR.

Signed-off-by: Stefan Stanacar <stefanx.stanacar at intel.com>
---
 meta/lib/oeqa/utils/targetbuild.py | 33 +++++++++++++++------------------
 1 file changed, 15 insertions(+), 18 deletions(-)

diff --git a/meta/lib/oeqa/utils/targetbuild.py b/meta/lib/oeqa/utils/targetbuild.py
index 7555add..9b2cf53 100644
--- a/meta/lib/oeqa/utils/targetbuild.py
+++ b/meta/lib/oeqa/utils/targetbuild.py
@@ -5,8 +5,8 @@
 # Provides a class for automating build tests for projects
 
 from oeqa.oetest import oeRuntimeTest
-from oeqa.utils.decorators import *
-import bb.process
+import bb.fetch2
+import bb.data
 import os
 import re
 
@@ -18,6 +18,9 @@ class TargetBuildProject():
         self.uri = uri
         self.targetdir = "/home/root/"
 
+        self.localdata = bb.data.createCopy(oeRuntimeTest.tc.d)
+        bb.data.update_data(self.localdata)
+
         if not foldername:
             self.archive = os.path.basename(uri)
             self.fname = re.sub(r'.tar.bz2|tar.gz$', '', self.archive)
@@ -25,22 +28,20 @@ class TargetBuildProject():
             self.fname = foldername
 
     def download_archive(self):
-        wgetcmd = oeRuntimeTest.tc.d.getVar('FETCHCMD_wget', True).split()
-        self.testdir = oeRuntimeTest.tc.d.getVar('TEST_LOG_DIR', True)
 
         try:
-            output = bb.process.run(wgetcmd + ['-P', self.testdir, self.uri])[0]
-        except bb.process.CmdError:
-            raise Exception("Failed to download archive, output: %s" % output)
-
-        (status, output) = oeRuntimeTest.tc.target.copy_to(
-            os.path.join(self.testdir, self.archive),
-            self.targetdir)
+            self.localdata.delVar("BB_STRICT_CHECKSUM")
+            fetcher = bb.fetch2.Fetch([self.uri], self.localdata)
+            fetcher.download()
+            self.localarchive = fetcher.localpath(self.uri)
+        except bb.fetch2.BBFetchException:
+            raise Exception("Failed to download archive: %s" % self.uri)
+
+        (status, output) = self.target.copy_to(self.localarchive, self.targetdir)
         if status != 0:
             raise Exception("Failed to copy archive to target, output: %s" % output)
 
-        (status, output) = oeRuntimeTest.tc.target.run(
-            'tar xf %s%s -C %s' % (self.targetdir, self.archive, self.targetdir))
+        (status, output) = self.target.run('tar xf %s%s -C %s' % (self.targetdir, self.archive, self.targetdir))
         if status != 0:
             raise Exception("Failed to extract archive, output: %s" % output)
 
@@ -59,8 +60,4 @@ class TargetBuildProject():
         return self.target.run('cd %s; make install' % self.targetdir, 0)[0]
 
     def clean(self):
-        self.target.run('rm -r %s*' % self.targetdir)
-        try:
-            bb.process.run(['rm', '-rf', os.path.join(self.testdir, self.archive)])
-        except bb.process.CmdError:
-            bb.note("Failed to remove archive")
+        self.target.run('rm -rf %s' % self.targetdir)
-- 
1.8.3.1




More information about the Openembedded-core mailing list