diff options
author | Eli Bendersky <eliben@gmail.com> | 2015-04-21 14:35:18 -0700 |
---|---|---|
committer | Eli Bendersky <eliben@gmail.com> | 2015-04-21 14:35:18 -0700 |
commit | b17da15ad70e0062019f6f9a78406410313184e8 (patch) | |
tree | eb9724363ef75db7fefd93f55c0890b7ff66ac14 /tests | |
parent | e936d41acf13ae8995c3cdef01ca641917ef2db4 (diff) | |
download | pycparser-b17da15ad70e0062019f6f9a78406410313184e8.tar.gz |
Add some parser-level tests to PtrDecl qualifiers
Diffstat (limited to 'tests')
-rwxr-xr-x | tests/test_c_parser.py | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/tests/test_c_parser.py b/tests/test_c_parser.py index ff6d0a0..035182d 100755 --- a/tests/test_c_parser.py +++ b/tests/test_c_parser.py @@ -49,7 +49,10 @@ def expand_decl(decl): dimval = decl.dim.value if decl.dim else '' return ['ArrayDecl', dimval, decl.dim_quals, nested] elif typ == PtrDecl: - return ['PtrDecl', nested] + if decl.quals: + return ['PtrDecl', decl.quals, nested] + else: + return ['PtrDecl', nested] elif typ == Typedef: return ['Typedef', decl.name, nested] elif typ == FuncDecl: @@ -301,6 +304,16 @@ class TestCParser_fundamentals(TestCParser_base): ['ArrayDecl', '2', [], ['PtrDecl', ['TypeDecl', ['IdentifierType', ['int']]]]]]]) + self.assertEqual(self.get_decl('char* const* p;'), + ['Decl', 'p', + ['PtrDecl', ['PtrDecl', ['const'], + ['TypeDecl', ['IdentifierType', ['char']]]]]]) + + self.assertEqual(self.get_decl('char* * const p;'), + ['Decl', 'p', + ['PtrDecl', ['const'], ['PtrDecl', + ['TypeDecl', ['IdentifierType', ['char']]]]]]) + self.assertEqual(self.get_decl('char ***ar3D[40];'), ['Decl', 'ar3D', ['ArrayDecl', '40', [], @@ -336,7 +349,6 @@ class TestCParser_fundamentals(TestCParser_base): # explore named and unnamed function pointer parameters, # with and without qualifiers - # # unnamed w/o quals self.assertEqual(self.get_decl('int (*k)(int);'), |