diff options
author | scottmg@chromium.org <scottmg@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-05-23 23:16:40 +0000 |
---|---|---|
committer | scottmg@chromium.org <scottmg@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-05-23 23:16:40 +0000 |
commit | ff65a8a959057873f220919692f67b9cfb38e42b (patch) | |
tree | ec673ff8fc7a598318b2337704ae55c6d7449013 /tools/generate_stubs | |
parent | d5af2c3abd6bcc4e6923672e4e56fa3d95cab280 (diff) | |
download | chromium_src-ff65a8a959057873f220919692f67b9cfb38e42b.zip chromium_src-ff65a8a959057873f220919692f67b9cfb38e42b.tar.gz chromium_src-ff65a8a959057873f220919692f67b9cfb38e42b.tar.bz2 |
Suppress output from generate_stubs on success
Avoids printing this every build:
[8079->2182/10278 ~17] RULE Generating FFmpeg import libraries.
Creating library ..\..\out\Debug\lib\avutil-51.lib and object ..\..\out\Debug\lib\avutil-51.exp
[8075->2186/10278 ~17] RULE Generating FFmpeg import libraries.
Creating library ..\..\out\Debug\lib\avcodec-54.lib and object ..\..\out\Debug\lib\avcodec-54.exp
[8072->2189/10278 ~17] RULE Generating FFmpeg import libraries.
Creating library ..\..\out\Debug\lib\avformat-54.lib and object ..\..\out\Debug\lib\avformat-54.exp
BUG=126483
R=thakis@chromium.org
Review URL: https://chromiumcodereview.appspot.com/10432002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@138655 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'tools/generate_stubs')
-rwxr-xr-x | tools/generate_stubs/generate_stubs.py | 19 | ||||
-rwxr-xr-x | tools/generate_stubs/generate_stubs_unittest.py | 18 |
2 files changed, 32 insertions, 5 deletions
diff --git a/tools/generate_stubs/generate_stubs.py b/tools/generate_stubs/generate_stubs.py index 61d606b..424d24f 100755 --- a/tools/generate_stubs/generate_stubs.py +++ b/tools/generate_stubs/generate_stubs.py @@ -36,6 +36,7 @@ import os import re import string import subprocess +import sys class Error(Exception): @@ -439,6 +440,17 @@ def WriteWindowsDefFile(module_name, signatures, outfile): outfile.write(' %s\n' % sig['name']) +def QuietRun(args, filter=None, write_to=sys.stdout): + """Invoke |args| as command via subprocess.Popen, filtering lines starting + with |filter|.""" + popen = subprocess.Popen(args, stdout=subprocess.PIPE) + out, _ = popen.communicate() + for line in out.splitlines(): + if not filter or not line.startswith(filter): + write_to.write(line + '\n') + return popen.returncode + + def CreateWindowsLib(module_name, signatures, intermediate_dir, outdir_path): """Creates a windows library file. @@ -470,9 +482,10 @@ def CreateWindowsLib(module_name, signatures, intermediate_dir, outdir_path): # Invoke the "lib" program on Windows to create stub .lib files for the # generated definitions. These .lib files can then be used during # delayloading of the dynamic libraries. - ret = subprocess.call(['lib', '/nologo', '/machine:X86', - '/def:' + def_file_path, - '/out:' + lib_file_path]) + ret = QuietRun(['lib', '/nologo', '/machine:X86', + '/def:' + def_file_path, + '/out:' + lib_file_path], + filter=' Creating library') if ret != 0: raise SubprocessError( 'Failed creating %s for %s' % (lib_file_path, def_file_path), diff --git a/tools/generate_stubs/generate_stubs_unittest.py b/tools/generate_stubs/generate_stubs_unittest.py index 10936f1..13a2bc1 100755 --- a/tools/generate_stubs/generate_stubs_unittest.py +++ b/tools/generate_stubs/generate_stubs_unittest.py @@ -1,5 +1,5 @@ #!/usr/bin/env python -# Copyright (c) 2011 The Chromium Authors. All rights reserved. +# Copyright (c) 2012 The Chromium Authors. All rights reserved. # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. @@ -19,10 +19,11 @@ errors or positioning. Most of that should be caught really fast anyways during any attempt to use a badly behaving script. """ +import generate_stubs as gs import re import StringIO +import sys import unittest -import generate_stubs as gs def _MakeSignature(return_type, name, params): @@ -141,6 +142,19 @@ EXPORTS self.assertTrue(re.search(pattern, contents), msg='Expected match of "%s" in %s' % (pattern, contents)) + def testQuietRun(self): + output = StringIO.StringIO() + gs.QuietRun([sys.executable, + '-c', 'print "line 1 and suffix\\nline 2"'], + write_to=output) + self.assertEqual('line 1 and suffix\nline 2\n', output.getvalue()) + + output = StringIO.StringIO() + gs.QuietRun([sys.executable, + '-c', 'print "line 1 and suffix\\nline 2"'], + filter='line 1', write_to=output) + self.assertEqual('line 2\n', output.getvalue()) + class PosixStubWriterUnittest(unittest.TestCase): def setUp(self): |