Serialize comparison of multiple baseline images. #7674

Merged
merged 1 commit into from Dec 23, 2016
@@ -317,12 +317,22 @@ def pytest_runner(self):
extensions = map(mark_xfail_if_format_is_uncomparable, self.extensions)
- @mark.parametrize("extension", extensions)
- @mark.parametrize("idx,baseline", enumerate(self.baseline_images))
- @checked_on_freetype_version(self.freetype_version)
- def wrapper(idx, baseline, extension):
- __tracebackhide__ = True
- self.compare(idx, baseline, extension)
+ if len(set(self.baseline_images)) == len(self.baseline_images):
+ @mark.parametrize("extension", extensions)
+ @mark.parametrize("idx,baseline", enumerate(self.baseline_images))
+ @checked_on_freetype_version(self.freetype_version)
+ def wrapper(idx, baseline, extension):
+ __tracebackhide__ = True
+ self.compare(idx, baseline, extension)
+ else:
+ # Some baseline images are repeated, so run this in serial.
+ @mark.parametrize("extension", extensions)
+ @checked_on_freetype_version(self.freetype_version)
+ def wrapper(extension):
+ __tracebackhide__ = True
+ for idx, baseline in enumerate(self.baseline_images):
+ self.compare(idx, baseline, extension)
+
# sadly we cannot use fixture here because of visibility problems
# and for for obvious reason avoid `nose.tools.with_setup`