]> code.ossystems Code Review - openembedded-core.git/commitdiff
oeqa.runtime.smart: work around smart race issues
authorMarkus Lehtonen <markus.lehtonen@linux.intel.com>
Fri, 9 Sep 2016 08:27:11 +0000 (11:27 +0300)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Fri, 9 Sep 2016 11:12:17 +0000 (12:12 +0100)
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]

Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
meta/lib/oeqa/runtime/smart.py

index 6cdb10d631d77b210b506dcf092dda271e47869c..a15e4027d8580463e64d24098945b5fda1149c8e 100644 (file)
@@ -2,6 +2,7 @@ import unittest
 import re
 import oe
 import subprocess
+from time import sleep
 from oeqa.oetest import oeRuntimeTest, skipModule
 from oeqa.utils.decorators import *
 from oeqa.utils.httpserver import HTTPService
@@ -144,13 +145,21 @@ class SmartRepoTest(SmartTest):
     @skipUnlessPassed('test_smart_channel_add')
     def test_smart_install(self):
         self.smart('remove -y psplash-default')
+        # NOTE: this sleep is a hack for working around #10244
+        sleep(1)
         self.smart('install -y psplash-default')
+        # NOTE: this sleep is a hack for working around #10244
+        sleep(1)
 
     @testcase(728)
     @skipUnlessPassed('test_smart_install')
     def test_smart_install_dependency(self):
         self.smart('remove -y psplash')
+        # NOTE: this sleep is a hack for working around #10244
+        sleep(1)
         self.smart('install -y psplash-default')
+        # NOTE: this sleep is a hack for working around #10244
+        sleep(1)
 
     @testcase(723)
     @skipUnlessPassed('test_smart_channel_add')
@@ -158,6 +167,8 @@ class SmartRepoTest(SmartTest):
         self.smart('remove -y psplash-default')
         self.smart('download psplash-default')
         self.smart('install -y ./psplash-default*')
+        # NOTE: this sleep is a hack for working around #10244
+        sleep(1)
 
     @testcase(725)
     @skipUnlessPassed('test_smart_channel_add')
@@ -166,19 +177,29 @@ class SmartRepoTest(SmartTest):
         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')
+        # NOTE: this sleep is a hack for working around #10244
+        sleep(1)
         self.smart('install -y %s' % url.group(0))
+        # NOTE: this sleep is a hack for working around #10244
+        sleep(1)
 
     @testcase(729)
     @skipUnlessPassed('test_smart_install')
     def test_smart_reinstall(self):
         self.smart('reinstall -y psplash-default')
+        # NOTE: this sleep is a hack for working around #10244
+        sleep(1)
 
     @testcase(727)
     @skipUnlessPassed('test_smart_channel_add')
     def test_smart_remote_repo(self):
         self.smart('update')
         self.smart('install -y psplash')
+        # NOTE: this sleep is a hack for working around #10244
+        sleep(1)
         self.smart('remove -y psplash')
+        # NOTE: this sleep is a hack for working around #10244
+        sleep(1)
 
     @testcase(726)
     def test_smart_local_dir(self):
@@ -192,6 +213,8 @@ class SmartRepoTest(SmartTest):
                 self.smart('channel --disable '+str(i))
         self.target.run('cd $HOME')
         self.smart('install psplash')
+        # NOTE: this sleep is a hack for working around #10244
+        sleep(1)
         for i in output.split("\n"):
             if ("rpmsys" != str(i)) and ("myrpmdir" != str(i)):
                 self.smart('channel --enable '+str(i))
@@ -215,4 +238,6 @@ class SmartRepoTest(SmartTest):
     @skipUnlessPassed('test_smart_channel_add')
     def test_smart_remove_package(self):
         self.smart('install -y psplash')
+        # NOTE: this sleep is a hack for working around #10244
+        sleep(1)
         self.smart('remove -y psplash')