Title: [266626] trunk/Tools
Revision
266626
Author
aakash_j...@apple.com
Date
2020-09-04 11:50:58 -0700 (Fri, 04 Sep 2020)

Log Message

[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):

Modified Paths

Diff

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
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to