diff options
author | Xavier Claessens <xavier.claessens@collabora.com> | 2019-07-15 14:06:56 -0400 |
---|---|---|
committer | Xavier Claessens <xavier.claessens@collabora.com> | 2019-07-17 11:52:05 -0400 |
commit | c042912cac003c2077ac6353b8a84b3ddd00d1bf (patch) | |
tree | 96ce0cf6b8ec1a687c09eae767b38218898e25e4 | |
parent | a9b4a1a156ef39336cf7b51e6f91b37dfd31960d (diff) | |
download | gtk-doc-c042912cac003c2077ac6353b8a84b3ddd00d1bf.tar.gz |
Add scanner unit tests for deprecation decorators
-rwxr-xr-x | tests/scan.py | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/tests/scan.py b/tests/scan.py index 57b4603..98fddf7 100755 --- a/tests/scan.py +++ b/tests/scan.py @@ -220,6 +220,39 @@ class ScanHeaderContentEnum(ScanHeaderContentTestCase): header.splitlines(keepends=True)) self.assertDecl('Data', header, slist) + def test_HandleDeprecatedMemberDecorator(self): + header = textwrap.dedent("""\ + typedef enum { + VAL_DEFAULT, + OTHER_VAL MY_DEPRECATED_FOR(VAL_DEFAULT), + } Data;""") + expected = textwrap.dedent("""\ + typedef enum { + VAL_DEFAULT, + OTHER_VAL, + } Data;""") + self.options.ignore_decorators = 'MY_DEPRECATED_FOR()' + slist, doc_comments = self.scanHeaderContent( + header.splitlines(keepends=True)) + self.assertDecl('Data', expected, slist) + + def test_HandleDeprecatedDecorator(self): + header = textwrap.dedent("""\ + typedef enum { + VAL_DEFAULT, + OTHER_VAL, + } Data MY_DEPRECATED_FOR(OtherEnum);""") + expected = textwrap.dedent("""\ + <DEPRECATED/> + typedef enum { + VAL_DEFAULT, + OTHER_VAL, + } Data;""") + self.options.ignore_decorators = 'MY_DEPRECATED_FOR()' + slist, doc_comments = self.scanHeaderContent( + header.splitlines(keepends=True)) + self.assertDecl('Data', expected, slist) + class ScanHeaderContentFunctions(ScanHeaderContentTestCase): """Test parsing of function declarations.""" @@ -364,6 +397,18 @@ class ScanHeaderContentFunctions(ScanHeaderContentTestCase): header.splitlines(keepends=True)) self.assertDecl('func', 'int', 'int a', slist) + @parameterized.expand(INLINE_MODIFIERS) + def test_FindsInlineFunctionWithParenthesisName(self, _, modifier): + header = textwrap.dedent("""\ + %s void + (func) (void) + { + } + """ % modifier) + slist, doc_comments = self.scanHeaderContent( + header.splitlines(keepends=True)) + self.assertDecl('func', 'void', 'void', slist) + class ScanHeaderContentMacros(ScanHeaderContentTestCase): """Test parsing of macro declarations.""" @@ -480,6 +525,28 @@ class ScanHeaderContentStructs(ScanHeaderContentTestCase): header.splitlines(keepends=True)) self.assertIn('<TITLE>GtkdocObject</TITLE>', slist) + def test_DeprecatedDecorator(self): + header = textwrap.dedent("""\ + typedef struct { + int x; + } Data MY_DEPRECATED_FOR(OtherStruct);""") + expected = textwrap.dedent("""\ + <DEPRECATED/> + typedef struct { + int x; + } Data;""") + self.options.ignore_decorators = 'MY_DEPRECATED_FOR()' + slist, doc_comments = self.scanHeaderContent( + header.splitlines(keepends=True)) + self.assertDecl('Data', expected, slist) + + def test_DeprecatedOpaqueStructTypedef(self): + header = 'typedef struct _data data MY_DEPRECATED_FOR(OtherData);' + expected = '<DEPRECATED/>\n' + self.options.ignore_decorators = 'MY_DEPRECATED_FOR()' + slist, doc_comments = self.scanHeaderContent([header]) + self.assertDecl('data', expected, slist) + class ScanHeaderContentUnions(ScanHeaderContentTestCase): """Test parsing of union declarations.""" |