Index: build/android/gyp/java_cpp_enum_tests.py |
diff --git a/build/android/gyp/java_cpp_enum_tests.py b/build/android/gyp/java_cpp_enum_tests.py |
deleted file mode 100755 |
index 44f9766c82c98d6c6bab67764d89ee4bc6640282..0000000000000000000000000000000000000000 |
--- a/build/android/gyp/java_cpp_enum_tests.py |
+++ /dev/null |
@@ -1,436 +0,0 @@ |
-#!/usr/bin/env python |
-# Copyright 2014 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. |
- |
-"""Tests for enum_preprocess.py. |
- |
-This test suite containss various tests for the C++ -> Java enum generator. |
-""" |
- |
-import collections |
-import optparse |
-import os |
-import sys |
-import unittest |
- |
-import java_cpp_enum |
-from java_cpp_enum import EnumDefinition, GenerateOutput, GetScriptName |
-from java_cpp_enum import HeaderParser |
- |
-sys.path.append(os.path.join(os.path.dirname(__file__), "gyp")) |
-from util import build_utils |
- |
-class TestPreprocess(unittest.TestCase): |
- def testOutput(self): |
- definition = EnumDefinition(original_enum_name='ClassName', |
- enum_package='some.package', |
- entries=[('E1', 1), ('E2', '2 << 2')]) |
- output = GenerateOutput('path/to/file', definition) |
- expected = """ |
-// Copyright 2014 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. |
- |
-// This file is autogenerated by |
-// %s |
-// From |
-// path/to/file |
- |
-package some.package; |
- |
-public class ClassName { |
- public static final int E1 = 1; |
- public static final int E2 = 2 << 2; |
-} |
-""" |
- self.assertEqual(expected % GetScriptName(), output) |
- |
- def testParseSimpleEnum(self): |
- test_data = """ |
- // GENERATED_JAVA_ENUM_PACKAGE: test.namespace |
- enum EnumName { |
- VALUE_ZERO, |
- VALUE_ONE, |
- }; |
- """.split('\n') |
- definitions = HeaderParser(test_data).ParseDefinitions() |
- self.assertEqual(1, len(definitions)) |
- definition = definitions[0] |
- self.assertEqual('EnumName', definition.class_name) |
- self.assertEqual('test.namespace', definition.enum_package) |
- self.assertEqual(collections.OrderedDict([('VALUE_ZERO', 0), |
- ('VALUE_ONE', 1)]), |
- definition.entries) |
- |
- def testParseBitShifts(self): |
- test_data = """ |
- // GENERATED_JAVA_ENUM_PACKAGE: test.namespace |
- enum EnumName { |
- VALUE_ZERO = 1 << 0, |
- VALUE_ONE = 1 << 1, |
- }; |
- """.split('\n') |
- definitions = HeaderParser(test_data).ParseDefinitions() |
- self.assertEqual(1, len(definitions)) |
- definition = definitions[0] |
- self.assertEqual('EnumName', definition.class_name) |
- self.assertEqual('test.namespace', definition.enum_package) |
- self.assertEqual(collections.OrderedDict([('VALUE_ZERO', '1 << 0'), |
- ('VALUE_ONE', '1 << 1')]), |
- definition.entries) |
- |
- def testParseClassNameOverride(self): |
- test_data = """ |
- // GENERATED_JAVA_ENUM_PACKAGE: test.namespace |
- // GENERATED_JAVA_CLASS_NAME_OVERRIDE: OverrideName |
- enum EnumName { |
- FOO |
- }; |
- |
- // GENERATED_JAVA_ENUM_PACKAGE: test.namespace |
- // GENERATED_JAVA_CLASS_NAME_OVERRIDE: OtherOverride |
- enum PrefixTest { |
- PREFIX_TEST_A, |
- PREFIX_TEST_B, |
- }; |
- """.split('\n') |
- definitions = HeaderParser(test_data).ParseDefinitions() |
- self.assertEqual(2, len(definitions)) |
- definition = definitions[0] |
- self.assertEqual('OverrideName', definition.class_name) |
- |
- definition = definitions[1] |
- self.assertEqual('OtherOverride', definition.class_name) |
- self.assertEqual(collections.OrderedDict([('A', 0), |
- ('B', 1)]), |
- definition.entries) |
- |
- def testParseTwoEnums(self): |
- test_data = """ |
- // GENERATED_JAVA_ENUM_PACKAGE: test.namespace |
- enum EnumOne { |
- ENUM_ONE_A = 1, |
- // Comment there |
- ENUM_ONE_B = A, |
- }; |
- |
- enum EnumIgnore { |
- C, D, E |
- }; |
- |
- // GENERATED_JAVA_ENUM_PACKAGE: other.package |
- // GENERATED_JAVA_PREFIX_TO_STRIP: P_ |
- enum EnumTwo { |
- P_A, |
- P_B |
- }; |
- """.split('\n') |
- definitions = HeaderParser(test_data).ParseDefinitions() |
- self.assertEqual(2, len(definitions)) |
- definition = definitions[0] |
- self.assertEqual('EnumOne', definition.class_name) |
- self.assertEqual('test.namespace', definition.enum_package) |
- self.assertEqual(collections.OrderedDict([('A', '1'), |
- ('B', 'A')]), |
- definition.entries) |
- |
- definition = definitions[1] |
- self.assertEqual('EnumTwo', definition.class_name) |
- self.assertEqual('other.package', definition.enum_package) |
- self.assertEqual(collections.OrderedDict([('A', 0), |
- ('B', 1)]), |
- definition.entries) |
- |
- def testParseThrowsOnUnknownDirective(self): |
- test_data = """ |
- // GENERATED_JAVA_UNKNOWN: Value |
- enum EnumName { |
- VALUE_ONE, |
- }; |
- """.split('\n') |
- with self.assertRaises(Exception): |
- HeaderParser(test_data).ParseDefinitions() |
- |
- def testParseReturnsEmptyListWithoutDirectives(self): |
- test_data = """ |
- enum EnumName { |
- VALUE_ONE, |
- }; |
- """.split('\n') |
- self.assertEqual([], HeaderParser(test_data).ParseDefinitions()) |
- |
- def testParseEnumClass(self): |
- test_data = """ |
- // GENERATED_JAVA_ENUM_PACKAGE: test.namespace |
- enum class Foo { |
- FOO_A, |
- }; |
- """.split('\n') |
- definitions = HeaderParser(test_data).ParseDefinitions() |
- self.assertEqual(1, len(definitions)) |
- definition = definitions[0] |
- self.assertEqual('Foo', definition.class_name) |
- self.assertEqual('test.namespace', definition.enum_package) |
- self.assertEqual(collections.OrderedDict([('A', 0)]), |
- definition.entries) |
- |
- def testParseEnumStruct(self): |
- test_data = """ |
- // GENERATED_JAVA_ENUM_PACKAGE: test.namespace |
- enum struct Foo { |
- FOO_A, |
- }; |
- """.split('\n') |
- definitions = HeaderParser(test_data).ParseDefinitions() |
- self.assertEqual(1, len(definitions)) |
- definition = definitions[0] |
- self.assertEqual('Foo', definition.class_name) |
- self.assertEqual('test.namespace', definition.enum_package) |
- self.assertEqual(collections.OrderedDict([('A', 0)]), |
- definition.entries) |
- |
- def testParseFixedTypeEnum(self): |
- test_data = """ |
- // GENERATED_JAVA_ENUM_PACKAGE: test.namespace |
- enum Foo : int { |
- FOO_A, |
- }; |
- """.split('\n') |
- definitions = HeaderParser(test_data).ParseDefinitions() |
- self.assertEqual(1, len(definitions)) |
- definition = definitions[0] |
- self.assertEqual('Foo', definition.class_name) |
- self.assertEqual('test.namespace', definition.enum_package) |
- self.assertEqual('int', definition.fixed_type) |
- self.assertEqual(collections.OrderedDict([('A', 0)]), |
- definition.entries) |
- |
- def testParseFixedTypeEnumClass(self): |
- test_data = """ |
- // GENERATED_JAVA_ENUM_PACKAGE: test.namespace |
- enum class Foo: unsigned short { |
- FOO_A, |
- }; |
- """.split('\n') |
- definitions = HeaderParser(test_data).ParseDefinitions() |
- self.assertEqual(1, len(definitions)) |
- definition = definitions[0] |
- self.assertEqual('Foo', definition.class_name) |
- self.assertEqual('test.namespace', definition.enum_package) |
- self.assertEqual('unsigned short', definition.fixed_type) |
- self.assertEqual(collections.OrderedDict([('A', 0)]), |
- definition.entries) |
- |
- def testParseUnknownFixedTypeRaises(self): |
- test_data = """ |
- // GENERATED_JAVA_ENUM_PACKAGE: test.namespace |
- enum class Foo: foo_type { |
- FOO_A, |
- }; |
- """.split('\n') |
- with self.assertRaises(Exception): |
- HeaderParser(test_data).ParseDefinitions() |
- |
- def testParseSimpleMultiLineDirective(self): |
- test_data = """ |
- // GENERATED_JAVA_ENUM_PACKAGE: ( |
- // test.namespace) |
- // GENERATED_JAVA_CLASS_NAME_OVERRIDE: Bar |
- enum Foo { |
- FOO_A, |
- }; |
- """.split('\n') |
- definitions = HeaderParser(test_data).ParseDefinitions() |
- self.assertEqual('test.namespace', definitions[0].enum_package) |
- self.assertEqual('Bar', definitions[0].class_name) |
- |
- def testParseMultiLineDirective(self): |
- test_data = """ |
- // GENERATED_JAVA_ENUM_PACKAGE: (te |
- // st.name |
- // space) |
- enum Foo { |
- FOO_A, |
- }; |
- """.split('\n') |
- definitions = HeaderParser(test_data).ParseDefinitions() |
- self.assertEqual('test.namespace', definitions[0].enum_package) |
- |
- def testParseMultiLineDirectiveWithOtherDirective(self): |
- test_data = """ |
- // GENERATED_JAVA_ENUM_PACKAGE: ( |
- // test.namespace) |
- // GENERATED_JAVA_CLASS_NAME_OVERRIDE: ( |
- // Ba |
- // r |
- // ) |
- enum Foo { |
- FOO_A, |
- }; |
- """.split('\n') |
- definitions = HeaderParser(test_data).ParseDefinitions() |
- self.assertEqual('test.namespace', definitions[0].enum_package) |
- self.assertEqual('Bar', definitions[0].class_name) |
- |
- def testParseMalformedMultiLineDirectiveWithOtherDirective(self): |
- test_data = """ |
- // GENERATED_JAVA_ENUM_PACKAGE: ( |
- // test.name |
- // space |
- // GENERATED_JAVA_CLASS_NAME_OVERRIDE: Bar |
- enum Foo { |
- FOO_A, |
- }; |
- """.split('\n') |
- with self.assertRaises(Exception): |
- HeaderParser(test_data).ParseDefinitions() |
- |
- def testParseMalformedMultiLineDirective(self): |
- test_data = """ |
- // GENERATED_JAVA_ENUM_PACKAGE: ( |
- // test.name |
- // space |
- enum Foo { |
- FOO_A, |
- }; |
- """.split('\n') |
- with self.assertRaises(Exception): |
- HeaderParser(test_data).ParseDefinitions() |
- |
- def testParseMalformedMultiLineDirectiveShort(self): |
- test_data = """ |
- // GENERATED_JAVA_ENUM_PACKAGE: ( |
- enum Foo { |
- FOO_A, |
- }; |
- """.split('\n') |
- with self.assertRaises(Exception): |
- HeaderParser(test_data).ParseDefinitions() |
- |
- def testEnumValueAssignmentNoneDefined(self): |
- definition = EnumDefinition(original_enum_name='c', enum_package='p') |
- definition.AppendEntry('A', None) |
- definition.AppendEntry('B', None) |
- definition.AppendEntry('C', None) |
- definition.Finalize() |
- self.assertEqual(collections.OrderedDict([('A', 0), |
- ('B', 1), |
- ('C', 2)]), |
- definition.entries) |
- |
- def testEnumValueAssignmentAllDefined(self): |
- definition = EnumDefinition(original_enum_name='c', enum_package='p') |
- definition.AppendEntry('A', '1') |
- definition.AppendEntry('B', '2') |
- definition.AppendEntry('C', '3') |
- definition.Finalize() |
- self.assertEqual(collections.OrderedDict([('A', '1'), |
- ('B', '2'), |
- ('C', '3')]), |
- definition.entries) |
- |
- def testEnumValueAssignmentReferences(self): |
- definition = EnumDefinition(original_enum_name='c', enum_package='p') |
- definition.AppendEntry('A', None) |
- definition.AppendEntry('B', 'A') |
- definition.AppendEntry('C', None) |
- definition.AppendEntry('D', 'C') |
- definition.Finalize() |
- self.assertEqual(collections.OrderedDict([('A', 0), |
- ('B', 0), |
- ('C', 1), |
- ('D', 1)]), |
- definition.entries) |
- |
- def testEnumValueAssignmentSet(self): |
- definition = EnumDefinition(original_enum_name='c', enum_package='p') |
- definition.AppendEntry('A', None) |
- definition.AppendEntry('B', '2') |
- definition.AppendEntry('C', None) |
- definition.Finalize() |
- self.assertEqual(collections.OrderedDict([('A', 0), |
- ('B', 2), |
- ('C', 3)]), |
- definition.entries) |
- |
- def testEnumValueAssignmentSetReferences(self): |
- definition = EnumDefinition(original_enum_name='c', enum_package='p') |
- definition.AppendEntry('A', None) |
- definition.AppendEntry('B', 'A') |
- definition.AppendEntry('C', 'B') |
- definition.AppendEntry('D', None) |
- definition.Finalize() |
- self.assertEqual(collections.OrderedDict([('A', 0), |
- ('B', 0), |
- ('C', 0), |
- ('D', 1)]), |
- definition.entries) |
- |
- def testEnumValueAssignmentRaises(self): |
- definition = EnumDefinition(original_enum_name='c', enum_package='p') |
- definition.AppendEntry('A', None) |
- definition.AppendEntry('B', 'foo') |
- definition.AppendEntry('C', None) |
- with self.assertRaises(Exception): |
- definition.Finalize() |
- |
- def testExplicitPrefixStripping(self): |
- definition = EnumDefinition(original_enum_name='c', enum_package='p') |
- definition.AppendEntry('P_A', None) |
- definition.AppendEntry('B', None) |
- definition.AppendEntry('P_C', None) |
- definition.AppendEntry('P_LAST', 'P_C') |
- definition.prefix_to_strip = 'P_' |
- definition.Finalize() |
- self.assertEqual(collections.OrderedDict([('A', 0), |
- ('B', 1), |
- ('C', 2), |
- ('LAST', 2)]), |
- definition.entries) |
- |
- def testImplicitPrefixStripping(self): |
- definition = EnumDefinition(original_enum_name='ClassName', |
- enum_package='p') |
- definition.AppendEntry('CLASS_NAME_A', None) |
- definition.AppendEntry('CLASS_NAME_B', None) |
- definition.AppendEntry('CLASS_NAME_C', None) |
- definition.AppendEntry('CLASS_NAME_LAST', 'CLASS_NAME_C') |
- definition.Finalize() |
- self.assertEqual(collections.OrderedDict([('A', 0), |
- ('B', 1), |
- ('C', 2), |
- ('LAST', 2)]), |
- definition.entries) |
- |
- def testImplicitPrefixStrippingRequiresAllConstantsToBePrefixed(self): |
- definition = EnumDefinition(original_enum_name='Name', |
- enum_package='p') |
- definition.AppendEntry('A', None) |
- definition.AppendEntry('B', None) |
- definition.AppendEntry('NAME_LAST', None) |
- definition.Finalize() |
- self.assertEqual(['A', 'B', 'NAME_LAST'], definition.entries.keys()) |
- |
- def testGenerateThrowsOnEmptyInput(self): |
- with self.assertRaises(Exception): |
- original_do_parse = java_cpp_enum.DoParseHeaderFile |
- try: |
- java_cpp_enum.DoParseHeaderFile = lambda _: [] |
- java_cpp_enum.DoGenerate('dir', ['file']) |
- finally: |
- java_cpp_enum.DoParseHeaderFile = original_do_parse |
- |
-def main(argv): |
- parser = optparse.OptionParser() |
- parser.add_option("--stamp", help="File to touch on success.") |
- options, _ = parser.parse_args(argv) |
- |
- suite = unittest.TestLoader().loadTestsFromTestCase(TestPreprocess) |
- unittest.TextTestRunner(verbosity=0).run(suite) |
- |
- if options.stamp: |
- build_utils.Touch(options.stamp) |
- |
-if __name__ == '__main__': |
- main(sys.argv[1:]) |