Title: [99783] trunk/Tools
Revision
99783
Author
[email protected]
Date
2011-11-09 16:49:03 -0800 (Wed, 09 Nov 2011)

Log Message

Merge in results to the test results server even if build numbers conflict
https://bugs.webkit.org/show_bug.cgi?id=71967

Reviewed by Tony Chang.

This was initially meant to be a sanity check that we don't
enter duplicate runs, but it turns out that we can reasonably get
in these situations when a builder is clobbered (e.g. the build
numbers start over again from 0).

* TestResultServer/model/jsonresults.py:
* TestResultServer/model/jsonresults_unittest.py:

Modified Paths

Diff

Modified: trunk/Tools/ChangeLog (99782 => 99783)


--- trunk/Tools/ChangeLog	2011-11-10 00:39:21 UTC (rev 99782)
+++ trunk/Tools/ChangeLog	2011-11-10 00:49:03 UTC (rev 99783)
@@ -1,3 +1,18 @@
+2011-11-09  Ojan Vafai  <[email protected]>
+
+        Merge in results to the test results server even if build numbers conflict
+        https://bugs.webkit.org/show_bug.cgi?id=71967
+
+        Reviewed by Tony Chang.
+
+        This was initially meant to be a sanity check that we don't
+        enter duplicate runs, but it turns out that we can reasonably get
+        in these situations when a builder is clobbered (e.g. the build
+        numbers start over again from 0).
+
+        * TestResultServer/model/jsonresults.py:
+        * TestResultServer/model/jsonresults_unittest.py:
+
 2011-11-09  Eric Seidel  <[email protected]>
 
         Remove the concept of platform-dependent unittests

Modified: trunk/Tools/TestResultServer/model/jsonresults.py (99782 => 99783)


--- trunk/Tools/TestResultServer/model/jsonresults.py	2011-11-10 00:39:21 UTC (rev 99782)
+++ trunk/Tools/TestResultServer/model/jsonresults.py	2011-11-10 00:49:03 UTC (rev 99783)
@@ -99,19 +99,6 @@
             build_number = int(incremental_builds[index])
             logging.debug("Merging build %s, incremental json index: %d.", build_number, index)
 
-            # FIXME: make this case work.
-            if build_number < aggregated_build_number:
-                logging.warning("Build %d in incremental json is older than the most recent build in aggregated results: %d",
-                    build_number, aggregated_build_number)
-                return False
-
-            # FIXME: skip the duplicated build and merge rest of the results.
-            # Need to be careful on skiping the corresponding value in
-            # _merge_tests because the property data for each test could be accumulated.
-            if build_number == aggregated_build_number:
-                logging.warning("Duplicate build %d in incremental json", build_number)
-                return False
-
             # Merge this build into aggreagated results.
             cls._merge_one_build(aggregated_json, incremental_json, index, num_runs)
 

Modified: trunk/Tools/TestResultServer/model/jsonresults_unittest.py (99782 => 99783)


--- trunk/Tools/TestResultServer/model/jsonresults_unittest.py	2011-11-10 00:39:21 UTC (rev 99782)
+++ trunk/Tools/TestResultServer/model/jsonresults_unittest.py	2011-11-10 00:49:03 UTC (rev 99783)
@@ -373,38 +373,42 @@
     def test_merge_incremental_result_older_build(self):
         # Test the build in incremental results is older than the most recent
         # build in aggregated results.
-        # The incremental results should be dropped and no merge happens.
         self._test_merge(
             # Aggregated results
             {"builds": ["3", "1"],
              "tests": {"001.html": {
-                           "results": "[200,\"F\"]",
-                           "times": "[200,0]"}}},
+                           "results": "[5,\"F\"]",
+                           "times": "[5,0]"}}},
             # Incremental results
             {"builds": ["2"],
              "tests": {"001.html": {
                            "results": "[1, \"F\"]",
                            "times": "[1,0]"}}},
             # Expected no merge happens.
-            None)
+            {"builds": ["2", "3", "1"],
+             "tests": {"001.html": {
+                           "results": "[6,\"F\"]",
+                           "times": "[6,0]"}}})
 
     def test_merge_incremental_result_same_build(self):
         # Test the build in incremental results is same as the build in
         # aggregated results.
-        # The incremental results should be dropped and no merge happens.
         self._test_merge(
             # Aggregated results
             {"builds": ["2", "1"],
              "tests": {"001.html": {
-                           "results": "[200,\"F\"]",
-                           "times": "[200,0]"}}},
+                           "results": "[5,\"F\"]",
+                           "times": "[5,0]"}}},
             # Incremental results
             {"builds": ["3", "2"],
              "tests": {"001.html": {
                            "results": "[2, \"F\"]",
                            "times": "[2,0]"}}},
             # Expected no merge happens.
-            None)
+            {"builds": ["3", "2", "2", "1"],
+             "tests": {"001.html": {
+                           "results": "[7,\"F\"]",
+                           "times": "[7,0]"}}})
 
     def test_merge_remove_test_with_no_data(self):
         # Remove test where there is no data in all runs.
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to