summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorKyle Altendorf <sda@fstab.net>2017-10-18 23:12:26 -0400
committerEli Bendersky <eliben@users.noreply.github.com>2017-10-18 20:12:26 -0700
commit7547e850a05d84fbe598e6bd1bd03f09bf524ac6 (patch)
tree0a3d3eb9d9937cd3e1ffe6e741cca5162507bb68 /tests
parent988a6afe397a4b7a10bbe929cb1af5607a859006 (diff)
downloadpycparser-7547e850a05d84fbe598e6bd1bd03f09bf524ac6.tar.gz
Format enums with one value per line (#216)
* Format enums with one value per line Issue #213
Diffstat (limited to 'tests')
-rw-r--r--tests/test_c_generator.py32
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()