From 2374bff376c6cf54fbea55c739a30968663a5cf1 Mon Sep 17 00:00:00 2001 From: Fangrui Song Date: Wed, 3 Apr 2019 07:25:04 +0000 Subject: [PATCH] [libclang][test] Suppress annoying 'LIBCLANG TOOLING ERROR' output check-all invokes check-clang-python which prints the annoying message: LIBCLANG TOOLING ERROR: fixed-compilation-database: Error while opening fixed database: No such file or directory json-compilation-database: Error while opening JSON database: No such file or directory Let's fix it now with os.dup os.dup2 trick. llvm-svn: 357562 --- clang/bindings/python/tests/cindex/test_cdb.py | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/clang/bindings/python/tests/cindex/test_cdb.py b/clang/bindings/python/tests/cindex/test_cdb.py index 589fc72..e2a48f1 100644 --- a/clang/bindings/python/tests/cindex/test_cdb.py +++ b/clang/bindings/python/tests/cindex/test_cdb.py @@ -23,8 +23,17 @@ class TestCDB(unittest.TestCase): def test_create_fail(self): """Check we fail loading a database with an assertion""" path = os.path.dirname(__file__) + + # clang_CompilationDatabase_fromDirectory calls fprintf(stderr, ...) + # Suppress its output. + stderr = os.dup(2) + with open(os.devnull, 'wb') as null: + os.dup2(null.fileno(), 2) with self.assertRaises(CompilationDatabaseError) as cm: cdb = CompilationDatabase.fromDirectory(path) + os.dup2(stderr, 2) + os.close(stderr) + e = cm.exception self.assertEqual(e.cdb_error, CompilationDatabaseError.ERROR_CANNOTLOADDATABASE) -- 2.7.4