⚠ Archived content — this site is no longer maintained.   Current WebKit documentation is at docs.webkit.org.

Changeset 99783 in webkit


Ignore:
Timestamp:
Nov 9, 2011, 4:49:03 PM (15 years ago)
Author:
ojan@chromium.org
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:
Location:
trunk/Tools
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/Tools/ChangeLog

    r99781 r99783  
     12011-11-09  Ojan Vafai  <ojan@chromium.org>
     2
     3        Merge in results to the test results server even if build numbers conflict
     4        https://bugs.webkit.org/show_bug.cgi?id=71967
     5
     6        Reviewed by Tony Chang.
     7
     8        This was initially meant to be a sanity check that we don't
     9        enter duplicate runs, but it turns out that we can reasonably get
     10        in these situations when a builder is clobbered (e.g. the build
     11        numbers start over again from 0).
     12
     13        * TestResultServer/model/jsonresults.py:
     14        * TestResultServer/model/jsonresults_unittest.py:
     15
    1162011-11-09  Eric Seidel  <eric@webkit.org>
    217
  • trunk/Tools/TestResultServer/model/jsonresults.py

    r91529 r99783  
    100100            logging.debug("Merging build %s, incremental json index: %d.", build_number, index)
    101101
    102             # FIXME: make this case work.
    103             if build_number < aggregated_build_number:
    104                 logging.warning("Build %d in incremental json is older than the most recent build in aggregated results: %d",
    105                     build_number, aggregated_build_number)
    106                 return False
    107 
    108             # FIXME: skip the duplicated build and merge rest of the results.
    109             # Need to be careful on skiping the corresponding value in
    110             # _merge_tests because the property data for each test could be accumulated.
    111             if build_number == aggregated_build_number:
    112                 logging.warning("Duplicate build %d in incremental json", build_number)
    113                 return False
    114 
    115102            # Merge this build into aggreagated results.
    116103            cls._merge_one_build(aggregated_json, incremental_json, index, num_runs)
  • trunk/Tools/TestResultServer/model/jsonresults_unittest.py

    r91529 r99783  
    374374        # Test the build in incremental results is older than the most recent
    375375        # build in aggregated results.
    376         # The incremental results should be dropped and no merge happens.
    377376        self._test_merge(
    378377            # Aggregated results
    379378            {"builds": ["3", "1"],
    380379             "tests": {"001.html": {
    381                            "results": "[200,\"F\"]",
    382                            "times": "[200,0]"}}},
     380                           "results": "[5,\"F\"]",
     381                           "times": "[5,0]"}}},
    383382            # Incremental results
    384383            {"builds": ["2"],
     
    387386                           "times": "[1,0]"}}},
    388387            # Expected no merge happens.
    389             None)
     388            {"builds": ["2", "3", "1"],
     389             "tests": {"001.html": {
     390                           "results": "[6,\"F\"]",
     391                           "times": "[6,0]"}}})
    390392
    391393    def test_merge_incremental_result_same_build(self):
    392394        # Test the build in incremental results is same as the build in
    393395        # aggregated results.
    394         # The incremental results should be dropped and no merge happens.
    395         self._test_merge(
    396             # Aggregated results
    397             {"builds": ["2", "1"],
    398              "tests": {"001.html": {
    399                            "results": "[200,\"F\"]",
    400                            "times": "[200,0]"}}},
     396        self._test_merge(
     397            # Aggregated results
     398            {"builds": ["2", "1"],
     399             "tests": {"001.html": {
     400                           "results": "[5,\"F\"]",
     401                           "times": "[5,0]"}}},
    401402            # Incremental results
    402403            {"builds": ["3", "2"],
     
    405406                           "times": "[2,0]"}}},
    406407            # Expected no merge happens.
    407             None)
     408            {"builds": ["3", "2", "2", "1"],
     409             "tests": {"001.html": {
     410                           "results": "[7,\"F\"]",
     411                           "times": "[7,0]"}}})
    408412
    409413    def test_merge_remove_test_with_no_data(self):
Note: See TracChangeset for help on using the changeset viewer.