summaryrefslogtreecommitdiffstats
path: root/clang/bindings
diff options
context:
space:
mode:
authorJonathan Coe <jbcoe@me.com>2018-06-21 20:07:03 +0000
committerJonathan Coe <jbcoe@me.com>2018-06-21 20:07:03 +0000
commitaef6c79d28be9d1a4703b585539f2005e2315d36 (patch)
treed8f486becfa78f7a50da070c3ff5d9b260b9fd78 /clang/bindings
parent1e8c2c705dcdecc2dd75732c3c8cb14f82d65890 (diff)
downloadbcm5719-llvm-aef6c79d28be9d1a4703b585539f2005e2315d36.tar.gz
bcm5719-llvm-aef6c79d28be9d1a4703b585539f2005e2315d36.zip
[bindings] Fix most Python binding unittests on Windows
Summary: This fixes all but one of the test cases for Windows. TestCDB will take more work to debug, as CompilationDatabase seems not to work correctly. Reviewers: bkramer, wanders, jbcoe Reviewed By: bkramer, jbcoe Subscribers: cfe-commits Differential Revision: https://reviews.llvm.org/D47864 Patch written by ethanhs (Ethan) llvm-svn: 335282
Diffstat (limited to 'clang/bindings')
-rw-r--r--clang/bindings/python/tests/cindex/test_cdb.py2
-rw-r--r--clang/bindings/python/tests/cindex/test_cursor.py4
-rw-r--r--clang/bindings/python/tests/cindex/test_translation_unit.py37
3 files changed, 21 insertions, 22 deletions
diff --git a/clang/bindings/python/tests/cindex/test_cdb.py b/clang/bindings/python/tests/cindex/test_cdb.py
index bd6e77329f6..64651af3173 100644
--- a/clang/bindings/python/tests/cindex/test_cdb.py
+++ b/clang/bindings/python/tests/cindex/test_cdb.py
@@ -5,11 +5,13 @@ from clang.cindex import CompileCommand
import os
import gc
import unittest
+import sys
kInputsDir = os.path.join(os.path.dirname(__file__), 'INPUTS')
+@unittest.skipIf(sys.platform == 'win32', "TODO: Fix these tests on Windows")
class TestCDB(unittest.TestCase):
def test_create_fail(self):
"""Check we fail loading a database with an assertion"""
diff --git a/clang/bindings/python/tests/cindex/test_cursor.py b/clang/bindings/python/tests/cindex/test_cursor.py
index 2575ffb8a51..f5733fd1587 100644
--- a/clang/bindings/python/tests/cindex/test_cursor.py
+++ b/clang/bindings/python/tests/cindex/test_cursor.py
@@ -335,7 +335,7 @@ class TestCursor(unittest.TestCase):
self.assertEqual(enum.kind, CursorKind.ENUM_DECL)
enum_type = enum.enum_type
- self.assertEqual(enum_type.kind, TypeKind.UINT)
+ self.assertIn(enum_type.kind, (TypeKind.UINT, TypeKind.INT))
def test_enum_type_cpp(self):
tu = get_tu('enum TEST : long long { FOO=1, BAR=2 };', lang="cpp")
@@ -561,4 +561,4 @@ class TestCursor(unittest.TestCase):
# all valid manglings.
# [c-index-test handles this by running the source through clang, emitting
# an AST file and running libclang on that AST file]
- self.assertIn(foo.mangled_name, ('_Z3fooii', '__Z3fooii', '?foo@@YAHHH'))
+ self.assertIn(foo.mangled_name, ('_Z3fooii', '__Z3fooii', '?foo@@YAHHH', '?foo@@YAHHH@Z'))
diff --git a/clang/bindings/python/tests/cindex/test_translation_unit.py b/clang/bindings/python/tests/cindex/test_translation_unit.py
index 09230d1da2d..d3ee535f4d0 100644
--- a/clang/bindings/python/tests/cindex/test_translation_unit.py
+++ b/clang/bindings/python/tests/cindex/test_translation_unit.py
@@ -1,3 +1,4 @@
+from contextlib import contextmanager
import gc
import os
import tempfile
@@ -19,15 +20,15 @@ from .util import get_tu
kInputsDir = os.path.join(os.path.dirname(__file__), 'INPUTS')
+@contextmanager
def save_tu(tu):
"""Convenience API to save a TranslationUnit to a file.
Returns the filename it was saved to.
"""
- _, path = tempfile.mkstemp()
- tu.save(path)
-
- return path
+ with tempfile.NamedTemporaryFile() as t:
+ tu.save(t.name)
+ yield t.name
class TestTranslationUnit(unittest.TestCase):
@@ -125,10 +126,9 @@ int SOME_DEFINE;
tu = get_tu('int foo();')
- path = save_tu(tu)
- self.assertTrue(os.path.exists(path))
- self.assertGreater(os.path.getsize(path), 0)
- os.unlink(path)
+ with save_tu(tu) as path:
+ self.assertTrue(os.path.exists(path))
+ self.assertGreater(os.path.getsize(path), 0)
def test_save_translation_errors(self):
"""Ensure that saving to an invalid directory raises."""
@@ -149,21 +149,18 @@ int SOME_DEFINE;
tu = get_tu('int foo();')
self.assertEqual(len(tu.diagnostics), 0)
- path = save_tu(tu)
-
- self.assertTrue(os.path.exists(path))
- self.assertGreater(os.path.getsize(path), 0)
-
- tu2 = TranslationUnit.from_ast_file(filename=path)
- self.assertEqual(len(tu2.diagnostics), 0)
+ with save_tu(tu) as path:
+ self.assertTrue(os.path.exists(path))
+ self.assertGreater(os.path.getsize(path), 0)
- foo = get_cursor(tu2, 'foo')
- self.assertIsNotNone(foo)
+ tu2 = TranslationUnit.from_ast_file(filename=path)
+ self.assertEqual(len(tu2.diagnostics), 0)
- # Just in case there is an open file descriptor somewhere.
- del tu2
+ foo = get_cursor(tu2, 'foo')
+ self.assertIsNotNone(foo)
- os.unlink(path)
+ # Just in case there is an open file descriptor somewhere.
+ del tu2
def test_index_parse(self):
path = os.path.join(kInputsDir, 'hello.cpp')
OpenPOWER on IntegriCloud