tree: 0d23bfddae2c4557fc1acf54894f78543d470fc6 [path history] [tgz]
  1. BUILD.gn
  2. compatibility_test.cc
  3. compatibility_test_server_cpp.cc
  4. compatibility_test_service.fidl
  5. echo_client_app.cc
  6. echo_client_app.h
  7. README.md
bin/fidl_compatibility_test/README.md

FIDL compatibility test

An integration test for compatability of different FIDL bindings.

The basic logic is along the lines of:

servers = ['go_server', 'cc_server', ...]

for proxy_name in servers:
  for server_name in servers:
    proxy = <start proxy with LaunchPad>
    struct = <construct complicated struct>
    struct.forward_to_server = server_name
    resp = proxy.EchoStruct(struct)
    assert_equal(struct, resp)

Servers should implement the service defined in compatibility_test_service.fidl with logic along the lines of:

def EchoStruct(Struct value, EchoStructCallback callback):
  if value.forward_to_server:
    other_server = <start server with LaunchPad>
    value.forward_to_server = ""  # prevent recursion
    other_server.EchoStruct(value, callback)
  else:
    callback(value)