blob: f2e37ce1535de75db260dd6fadf9c3e061be95f7 [file] [log] [blame]
// Copyright 2019 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "tools/fidlcat/interception_tests/test_library.h"
#include <iostream>
#include <memory>
#include <sstream>
#include <string>
#include "src/lib/fidl_codec/library_loader.h"
// Generated with go/fidlbolt using this text:
// library fidl.examples.echo;
//
// [Discoverable]
// protocol Echo {
// EchoString(string? value) -> (string? response);
// -> OnPong();
// };
std::string echo_service = R"({
"version": "0.0.1",
"name": "fidl.examples.echo",
"library_dependencies": [],
"bits_declarations": [],
"const_declarations": [],
"enum_declarations": [],
"interface_declarations": [
{
"name": "fidl.examples.echo/Echo",
"location": {
"filename": "fidlbolt.fidl",
"line": 4,
"column": 10
},
"maybe_attributes": [
{
"name": "Discoverable",
"value": ""
}
],
"methods": [
{
"ordinal": 2936880781197466513,
"name": "EchoString",
"location": {
"filename": "fidlbolt.fidl",
"line": 5,
"column": 5
},
"has_request": true,
"maybe_request": [
{
"type": {
"kind": "string",
"nullable": true
},
"name": "value",
"location": {
"filename": "fidlbolt.fidl",
"line": 5,
"column": 24
},
"field_shape_v1": {
"offset": 16,
"padding": 0
}
}
],
"maybe_request_payload": "fidl.examples.echo/SomeLongAnonymousPrefix0",
"maybe_request_type_shape_v1": {
"inline_size": 32,
"alignment": 8,
"depth": 1,
"max_handles": 0,
"max_out_of_line": 4294967295,
"has_padding": true,
"has_flexible_envelope": false
},
"has_response": true,
"maybe_response": [
{
"type": {
"kind": "string",
"nullable": true
},
"name": "response",
"location": {
"filename": "fidlbolt.fidl",
"line": 5,
"column": 43
},
"field_shape_v1": {
"offset": 16,
"padding": 0
}
}
],
"maybe_response_payload": "fidl.examples.echo/SomeLongAnonymousPrefix1",
"maybe_response_type_shape_v1": {
"inline_size": 32,
"alignment": 8,
"depth": 1,
"max_handles": 0,
"max_out_of_line": 4294967295,
"has_padding": true,
"has_flexible_envelope": false
},
"is_composed": false
},
{
"ordinal": 1120886698987607603,
"name": "OnPong",
"location": {
"filename": "fidlbolt.fidl",
"line": 6,
"column": 8
},
"has_request": false,
"has_response": true,
"maybe_response": [],
"maybe_response_type_shape_v1": {
"inline_size": 16,
"alignment": 8,
"depth": 0,
"max_handles": 0,
"max_out_of_line": 0,
"has_padding": false,
"has_flexible_envelope": false
},
"is_composed": false
}
]
}
],
"service_declarations": [],
"struct_declarations": [
{
"name": "fidl.examples.echo/SomeLongAnonymousPrefix0",
"location": {
"filename": "fidlbolt.fidl",
"line": 5,
"column": 15
},
"anonymous": true,
"members": [
{
"type": {
"kind": "string",
"nullable": true
},
"name": "value",
"location": {
"filename": "fidlbolt.fidl",
"line": 5,
"column": 24
},
"field_shape_v1": {
"offset": 0,
"padding": 0
}
}
],
"type_shape_v1": {
"inline_size": 16,
"alignment": 8,
"depth": 1,
"max_handles": 0,
"max_out_of_line": 4294967295,
"has_padding": true,
"has_flexible_envelope": false
}
},
{
"name": "fidl.examples.echo/SomeLongAnonymousPrefix1",
"location": {
"filename": "fidlbolt.fidl",
"line": 5,
"column": 34
},
"anonymous": true,
"members": [
{
"type": {
"kind": "string",
"nullable": true
},
"name": "response",
"location": {
"filename": "fidlbolt.fidl",
"line": 5,
"column": 43
},
"field_shape_v1": {
"offset": 0,
"padding": 0
}
}
],
"type_shape_v1": {
"inline_size": 16,
"alignment": 8,
"depth": 1,
"max_handles": 0,
"max_out_of_line": 4294967295,
"has_padding": true,
"has_flexible_envelope": false
}
}
],
"table_declarations": [],
"union_declarations": [],
"type_alias_declarations": [],
"declaration_order": [
"fidl.examples.echo/Echo"
],
"declarations": {
"fidl.examples.echo/Echo": "interface",
"fidl.examples.echo/SomeLongAnonymousPrefix0": "struct",
"fidl.examples.echo/SomeLongAnonymousPrefix1": "struct",
"fidl.examples.echo/SomeLongAnonymousPrefix2": "struct"
}
}
)";
static fidl_codec::LibraryLoader* test_library_loader = nullptr;
fidl_codec::LibraryLoader* GetTestLibraryLoader() {
if (test_library_loader == nullptr) {
test_library_loader = new fidl_codec::LibraryLoader();
fidl_codec::LibraryReadError err;
test_library_loader->AddContent(echo_service, &err);
}
return test_library_loader;
}