diff options
author | Kyle Altendorf <sda@fstab.net> | 2017-10-18 23:12:26 -0400 |
---|---|---|
committer | Eli Bendersky <eliben@users.noreply.github.com> | 2017-10-18 20:12:26 -0700 |
commit | 7547e850a05d84fbe598e6bd1bd03f09bf524ac6 (patch) | |
tree | 0a3d3eb9d9937cd3e1ffe6e741cca5162507bb68 /tests/test_c_generator.py | |
parent | 988a6afe397a4b7a10bbe929cb1af5607a859006 (diff) | |
download | pycparser-7547e850a05d84fbe598e6bd1bd03f09bf524ac6.tar.gz |
Format enums with one value per line (#216)
* Format enums with one value per line
Issue #213
Diffstat (limited to 'tests/test_c_generator.py')
-rw-r--r-- | tests/test_c_generator.py | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/tests/test_c_generator.py b/tests/test_c_generator.py index 6d72237..43204c1 100644 --- a/tests/test_c_generator.py +++ b/tests/test_c_generator.py @@ -1,4 +1,5 @@ import sys +import textwrap import unittest # Run from the root dir @@ -280,6 +281,37 @@ class TestCtoC(unittest.TestCase): self._assert_ctoc_correct('int i = ++(int){ 1 };') self._assert_ctoc_correct('struct foo_s foo = (struct foo_s){ 1, 2 };') + def test_enum(self): + s = textwrap.dedent(r''' + enum e + { + a = 1, + b = 2, + c = 3 + }; + '''[1:]) + + self._assert_ctoc_correct(s) + + ast = parse_to_ast(s) + generator = c_generator.CGenerator() + assert generator.visit(ast) == s + + def test_enum_typedef(self): + self._assert_ctoc_correct('typedef enum EnumName EnumTypedefName;') + + def test_generate_struct_union_enum_exception(self): + generator = c_generator.CGenerator() + self.assertRaises( + AssertionError, + generator._generate_struct_union_enum, + n=c_ast.Struct( + name='TestStruct', + decls=[], + ), + name='', + ) + if __name__ == "__main__": unittest.main() |