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

Unified Diff: mojo/public/tools/bindings/mojom_bindings_generator_unittest.py

Issue 2794743002: Add a mechanism to scramble Mojo message IDs. (Closed)
Patch Set: Add a mechanism to scramble Mojo message IDs. Created 3 years, 8 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
« no previous file with comments | « mojo/public/tools/bindings/mojom_bindings_generator.py ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: mojo/public/tools/bindings/mojom_bindings_generator_unittest.py
diff --git a/mojo/public/tools/bindings/mojom_bindings_generator_unittest.py b/mojo/public/tools/bindings/mojom_bindings_generator_unittest.py
index de388561cb5ce5c37dbfd9da37f8096909f5adaa..bcffbbb116ef82889e90b3c143ee202a76e7f9d0 100644
--- a/mojo/public/tools/bindings/mojom_bindings_generator_unittest.py
+++ b/mojo/public/tools/bindings/mojom_bindings_generator_unittest.py
@@ -5,6 +5,19 @@
import unittest
from mojom_bindings_generator import MakeImportStackMessage
+from mojom_bindings_generator import ScrambleMethodOrdinals
+
+
+class FakeIface(object):
+ def __init__( self ):
+ self.name = None
+ self.methods = None
+
+
+class FakeMethod(object):
+ def __init__( self ):
+ self.ordinal = None
+ self.ordinal_comment = None
class MojoBindingsGeneratorTest(unittest.TestCase):
@@ -18,6 +31,23 @@ class MojoBindingsGeneratorTest(unittest.TestCase):
self.assertEquals(MakeImportStackMessage(["x", "y", "z"]),
"\n z was imported by y\n y was imported by x")
+ def testScrambleMethodOrdinals(self):
+ """Tests ScrambleMethodOrdinals()."""
+ interface = FakeIface()
+ interface.name = 'RendererConfiguration'
+ interface.methods = [FakeMethod(), FakeMethod(), FakeMethod()]
+ ScrambleMethodOrdinals([interface], "foo")
+ # These next three values are hard-coded. If the generation algorithm
+ # changes from being based on sha256(seed + interface.name + str(i)) then
+ # these numbers will obviously need to change too.
+ #
+ # Note that hashlib.sha256('fooRendererConfiguration1').digest()[:4] is
+ # '\xa5\xbc\xf9\xca' and that hex(1257880741) = '0x4af9bca5'. The
+ # difference in 0x4a vs 0xca is because we only take 31 bits.
+ self.assertEquals(interface.methods[0].ordinal, 1257880741)
+ self.assertEquals(interface.methods[1].ordinal, 631133653)
+ self.assertEquals(interface.methods[2].ordinal, 549336076)
+
if __name__ == "__main__":
unittest.main()
« no previous file with comments | « mojo/public/tools/bindings/mojom_bindings_generator.py ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698