Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(86)

Unified Diff: mojo/public/tools/bindings/pylib/mojom/generate/test_support.py

Issue 2250183003: Make the fuchsia mojo/public repo the source of truth. (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: Created 4 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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

Powered by Google App Engine
This is Rietveld 408576698