diff options
| author | Takeshi KOMIYA <i.tkomiya@gmail.com> | 2020-04-13 23:36:10 +0900 |
|---|---|---|
| committer | Takeshi KOMIYA <i.tkomiya@gmail.com> | 2020-04-13 23:36:10 +0900 |
| commit | b2a601a33dfb96c2a2257e0f9307a73377351650 (patch) | |
| tree | 1791f5a6e1f947b5b9d54cf3d34ecfdd321eccaf /tests/test_domain_c.py | |
| parent | a4edbc1104189a4443a531675f6cb23a70809e3f (diff) | |
| parent | 86ef8521df8d848c85f0df01943656aa78a10a62 (diff) | |
| download | sphinx-git-b2a601a33dfb96c2a2257e0f9307a73377351650.tar.gz | |
Merge branch '3.0.x' into 3.x
Diffstat (limited to 'tests/test_domain_c.py')
| -rw-r--r-- | tests/test_domain_c.py | 58 |
1 files changed, 27 insertions, 31 deletions
diff --git a/tests/test_domain_c.py b/tests/test_domain_c.py index 012e5c314..9003532e1 100644 --- a/tests/test_domain_c.py +++ b/tests/test_domain_c.py @@ -7,28 +7,20 @@ :copyright: Copyright 2007-2020 by the Sphinx team, see AUTHORS. :license: BSD, see LICENSE for details. """ - -import re - import pytest -from docutils import nodes -import sphinx.domains.c as cDomain from sphinx import addnodes -from sphinx.addnodes import ( - desc, desc_addname, desc_annotation, desc_content, desc_name, desc_optional, - desc_parameter, desc_parameterlist, desc_returns, desc_signature, desc_type, - pending_xref -) from sphinx.domains.c import DefinitionParser, DefinitionError from sphinx.domains.c import _max_id, _id_prefix, Symbol from sphinx.testing import restructuredtext from sphinx.testing.util import assert_node -from sphinx.util import docutils def parse(name, string): - parser = DefinitionParser(string, location=None) + class Config: + c_id_attributes = ["id_attr", 'LIGHTGBM_C_EXPORT'] + c_paren_attributes = ["paren_attr"] + parser = DefinitionParser(string, location=None, config=Config()) parser.allowFallbackExpressionParsing = False ast = parser.parse_declaration(name, name) parser.assert_end() @@ -87,7 +79,10 @@ def check(name, input, idDict, output=None): def test_expressions(): def exprCheck(expr, output=None): - parser = DefinitionParser(expr, location=None) + class Config: + c_id_attributes = ["id_attr"] + c_paren_attributes = ["paren_attr"] + parser = DefinitionParser(expr, location=None, config=Config()) parser.allowFallbackExpressionParsing = False ast = parser.parse_expression() parser.assert_end() @@ -404,24 +399,23 @@ def test_initializers(): def test_attributes(): - return # TODO # style: C++ - check('member', '[[]] int f', {1: 'f__i', 2: '1f'}) - check('member', '[ [ ] ] int f', {1: 'f__i', 2: '1f'}, + check('member', '[[]] int f', {1: 'f'}) + check('member', '[ [ ] ] int f', {1: 'f'}, # this will fail when the proper grammar is implemented output='[[ ]] int f') - check('member', '[[a]] int f', {1: 'f__i', 2: '1f'}) + check('member', '[[a]] int f', {1: 'f'}) # style: GNU - check('member', '__attribute__(()) int f', {1: 'f__i', 2: '1f'}) - check('member', '__attribute__((a)) int f', {1: 'f__i', 2: '1f'}) - check('member', '__attribute__((a, b)) int f', {1: 'f__i', 2: '1f'}) + check('member', '__attribute__(()) int f', {1: 'f'}) + check('member', '__attribute__((a)) int f', {1: 'f'}) + check('member', '__attribute__((a, b)) int f', {1: 'f'}) # style: user-defined id - check('member', 'id_attr int f', {1: 'f__i', 2: '1f'}) + check('member', 'id_attr int f', {1: 'f'}) # style: user-defined paren - check('member', 'paren_attr() int f', {1: 'f__i', 2: '1f'}) - check('member', 'paren_attr(a) int f', {1: 'f__i', 2: '1f'}) - check('member', 'paren_attr("") int f', {1: 'f__i', 2: '1f'}) - check('member', 'paren_attr(()[{}][]{}) int f', {1: 'f__i', 2: '1f'}) + check('member', 'paren_attr() int f', {1: 'f'}) + check('member', 'paren_attr(a) int f', {1: 'f'}) + check('member', 'paren_attr("") int f',{1: 'f'}) + check('member', 'paren_attr(()[{}][]{}) int f', {1: 'f'}) with pytest.raises(DefinitionError): parse('member', 'paren_attr(() int f') with pytest.raises(DefinitionError): @@ -437,18 +431,20 @@ def test_attributes(): # position: decl specs check('function', 'static inline __attribute__(()) void f()', - {1: 'f', 2: '1fv'}, + {1: 'f'}, output='__attribute__(()) static inline void f()') check('function', '[[attr1]] [[attr2]] void f()', - {1: 'f', 2: '1fv'}, + {1: 'f'}, output='[[attr1]] [[attr2]] void f()') # position: declarator - check('member', 'int *[[attr]] i', {1: 'i__iP', 2: '1i'}) - check('member', 'int *const [[attr]] volatile i', {1: 'i__iPVC', 2: '1i'}, + check('member', 'int *[[attr]] i', {1: 'i'}) + check('member', 'int *const [[attr]] volatile i', {1: 'i'}, output='int *[[attr]] volatile const i') - check('member', 'int &[[attr]] i', {1: 'i__iR', 2: '1i'}) - check('member', 'int *[[attr]] *i', {1: 'i__iPP', 2: '1i'}) + check('member', 'int *[[attr]] *i', {1: 'i'}) + # issue michaeljones/breathe#500 + check('function', 'LIGHTGBM_C_EXPORT int LGBM_BoosterFree(int handle)', + {1: 'LGBM_BoosterFree'}) # def test_print(): # # used for getting all the ids out for checking |
