#!/usr/bin/env python
# Copyright 2015 The PDFium 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 os

import common

class Suppressor:
  SUPPRESSIONS_FILENAME = 'SUPPRESSIONS'
  PLATFORM_SUPPRESSIONS_FILENAME = 'SUPPRESSIONS_%s' % common.os_name()

  def __init__(self, finder):
    testing_dir = finder.TestingDir()
    self.suppression_list = self._ExtractSuppressions(
      os.path.join(testing_dir, self.SUPPRESSIONS_FILENAME))
    self.platform_suppression_list = self._ExtractSuppressions(
      os.path.join(testing_dir, self.PLATFORM_SUPPRESSIONS_FILENAME))

  def _ExtractSuppressions(self, suppressions_filename):
    with open(suppressions_filename) as f:
      return [y for y in [x.split('#')[0].strip() for x in f.readlines()] if y]

  def IsSuppressed(self, input_filename):
    if input_filename in self.suppression_list:
      print ("%s is suppressed, found in %s file" %
             (input_filename, self.SUPPRESSIONS_FILENAME))
      return True
    if input_filename in self.platform_suppression_list:
      print ("%s is suppressed, found in %s file" %
             (input_filename, self.PLATFORM_SUPPRESSIONS_FILENAME))
      return True
    return False