blob: 84026a923dda27553134eb59fbd2cd04e15afdd0 [file] [log] [blame]
# Copyright (c) 2014 The Chromium OS Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
import ConfigParser
from autotest_lib.client.cros.image_comparison import pdiff_image_comparer
from autotest_lib.client.cros.image_comparison import publisher
from autotest_lib.client.cros.image_comparison import rgb_image_comparer
from autotest_lib.client.cros.image_comparison import verifier
from import method_logger
class ImageComparisonFactory(object):
Responsible for instantiating objects used in image comparison based tests.
def __init__(self, conf_filepath):
@param conf_filepath: path, full path to the conf file.
self.conf_filepath = conf_filepath
def _load_configuration(self):
Loads values from configuration file.
parser = ConfigParser.SafeConfigParser()
self.pixel_thres = parser.getint('rgb', 'rgb_pixel_threshold')
self.pixel_count_thres = parser.getint('all', 'pixel_count_threshold')
self.desired_comp_h = parser.getint('all', 'desired_comp_h')
self.desired_comp_w = parser.getint('all', 'desired_comp_w')
def make_rgb_comparer(self):
@returns an RGBImageComparer object initialized with config. values.
return rgb_image_comparer.RGBImageComparer(self.pixel_thres)
def make_pdiff_comparer(self):
@returns a PDiffImageComparer object.
return pdiff_image_comparer.PdiffImageComparer()
def make_image_verifier(self, image_comparer, stop_on_first_failure=False):
@param image_comparer: any object that implements compare(). Currently,
it could RGBImageComparer or
@param stop_on_first_failure: bool, True if we should stop the test when
we encounter the first failed comparison.
False if we should continue the test.
@returns a Verifier object initialized with config. values.
if self.desired_comp_h == 0 or self.desired_comp_w == 0:
box = None
box = (0, 0, self.desired_comp_w, self.desired_comp_h)
return verifier.Verifier(image_comparer,
def make_imagediff_publisher(self, results_folder):
@param results_folder: path, where to publish the results to
@returns an ImageDIffPublisher object
return publisher.ImageDiffPublisher(results_folder)