Index: mojo/public/tools/bindings/pylib/mojom/generate/test_support.py |
diff --git a/mojo/public/tools/bindings/pylib/mojom/generate/test_support.py b/mojo/public/tools/bindings/pylib/mojom/generate/test_support.py |
deleted file mode 100644 |
index eb394619d2bf4855522d7157dff0d13e87c59850..0000000000000000000000000000000000000000 |
--- a/mojo/public/tools/bindings/pylib/mojom/generate/test_support.py |
+++ /dev/null |
@@ -1,193 +0,0 @@ |
-# Copyright 2013 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. |
- |
-import sys |
-import traceback |
- |
-import module as mojom |
- |
-# Support for writing mojom test cases. |
-# RunTest(fn) will execute fn, catching any exceptions. fn should return |
-# the number of errors that are encountered. |
-# |
-# EXPECT_EQ(a, b) and EXPECT_TRUE(b) will print error information if the |
-# expectations are not true and return a non zero value. This allows test cases |
-# to be written like this |
-# |
-# def Foo(): |
-# errors = 0 |
-# errors += EXPECT_EQ('test', test()) |
-# ... |
-# return errors |
-# |
-# RunTest(foo) |
- |
-def FieldsAreEqual(field1, field2): |
- if field1 == field2: |
- return True |
- return field1.name == field2.name and \ |
- KindsAreEqual(field1.kind, field2.kind) and \ |
- field1.ordinal == field2.ordinal and \ |
- field1.default == field2.default |
- |
- |
-def KindsAreEqual(kind1, kind2): |
- if kind1 == kind2: |
- return True |
- if kind1.__class__ != kind2.__class__ or kind1.spec != kind2.spec: |
- return False |
- if kind1.__class__ == mojom.Kind: |
- return kind1.spec == kind2.spec |
- if kind1.__class__ == mojom.Struct: |
- if kind1.name != kind2.name or \ |
- kind1.spec != kind2.spec or \ |
- len(kind1.fields) != len(kind2.fields): |
- return False |
- for i in range(len(kind1.fields)): |
- if not FieldsAreEqual(kind1.fields[i], kind2.fields[i]): |
- return False |
- return True |
- if kind1.__class__ == mojom.Array: |
- return KindsAreEqual(kind1.kind, kind2.kind) |
- print 'Unknown Kind class: ', kind1.__class__.__name__ |
- return False |
- |
- |
-def ParametersAreEqual(parameter1, parameter2): |
- if parameter1 == parameter2: |
- return True |
- return parameter1.name == parameter2.name and \ |
- parameter1.ordinal == parameter2.ordinal and \ |
- parameter1.default == parameter2.default and \ |
- KindsAreEqual(parameter1.kind, parameter2.kind) |
- |
- |
-def MethodsAreEqual(method1, method2): |
- if method1 == method2: |
- return True |
- if method1.name != method2.name or \ |
- method1.ordinal != method2.ordinal or \ |
- len(method1.parameters) != len(method2.parameters): |
- return False |
- for i in range(len(method1.parameters)): |
- if not ParametersAreEqual(method1.parameters[i], method2.parameters[i]): |
- return False |
- return True |
- |
- |
-def InterfacesAreEqual(interface1, interface2): |
- if interface1 == interface2: |
- return True |
- if interface1.name != interface2.name or \ |
- len(interface1.methods) != len(interface2.methods): |
- return False |
- for i in range(len(interface1.methods)): |
- if not MethodsAreEqual(interface1.methods[i], interface2.methods[i]): |
- return False |
- return True |
- |
- |
-def ModulesAreEqual(module1, module2): |
- if module1 == module2: |
- return True |
- if module1.name != module2.name or \ |
- module1.namespace != module2.namespace or \ |
- len(module1.structs) != len(module2.structs) or \ |
- len(module1.interfaces) != len(module2.interfaces): |
- return False |
- for i in range(len(module1.structs)): |
- if not KindsAreEqual(module1.structs[i], module2.structs[i]): |
- return False |
- for i in range(len(module1.interfaces)): |
- if not InterfacesAreEqual(module1.interfaces[i], module2.interfaces[i]): |
- return False |
- return True |
- |
- |
-# Builds and returns a Module suitable for testing/ |
-def BuildTestModule(): |
- module = mojom.Module('test', 'testspace') |
- struct = module.AddStruct('teststruct') |
- struct.AddField('testfield1', mojom.INT32) |
- struct.AddField('testfield2', mojom.Array(mojom.INT32), 42) |
- |
- interface = module.AddInterface('Server') |
- method = interface.AddMethod('Foo', 42) |
- method.AddParameter('foo', mojom.INT32) |
- method.AddParameter('bar', mojom.Array(struct)) |
- |
- return module |
- |
- |
-# Tests if |module| is as built by BuildTestModule(). Returns the number of |
-# errors |
-def TestTestModule(module): |
- errors = 0 |
- |
- errors += EXPECT_EQ('test', module.name) |
- errors += EXPECT_EQ('testspace', module.namespace) |
- errors += EXPECT_EQ(1, len(module.structs)) |
- errors += EXPECT_EQ('teststruct', module.structs[0].name) |
- errors += EXPECT_EQ(2, len(module.structs[0].fields)) |
- errors += EXPECT_EQ('testfield1', module.structs[0].fields[0].name) |
- errors += EXPECT_EQ(mojom.INT32, module.structs[0].fields[0].kind) |
- errors += EXPECT_EQ('testfield2', module.structs[0].fields[1].name) |
- errors += EXPECT_EQ(mojom.Array, module.structs[0].fields[1].kind.__class__) |
- errors += EXPECT_EQ(mojom.INT32, module.structs[0].fields[1].kind.kind) |
- |
- errors += EXPECT_EQ(1, len(module.interfaces)) |
- errors += EXPECT_EQ('Server', module.interfaces[0].name) |
- errors += EXPECT_EQ(1, len(module.interfaces[0].methods)) |
- errors += EXPECT_EQ('Foo', module.interfaces[0].methods[0].name) |
- errors += EXPECT_EQ(2, len(module.interfaces[0].methods[0].parameters)) |
- errors += EXPECT_EQ('foo', module.interfaces[0].methods[0].parameters[0].name) |
- errors += EXPECT_EQ(mojom.INT32, |
- module.interfaces[0].methods[0].parameters[0].kind) |
- errors += EXPECT_EQ('bar', module.interfaces[0].methods[0].parameters[1].name) |
- errors += EXPECT_EQ( |
- mojom.Array, |
- module.interfaces[0].methods[0].parameters[1].kind.__class__) |
- errors += EXPECT_EQ( |
- module.structs[0], |
- module.interfaces[0].methods[0].parameters[1].kind.kind) |
- return errors |
- |
- |
-def PrintFailure(string): |
- stack = traceback.extract_stack() |
- frame = stack[len(stack)-3] |
- sys.stderr.write("ERROR at %s:%d, %s\n" % (frame[0], frame[1], string)) |
- print "Traceback:" |
- for line in traceback.format_list(stack[:len(stack)-2]): |
- sys.stderr.write(line) |
- |
- |
-def EXPECT_EQ(a, b): |
- if a != b: |
- PrintFailure("%s != %s" % (a, b)) |
- return 1 |
- return 0 |
- |
- |
-def EXPECT_TRUE(a): |
- if not a: |
- PrintFailure('Expecting True') |
- return 1 |
- return 0 |
- |
- |
-def RunTest(fn): |
- sys.stdout.write('Running %s...' % fn.__name__) |
- try: |
- errors = fn() |
- except: |
- traceback.print_exc(sys.stderr) |
- errors = 1 |
- if errors == 0: |
- sys.stdout.write('OK\n') |
- elif errors == 1: |
- sys.stdout.write('1 ERROR\n') |
- else: |
- sys.stdout.write('%d ERRORS\n' % errors) |
- return errors |