Modified: trunk/Tools/BuildSlaveSupport/ews-build/steps.py (266625 => 266626)
--- trunk/Tools/BuildSlaveSupport/ews-build/steps.py 2020-09-04 18:48:47 UTC (rev 266625)
+++ trunk/Tools/BuildSlaveSupport/ews-build/steps.py 2020-09-04 18:50:58 UTC (rev 266626)
@@ -2556,10 +2556,14 @@
message = ''
if clean_tree_failures:
message = 'Found {} pre-existing API test failure{}: {}'.format(len(clean_tree_failures), pluralSuffix, clean_tree_failures_string)
+ for clean_tree_failure in clean_tree_failures:
+ self.send_email_for_pre_existing_failure(clean_tree_failure)
if len(clean_tree_failures) > self.NUM_API_FAILURES_TO_DISPLAY:
message += ' ...'
if flaky_failures:
message += ' Found flaky tests: {}'.format(flaky_failures_string)
+ for flaky_failure in flaky_failures:
+ self.send_email_for_flaky_failure(flaky_failure)
self.build.buildFinished([message], SUCCESS)
@defer.inlineCallbacks
@@ -2599,7 +2603,32 @@
except Exception as ex:
self._addToLog('stderr', 'ERROR: unable to parse data, exception: {}'.format(ex))
+ def send_email_for_flaky_failure(self, test_name):
+ try:
+ builder_name = self.getProperty('buildername', '')
+ worker_name = self.getProperty('workername', '')
+ build_url = '{}#/builders/{}/builds/{}'.format(self.master.config.buildbotURL, self.build._builderid, self.build.number)
+ history_url = '{}?suite=api-tests&test={}'.format(RESULTS_DB_URL, test_name)
+ email_subject = u'Flaky test: {}'.format(test_name)
+ email_text = 'Flaky test: {}\n\nBuild: {}\n\nBuilder: {}\n\nWorker: {}\n\nHistory: {}'.format(test_name, build_url, builder_name, worker_name, history_url)
+ send_email_to_bot_watchers(email_subject, email_text, 'flaky-{}'.format(test_name))
+ except Exception as e:
+ print('Error in sending email for flaky failure: {}'.format(e))
+
+ def send_email_for_pre_existing_failure(self, test_name):
+ try:
+ builder_name = self.getProperty('buildername', '')
+ worker_name = self.getProperty('workername', '')
+ build_url = '{}#/builders/{}/builds/{}'.format(self.master.config.buildbotURL, self.build._builderid, self.build.number)
+ history_url = '{}?suite=api-tests&test={}'.format(RESULTS_DB_URL, test_name)
+
+ email_subject = u'Pre-existing test failure: {}'.format(test_name)
+ email_text = 'Test {} failed on clean tree run in {}.\n\nBuilder: {}\n\nWorker: {}\n\nHistory: {}'.format(test_name, build_url, builder_name, worker_name, history_url)
+ send_email_to_bot_watchers(email_subject, email_text, 'preexisting-{}'.format(test_name))
+ except Exception as e:
+ print('Error in sending email for pre-existing failure: {}'.format(e))
+
class ArchiveTestResults(shell.ShellCommand):
command = ['python', 'Tools/BuildSlaveSupport/test-result-archive',
Interpolate('--platform=%(prop:platform)s'), Interpolate('--%(prop:configuration)s'), 'archive']
Modified: trunk/Tools/ChangeLog (266625 => 266626)
--- trunk/Tools/ChangeLog 2020-09-04 18:48:47 UTC (rev 266625)
+++ trunk/Tools/ChangeLog 2020-09-04 18:50:58 UTC (rev 266626)
@@ -1,3 +1,16 @@
+2020-09-04 Aakash Jain <aakash_j...@apple.com>
+
+ [ews] Notify bot watchers about pre-existing and flaky test failures for API tests
+ https://bugs.webkit.org/show_bug.cgi?id=215949
+
+ Reviewed by Jonathan Bedard.
+
+ * BuildSlaveSupport/ews-build/steps.py:
+ (AnalyzeAPITestsResults.analyzeResults):
+ (AnalyzeAPITestsResults.send_email_for_flaky_failure):
+ (AnalyzeAPITestsResults):
+ (AnalyzeAPITestsResults.send_email_for_pre_existing_failure):
+
2020-09-04 Youenn Fablet <you...@apple.com>
Binding generator is not always computing the right interface attributes