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 9import default_flavor 10import os 11 12 13"""Utils for running under Valgrind.""" 14 15 16class 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