summaryrefslogtreecommitdiffstats
path: root/tools/generate_stubs
diff options
context:
space:
mode:
authorscottmg@chromium.org <scottmg@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-05-23 23:16:40 +0000
committerscottmg@chromium.org <scottmg@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-05-23 23:16:40 +0000
commitff65a8a959057873f220919692f67b9cfb38e42b (patch)
treeec673ff8fc7a598318b2337704ae55c6d7449013 /tools/generate_stubs
parentd5af2c3abd6bcc4e6923672e4e56fa3d95cab280 (diff)
downloadchromium_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-xtools/generate_stubs/generate_stubs.py19
-rwxr-xr-xtools/generate_stubs/generate_stubs_unittest.py18
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):