Home | History | Annotate | Download | only in flavor
      1 #!/usr/bin/env python
      2 #
      3 # Copyright 2016 Google Inc.
      4 #
      5 # Use of this source code is governed by a BSD-style license that can be
      6 # found in the LICENSE file.
      7 
      8 
      9 import default_flavor
     10 import os
     11 
     12 
     13 """Utils for running under Valgrind."""
     14 
     15 
     16 class ValgrindFlavorUtils(default_flavor.DefaultFlavorUtils):
     17   def __init__(self, *args, **kwargs):
     18     super(ValgrindFlavorUtils, self).__init__(*args, **kwargs)
     19     self._suppressions_file = os.path.join(self._bot_info.skia_dir,
     20         'tools', 'valgrind.supp')
     21 
     22   def step(self, name, cmd, **kwargs):
     23     new_cmd = ['valgrind', '--gen-suppressions=all', '--leak-check=full',
     24                '--track-origins=yes', '--error-exitcode=1', '--num-callers=40',
     25                '--suppressions=%s' % self._suppressions_file]
     26     path_to_app = os.path.join(self._bot_info.out_dir,
     27                                self._bot_info.configuration, cmd[0])
     28     new_cmd.append(path_to_app)
     29     new_cmd.extend(cmd[1:])
     30     return self._bot_info.run(new_cmd, **kwargs)
     31 
     32