tools: make --repeat work with -j in test.py
The repeat option in test.py did not work as expected if `-j` was set to more than one. Repeated tests running at the same time could share temp directories and cause test failures. This was observed with: tools/test.py -J --repeat=10 parallel/test-fs-watch-recursive By using copy.deepCopy(), the repeated tests are separate objects and not references to the same objects. Setting `thread_id` on one of them will now not change the `thread_id` on all of them. And `thread_id` is how the temp directory (and common.PORT as well) are determined. Refs: https://github.com/nodejs/node/pull/9228 PR-URL: https://github.com/nodejs/node/pull/9249 Reviewed-By: Sakthipriyan Vairamani <thechargingvolcano@gmail.com> Reviewed-By: Gibson Fahnestock <gibfahn@gmail.com> Reviewed-By: Michael Dawson <michael_dawson@ca.ibm.com> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Santiago Gimeno <santiago.gimeno@gmail.com>
This commit is contained in:
parent
443e218544
commit
60a78aedb9
@ -42,6 +42,7 @@ import threading
|
|||||||
import utils
|
import utils
|
||||||
import multiprocessing
|
import multiprocessing
|
||||||
import errno
|
import errno
|
||||||
|
import copy
|
||||||
|
|
||||||
from os.path import join, dirname, abspath, basename, isdir, exists
|
from os.path import join, dirname, abspath, basename, isdir, exists
|
||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
@ -773,7 +774,9 @@ class TestRepository(TestSuite):
|
|||||||
tests = self.GetConfiguration(context).ListTests(current_path, path,
|
tests = self.GetConfiguration(context).ListTests(current_path, path,
|
||||||
arch, mode)
|
arch, mode)
|
||||||
for t in tests: t.variant_flags = v
|
for t in tests: t.variant_flags = v
|
||||||
result += tests * context.repeat
|
result += tests
|
||||||
|
for i in range(1, context.repeat):
|
||||||
|
result += copy.deepcopy(tests)
|
||||||
|
|
||||||
def GetTestStatus(self, context, sections, defs):
|
def GetTestStatus(self, context, sections, defs):
|
||||||
self.GetConfiguration(context).GetTestStatus(sections, defs)
|
self.GetConfiguration(context).GetTestStatus(sections, defs)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user