Index: tools/json_to_struct/struct_generator_test.py |
diff --git a/tools/json_to_struct/struct_generator_test.py b/tools/json_to_struct/struct_generator_test.py |
new file mode 100755 |
index 0000000000000000000000000000000000000000..8566c335bcd8b198ca03e5e0ba8ac914e2648163 |
--- /dev/null |
+++ b/tools/json_to_struct/struct_generator_test.py |
@@ -0,0 +1,58 @@ |
+#!/usr/bin/env python |
+# Copyright (c) 2012 The Chromium Authors. All rights reserved. |
+# Use of this source code is governed by a BSD-style license that can be |
+# found in the LICENSE file. |
+ |
+from struct_generator import GenerateField |
+from struct_generator import GenerateStruct |
+import unittest |
+ |
+class StructGeneratorTest(unittest.TestCase): |
+ def testGenerateIntField(self): |
+ self.assertEquals('const int foo_bar', |
+ GenerateField({'type': 'int', 'field': 'foo_bar'})) |
+ |
+ def testGenerateStringField(self): |
+ self.assertEquals('const char* const bar_foo', |
+ GenerateField({'type': 'string', 'field': 'bar_foo'})) |
+ |
+ def testGenerateString16Field(self): |
+ self.assertEquals('const wchar_t* const foo_bar', |
+ GenerateField({'type': 'string16', 'field': 'foo_bar'})) |
+ |
+ def testGenerateEnumField(self): |
+ self.assertEquals('const MyEnumType foo_foo', |
+ GenerateField({'type': 'enum', |
+ 'field': 'foo_foo', |
+ 'ctype': 'MyEnumType'})) |
+ |
+ def testGenerateArrayField(self): |
+ self.assertEquals('const int * bar_bar;\n' |
+ ' const size_t bar_bar_size', |
+ GenerateField({'type': 'array', |
+ 'field': 'bar_bar', |
+ 'contents': {'type': 'int'}})) |
+ |
+ def testGenerateStruct(self): |
+ schema = [ |
+ {'type': 'int', 'field': 'foo_bar'}, |
+ {'type': 'string', 'field': 'bar_foo', 'default': 'dummy'}, |
+ { |
+ 'type': 'array', |
+ 'field': 'bar_bar', |
+ 'contents': { |
+ 'type': 'enum', |
+ 'ctype': 'MyEnumType' |
+ } |
+ } |
+ ] |
+ struct = ('struct MyTypeName {\n' |
+ ' const int foo_bar;\n' |
+ ' const char* const bar_foo;\n' |
+ ' const MyEnumType * bar_bar;\n' |
+ ' const size_t bar_bar_size;\n' |
+ '};\n') |
+ self.assertEquals(struct, GenerateStruct('MyTypeName', schema)) |
+ |
+if __name__ == '__main__': |
+ unittest.main() |