summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarkus Lehtonen <markus.lehtonen@linux.intel.com>2016-09-09 08:27:11 (GMT)
committerRichard Purdie <richard.purdie@linuxfoundation.org>2016-09-09 11:12:23 (GMT)
commit68e35c8e3793ed4f7f54d14a5d5b0c59598b7dda (patch)
treea62b69647b8fe35430638c3f810f53ba05c38b00
parentd3991342ede8d0db43879719c6e7b9464cd9a128 (diff)
downloadpoky-68e35c8e3793ed4f7f54d14a5d5b0c59598b7dda.tar.gz
oeqa.runtime.smart: work around smart race issues
Yucku hack around test failures which ultimately are caused by a race in smartpm itself. Issuing smartpm commands in quick succession causes races in package cache of smartpm on some systems. This patch mitigates the problem by sleeping for 1 second after each smartpm command that modifies the system. [YOCTO #10244] (From OE-Core rev: 4d268abc2fc892c5d34449f78c8e9f2b1a9d6bac) Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r--meta/lib/oeqa/runtime/smart.py25
1 files changed, 25 insertions, 0 deletions
diff --git a/meta/lib/oeqa/runtime/smart.py b/meta/lib/oeqa/runtime/smart.py
index 6cdb10d..a15e402 100644
--- a/meta/lib/oeqa/runtime/smart.py
+++ b/meta/lib/oeqa/runtime/smart.py
@@ -2,6 +2,7 @@ import unittest
2import re 2import re
3import oe 3import oe
4import subprocess 4import subprocess
5from time import sleep
5from oeqa.oetest import oeRuntimeTest, skipModule 6from oeqa.oetest import oeRuntimeTest, skipModule
6from oeqa.utils.decorators import * 7from oeqa.utils.decorators import *
7from oeqa.utils.httpserver import HTTPService 8from oeqa.utils.httpserver import HTTPService
@@ -144,13 +145,21 @@ class SmartRepoTest(SmartTest):
144 @skipUnlessPassed('test_smart_channel_add') 145 @skipUnlessPassed('test_smart_channel_add')
145 def test_smart_install(self): 146 def test_smart_install(self):
146 self.smart('remove -y psplash-default') 147 self.smart('remove -y psplash-default')
148 # NOTE: this sleep is a hack for working around #10244
149 sleep(1)
147 self.smart('install -y psplash-default') 150 self.smart('install -y psplash-default')
151 # NOTE: this sleep is a hack for working around #10244
152 sleep(1)
148 153
149 @testcase(728) 154 @testcase(728)
150 @skipUnlessPassed('test_smart_install') 155 @skipUnlessPassed('test_smart_install')
151 def test_smart_install_dependency(self): 156 def test_smart_install_dependency(self):
152 self.smart('remove -y psplash') 157 self.smart('remove -y psplash')
158 # NOTE: this sleep is a hack for working around #10244
159 sleep(1)
153 self.smart('install -y psplash-default') 160 self.smart('install -y psplash-default')
161 # NOTE: this sleep is a hack for working around #10244
162 sleep(1)
154 163
155 @testcase(723) 164 @testcase(723)
156 @skipUnlessPassed('test_smart_channel_add') 165 @skipUnlessPassed('test_smart_channel_add')
@@ -158,6 +167,8 @@ class SmartRepoTest(SmartTest):
158 self.smart('remove -y psplash-default') 167 self.smart('remove -y psplash-default')
159 self.smart('download psplash-default') 168 self.smart('download psplash-default')
160 self.smart('install -y ./psplash-default*') 169 self.smart('install -y ./psplash-default*')
170 # NOTE: this sleep is a hack for working around #10244
171 sleep(1)
161 172
162 @testcase(725) 173 @testcase(725)
163 @skipUnlessPassed('test_smart_channel_add') 174 @skipUnlessPassed('test_smart_channel_add')
@@ -166,19 +177,29 @@ class SmartRepoTest(SmartTest):
166 url = re.search('(http://.*/psplash-default.*\.rpm)', output) 177 url = re.search('(http://.*/psplash-default.*\.rpm)', output)
167 self.assertTrue(url, msg="Couln't find download url in %s" % output) 178 self.assertTrue(url, msg="Couln't find download url in %s" % output)
168 self.smart('remove -y psplash-default') 179 self.smart('remove -y psplash-default')
180 # NOTE: this sleep is a hack for working around #10244
181 sleep(1)
169 self.smart('install -y %s' % url.group(0)) 182 self.smart('install -y %s' % url.group(0))
183 # NOTE: this sleep is a hack for working around #10244
184 sleep(1)
170 185
171 @testcase(729) 186 @testcase(729)
172 @skipUnlessPassed('test_smart_install') 187 @skipUnlessPassed('test_smart_install')
173 def test_smart_reinstall(self): 188 def test_smart_reinstall(self):
174 self.smart('reinstall -y psplash-default') 189 self.smart('reinstall -y psplash-default')
190 # NOTE: this sleep is a hack for working around #10244
191 sleep(1)
175 192
176 @testcase(727) 193 @testcase(727)
177 @skipUnlessPassed('test_smart_channel_add') 194 @skipUnlessPassed('test_smart_channel_add')
178 def test_smart_remote_repo(self): 195 def test_smart_remote_repo(self):
179 self.smart('update') 196 self.smart('update')
180 self.smart('install -y psplash') 197 self.smart('install -y psplash')
198 # NOTE: this sleep is a hack for working around #10244
199 sleep(1)
181 self.smart('remove -y psplash') 200 self.smart('remove -y psplash')
201 # NOTE: this sleep is a hack for working around #10244
202 sleep(1)
182 203
183 @testcase(726) 204 @testcase(726)
184 def test_smart_local_dir(self): 205 def test_smart_local_dir(self):
@@ -192,6 +213,8 @@ class SmartRepoTest(SmartTest):
192 self.smart('channel --disable '+str(i)) 213 self.smart('channel --disable '+str(i))
193 self.target.run('cd $HOME') 214 self.target.run('cd $HOME')
194 self.smart('install psplash') 215 self.smart('install psplash')
216 # NOTE: this sleep is a hack for working around #10244
217 sleep(1)
195 for i in output.split("\n"): 218 for i in output.split("\n"):
196 if ("rpmsys" != str(i)) and ("myrpmdir" != str(i)): 219 if ("rpmsys" != str(i)) and ("myrpmdir" != str(i)):
197 self.smart('channel --enable '+str(i)) 220 self.smart('channel --enable '+str(i))
@@ -215,4 +238,6 @@ class SmartRepoTest(SmartTest):
215 @skipUnlessPassed('test_smart_channel_add') 238 @skipUnlessPassed('test_smart_channel_add')
216 def test_smart_remove_package(self): 239 def test_smart_remove_package(self):
217 self.smart('install -y psplash') 240 self.smart('install -y psplash')
241 # NOTE: this sleep is a hack for working around #10244
242 sleep(1)
218 self.smart('remove -y psplash') 243 self.smart('remove -y psplash')