aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xbitbake/lib/toaster/tests/helpers.py5
-rw-r--r--bitbake/lib/toaster/tests/setup.py54
-rw-r--r--bitbake/lib/toaster/tests/toaster_test.cfg2
3 files changed, 34 insertions, 27 deletions
diff --git a/bitbake/lib/toaster/tests/helpers.py b/bitbake/lib/toaster/tests/helpers.py
index ed152b202ce..ad196594a07 100755
--- a/bitbake/lib/toaster/tests/helpers.py
+++ b/bitbake/lib/toaster/tests/helpers.py
@@ -118,6 +118,7 @@ class ToasterHelper(object):
for pid in pids:
try:
+ print "killing ",pid
os.kill(pid, signal.SIGKILL)
except:
pass
@@ -126,7 +127,7 @@ class ToasterHelper(object):
def stop(self, force=False):
"""
- The stop method have force mode because toaster without production
+ The stop method have force mode because toaster without production
setup have known issues when is on load, the server response 503
service unavailable.
"""
@@ -187,6 +188,6 @@ if __name__ == "__main__":
except IOError as e:
if args.action == 'clone':
print "ERROR: Directory exists: %s" % args.work_directory
- raise
+ raise
sys.exit(0)
diff --git a/bitbake/lib/toaster/tests/setup.py b/bitbake/lib/toaster/tests/setup.py
index 725e858e66e..0d9a9937a22 100644
--- a/bitbake/lib/toaster/tests/setup.py
+++ b/bitbake/lib/toaster/tests/setup.py
@@ -29,10 +29,12 @@ from toaster.tests.base import ToasterTestCase
class ToasterSetupTestCase(ToasterTestCase):
def setUp(self):
self.driver = webdriver.Firefox()
-
+ self.delayTime=5
def tearDown(self):
self.driver.close()
+ def delay(self):
+ time.sleep(self.delayTime)
def is_text_present (self, patterns):
for pattern in patterns:
if str(pattern) not in self.driver.page_source:
@@ -41,54 +43,58 @@ class ToasterSetupTestCase(ToasterTestCase):
return True
def test_setupToaster(self):
- self.driver.maximize_window()
+ #self.driver.maximize_window()
self.driver.get(self.opts.toaster_url)
- try:
- self.driver.find_element_by_css_selector("a[href='/toastergui/projects/']").click()
- except:
- self.driver.find_element_by_id("new-project-button").click()
- self.driver.find_element_by_id("new-project-name").send_keys("selenium-project")
- self.driver.find_element_by_id("create-project-button").click()
try:
+ #go back to the main project page
+ self.driver.find_element_by_css_selector("a[href='/toastergui/projects/']").click()
+ self.delay()
self.driver.find_element_by_link_text("selenium-project").click()
+ return
except:
self.driver.find_element_by_id("new-project-button").click()
self.driver.find_element_by_id("new-project-name").send_keys("selenium-project")
self.driver.find_element_by_id("create-project-button").click()
time.sleep(5)
+ self.buildImage("core-image-minimal")
+ self.buildImage("core-image-sato")
- #queue up a core-image-minimal
- self.driver.find_element_by_id("build-input").send_keys("core-image-minimal")
- self.driver.find_element_by_id("build-button").click()
- time.sleep(5)
- #queue up a core-image-sato
- self.driver.find_element_by_id("build-input").send_keys("core-image-sato")
- self.driver.find_element_by_id("build-button").click()
- time.sleep(5)
-
+ def buildImage(self,name):
#go back to the main project page
self.driver.find_element_by_css_selector("a[href='/toastergui/projects/']").click()
- time.sleep(5)
+ self.delay()
self.driver.find_element_by_link_text("selenium-project").click()
- time.sleep(5)
-
+ self.delay()
+ self.driver.find_element_by_id("build-input").send_keys(name)
+ self.driver.find_element_by_id("build-button").click()
+ self.delay()
+ self.isBuildFinished()
+ def isBuildFinished(self):
+ TIMEOUT=15*60
#move to all builds page
- self.driver.find_element_by_css_selector("a[href='/toastergui/builds/']").click()
- self.driver.refresh()
+ print "BUILDS"
+ #self.driver.find_element_by_css_selector("a[href='/toastergui/builds/']").click()
+ self.driver.find_element_by_link_text("All builds").click()
time.sleep(5)
#check progress bar is displayed to signal a build has started
try:
+ totalTime=0
while (self.driver.find_element_by_xpath("//div[@class='progress']").is_displayed()):
- self.logger.info('Builds are running ...')
+ self.logger.error('Builds are running ...')
+
self.driver.refresh()
time.sleep(15)
+ totalTime+=15
+ # if it's running too long the sstate may be out of sync in which case we are doomed on Travis
+ if totalTime> TIMEOUT:
+ break
except:
pass
self.logger.info("Looking for successful build...")
if (self.driver.find_element_by_xpath("//div[@class='alert build-result alert-success project-name']").is_displayed()):
- self.logger.info("Builds complete!")
+ self.logger.error("Builds complete!")
else:
self.fail(msg="Builds did not complete successfully.")
diff --git a/bitbake/lib/toaster/tests/toaster_test.cfg b/bitbake/lib/toaster/tests/toaster_test.cfg
index 6acd1666dbd..1b59c2d7d3d 100644
--- a/bitbake/lib/toaster/tests/toaster_test.cfg
+++ b/bitbake/lib/toaster/tests/toaster_test.cfg
@@ -8,7 +8,7 @@
[toaster_test_linux]
toaster_url = 'http://localhost:8000'
test_browser = 'firefox'
-test_cases = [946]
+test_cases = [911,912,913]
logging_level = 'INFO'