зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1305877 - Make HashChunker stable; r=jgraham
The built-in hash() function uses the backing memory address for hashing. This is essentially random. Switch to md5 so input is consistently hashed across processes. MozReview-Commit-ID: D52uzttE5hc --HG-- extra : rebase_source : b7f15e519ec0ba05d0a310fe0470d82893a0a07c extra : source : 4c8e1c96a27df961c1dd2e984745d06757e8a2d4
This commit is contained in:
Родитель
5d3405fe79
Коммит
0b9bb32229
|
@ -1,6 +1,6 @@
|
|||
import hashlib
|
||||
import json
|
||||
import os
|
||||
import sys
|
||||
import urlparse
|
||||
from abc import ABCMeta, abstractmethod
|
||||
from Queue import Empty
|
||||
|
@ -43,12 +43,14 @@ class Unchunked(TestChunker):
|
|||
|
||||
|
||||
class HashChunker(TestChunker):
|
||||
def __call__(self):
|
||||
def __call__(self, manifest):
|
||||
chunk_index = self.chunk_number - 1
|
||||
for test_path, tests in manifest:
|
||||
if hash(test_path) % self.total_chunks == chunk_index:
|
||||
h = int(hashlib.md5(test_path).hexdigest(), 16)
|
||||
if h % self.total_chunks == chunk_index:
|
||||
yield test_path, tests
|
||||
|
||||
|
||||
class EqualTimeChunker(TestChunker):
|
||||
def _group_by_directory(self, manifest_items):
|
||||
"""Split the list of manifest items into a ordered dict that groups tests in
|
||||
|
|
Загрузка…
Ссылка в новой задаче