author | Mark Capella <markcapella@twcny.rr.com> |
Fri, 27 Sep 2013 17:04:16 -0400 | |
changeset 149105 | 17453b973aa50314c9c36a672ceb2ad4c0d6c4ea |
parent 149104 | e69483402ee3590435dfdc66684f9353019f050f |
child 149106 | 46583beb7d1bea492c3021aedbd3b3aa52f47ddc |
push id | 34439 |
push user | kwierso@gmail.com |
push date | Sat, 28 Sep 2013 03:39:12 +0000 |
treeherder | mozilla-inbound@caec8c0c4963 [default view] [failures only] |
perfherder | [talos] [build metrics] [platform microbench] (compared to previous push) |
reviewers | jmaher |
bugs | 921117 |
milestone | 27.0a1 |
first release with | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
last release without | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
--- a/testing/mochitest/runtestsremote.py +++ b/testing/mochitest/runtestsremote.py @@ -459,25 +459,36 @@ class MochiRemote(Mochitest): print '\n'.join(logFile) with open(self.localLog, 'w') as localLog: localLog.write('\n'.join(logFile)) if failed > 0: return 1 return 0 - def printScreenshot(self): - try: - image = self._dm.pullFile("/mnt/sdcard/Robotium-Screenshots/robocop-screenshot.jpg") - encoded = base64.b64encode(image) - log.info("SCREENSHOT: data:image/jpg;base64,%s", encoded) - except: - # If the test passes, no screenshot will be generated and - # pullFile will fail -- continue silently. - pass + def printScreenshots(self, screenShotDir): + # TODO: This can be re-written after completion of bug 749421 + if not self._dm.dirExists(screenShotDir): + log.info("SCREENSHOT: No ScreenShots directory available: " + screenShotDir) + return + + printed = 0 + for name in self._dm.listFiles(screenShotDir): + fullName = screenShotDir + "/" + name + log.info("SCREENSHOT: FOUND: [%s]", fullName) + try: + image = self._dm.pullFile(fullName) + encoded = base64.b64encode(image) + log.info("SCREENSHOT: data:image/jpg;base64,%s", encoded) + printed += 1 + except: + log.info("SCREENSHOT: Could not be parsed") + pass + + log.info("SCREENSHOT: TOTAL PRINTED: [%s]", printed) def printDeviceInfo(self, printLogcat=False): try: if printLogcat: logcat = self._dm.getLogcat(filterOutRegexps=fennecLogcatFilters) log.info('\n'+(''.join(logcat))) log.info("Device info: %s", self._dm.getInfo()) log.info("Test root: %s", self._dm.getDeviceRoot()) @@ -649,25 +660,26 @@ def main(): for i in range(20): if ("pandaboard" in devOS): cmd = ['execsu', 'sqlite3', "/data/data/com.android.browser/databases/browser2.db 'insert or replace into bookmarks(_id,title,url,folder,parent,position) values (" + str(30 + i) + ",\"Bookmark"+ str(i) + "\",\"http://www.bookmark" + str(i) + ".com\",0,1," + str(100 + i) + ");'"] else: cmd = ['execsu', 'sqlite3', "/data/data/com.android.browser/databases/browser.db 'insert into bookmarks(title,url,bookmark) values (\"Bookmark"+ str(i) + "\",\"http://www.bookmark" + str(i) + ".com\",1);'"] if (options.dm_trans == "sut"): dm._runCmds([{"cmd": " ".join(cmd)}]) try: - dm.removeDir("/mnt/sdcard/Robotium-Screenshots") + screenShotDir = "/mnt/sdcard/Robotium-Screenshots" + dm.removeDir(screenShotDir) dm.recordLogcat() result = mochitest.runTests(options) if result != 0: log.error("runTests() exited with code %s", result) log_result = mochitest.addLogData() if result != 0 or log_result != 0: mochitest.printDeviceInfo(printLogcat=True) - mochitest.printScreenshot() + mochitest.printScreenshots(screenShotDir) # Ensure earlier failures aren't overwritten by success on this run if retVal is None or retVal == 0: retVal = result except: log.error("Automation Error: Exception caught while running tests") traceback.print_exc() mochitest.stopWebServer(options) mochitest.stopWebSocketServer(options)