mirror of
https://github.com/nodejs/node.git
synced 2024-12-01 16:10:02 +01:00
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 multiprocessing
|
||||
import errno
|
||||
import copy
|
||||
|
||||
from os.path import join, dirname, abspath, basename, isdir, exists
|
||||
from datetime import datetime
|
||||
@ -773,7 +774,9 @@ class TestRepository(TestSuite):
|
||||
tests = self.GetConfiguration(context).ListTests(current_path, path,
|
||||
arch, mode)
|
||||
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):
|
||||
self.GetConfiguration(context).GetTestStatus(sections, defs)
|
||||
|
Loading…
Reference in New Issue
Block a user