Index: tools/json_schema_compiler/cpp_bundle_generator_test.py |
diff --git a/tools/json_schema_compiler/cpp_bundle_generator_test.py b/tools/json_schema_compiler/cpp_bundle_generator_test.py |
new file mode 100755 |
index 0000000000000000000000000000000000000000..2241ecd95ed06dd27022901979a53830c455bb68 |
--- /dev/null |
+++ b/tools/json_schema_compiler/cpp_bundle_generator_test.py |
@@ -0,0 +1,50 @@ |
+#!/usr/bin/env python |
+# Copyright 2016 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 cpp_bundle_generator import CppBundleGenerator |
+from model import Model |
+ |
+import json_schema |
+import os |
+import unittest |
+ |
+def _createCppBundleGenerator(file_path): |
+ json_object = json_schema.Load(file_path) |
+ model = Model() |
+ model.AddNamespace(json_object[0], file_path) |
+ cpp_bundle_generator = CppBundleGenerator( |
+ None, model, None, None, 'generated_api_schemas', |
+ None, None, None) |
+ return (cpp_bundle_generator, model) |
+ |
+def _getPlatformIfdefs(cpp_bundle_generator, model): |
+ return cpp_bundle_generator._GetPlatformIfdefs( |
+ model.namespaces.values()[0].functions.values()[0]) |
+ |
+class CppBundleGeneratorTest(unittest.TestCase): |
+ def testIfDefsForWinLinux(self): |
+ cpp_bundle_generator, model = _createCppBundleGenerator( |
+ 'test/function_platform_win_linux.json') |
+ self.assertEquals( |
+ 'defined(OS_WIN) || (defined(OS_LINUX) && !defined(OS_CHROMEOS))', |
+ _getPlatformIfdefs(cpp_bundle_generator, model)) |
+ |
+ def testIfDefsForAll(self): |
+ cpp_bundle_generator, model = _createCppBundleGenerator( |
+ 'test/function_platform_all.json') |
+ self.assertEquals( |
+ 'defined(OS_WIN) || (defined(OS_LINUX) && !defined(OS_CHROMEOS)) || ' |
+ 'defined(OS_CHROMEOS)', |
+ _getPlatformIfdefs(cpp_bundle_generator, model)) |
+ |
+ def testIfDefsForChromeOS(self): |
+ cpp_bundle_generator, model = _createCppBundleGenerator( |
+ 'test/function_platform_chromeos.json') |
+ self.assertEquals( |
+ 'defined(OS_CHROMEOS)', |
+ _getPlatformIfdefs(cpp_bundle_generator, model)) |
+ |
+if __name__ == '__main__': |
+ unittest.main() |