summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorXavier Claessens <xavier.claessens@collabora.com>2019-07-15 14:06:56 -0400
committerXavier Claessens <xavier.claessens@collabora.com>2019-07-17 11:52:05 -0400
commitc042912cac003c2077ac6353b8a84b3ddd00d1bf (patch)
tree96ce0cf6b8ec1a687c09eae767b38218898e25e4
parenta9b4a1a156ef39336cf7b51e6f91b37dfd31960d (diff)
downloadgtk-doc-c042912cac003c2077ac6353b8a84b3ddd00d1bf.tar.gz
Add scanner unit tests for deprecation decorators
-rwxr-xr-xtests/scan.py67
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."""