From: Stefan Stanacar Date: Mon, 26 Aug 2013 08:51:46 +0000 (+0300) Subject: lib/oeqa/runtime: smart: add checks for smart output X-Git-Tag: rev_ivi_2015_02_04~11255 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=32c9e1ea0e83e089c34d890b75b5069b193be47e;p=scm%2Fbb%2Ftizen-distro.git lib/oeqa/runtime: smart: add checks for smart output Sometimes smart throws: Committing transaction... Preparing... ######################################## [ 0%] 1:Removing psplash-default ######################################## [100%] error: Couldn't fork %postun: Cannot allocate memory and returns a 0 exit code (it thinks it succesfully removed the package, when in reality it didn't), so we need to catch those specifically. Also, sometimes output from download command is: Saving cache...http://192.168.7.1:49456/rpm/x86_64_x32/psplash-default-0.1+git0+afd4e228c6-r15.x86_64_x32.rpm and that tricks our smart download test, so use a regex there. (From OE-Core rev: 2ac7783e04f5e8e6005f967e1a6dd65d2fc6a19a) Signed-off-by: Stefan Stanacar Signed-off-by: Richard Purdie --- diff --git a/meta/lib/oeqa/runtime/smart.py b/meta/lib/oeqa/runtime/smart.py index 4ea2699..6e20f96 100644 --- a/meta/lib/oeqa/runtime/smart.py +++ b/meta/lib/oeqa/runtime/smart.py @@ -1,4 +1,5 @@ import unittest +import re from oeqa.oetest import oeRuntimeTest from oeqa.utils.decorators import * from oeqa.utils.httpserver import HTTPService @@ -19,6 +20,7 @@ class SmartTest(oeRuntimeTest): status, output = self.target.run(command) message = os.linesep.join([command, output]) self.assertEqual(status, expected, message) + self.assertFalse("Cannot allocate memory" in output, message) return output class SmartBasicTest(SmartTest): @@ -95,13 +97,11 @@ class SmartRepoTest(SmartTest): @skipUnlessPassed('test_smart_channel_add') def test_smart_install_from_http(self): - url = 'http://' output = self.smart('download --urls psplash-default') - for line in output.splitlines(): - if line.startswith(url): - url = line + url = re.search('(http://.*/psplash-default.*\.rpm)', output) + self.assertTrue(url, msg="Couln't find download url in %s" % output) self.smart('remove -y psplash-default') - self.smart('install -y %s' % url) + self.smart('install -y %s' % url.group(0)) @skipUnlessPassed('test_smart_install') def test_smart_reinstall(self):