Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit ed1c08b5 authored by Chris Manton's avatar Chris Manton
Browse files

More precise generated file naming

Add flatbuffer library to headless test

Bug: 157647700
Test: atest --host bluetooth_test_gd
Tag: #gd-refactor
Change-Id: I67ce19ab50b296e3d04dd76d284ab070104d65a5
parent 40b80ada
Loading
Loading
Loading
Loading
+18 −14
Original line number Diff line number Diff line
@@ -149,10 +149,10 @@ cc_defaults {
        ":BluetoothStorageSources",
    ],
    generated_headers: [
        "BluetoothGeneratedBundler_h",
        "BluetoothGeneratedFlatbuffers_h",
        "BluetoothGeneratedBundlerSchema_h_bfbs",
        "BluetoothGeneratedDumpsysDataSchema_h",
        "BluetoothGeneratedDumpsysModuleSchema_h",
        "BluetoothGeneratedPackets_h",
        "BluetoothGeneratedDumpsysData_h",
    ],
    shared_libs: [
        "libchrome",
@@ -204,7 +204,9 @@ cc_binary {
    ],
    generated_headers: [
        "BluetoothFacadeGeneratedStub_h",
        "BluetoothGeneratedDumpsysData_h",
        "BluetoothGeneratedBundlerSchema_h_bfbs",
        "BluetoothGeneratedDumpsysDataSchema_h",
        "BluetoothGeneratedDumpsysModuleSchema_h",
        "BluetoothGeneratedPackets_h",
        // Needed here to guarantee that generated zip file is created before
        // bluetooth_cert_tests.zip is packaged
@@ -293,7 +295,9 @@ cc_test {
        ":BluetoothStorageTestSources",
    ],
    generated_headers: [
        "BluetoothGeneratedDumpsysData_h",
        "BluetoothGeneratedBundlerSchema_h_bfbs",
        "BluetoothGeneratedDumpsysDataSchema_h",
        "BluetoothGeneratedDumpsysModuleSchema_h",
        "BluetoothGeneratedPackets_h",
    ],
    static_libs: [
@@ -349,7 +353,9 @@ cc_defaults {
    ],
    host_supported: true,
    generated_headers: [
        "BluetoothGeneratedDumpsysData_h",
        "BluetoothGeneratedBundlerSchema_h_bfbs",
        "BluetoothGeneratedDumpsysDataSchema_h",
        "BluetoothGeneratedDumpsysModuleSchema_h",
        "BluetoothGeneratedPackets_h",
    ],
    shared_libs: [
@@ -441,7 +447,7 @@ genrule {

// Generates binary schema data to be bundled and source file generated
genrule {
    name: "BluetoothGeneratedModuleSchemaData_h",
    name: "BluetoothGeneratedDumpsysBinarySchema_bfbs",
    tools: [
        "flatc",
    ],
@@ -457,7 +463,7 @@ genrule {
}

genrule {
    name: "BluetoothGeneratedDumpsysData_h",
    name: "BluetoothGeneratedDumpsysDataSchema_h",
    tools: [
        "flatc",
    ],
@@ -472,19 +478,17 @@ genrule {
    ],
}

// Generates binary bundled source file for inclusion into library
genrule {
    name: "BluetoothGeneratedFlatbuffers_h",
    name: "BluetoothGeneratedDumpsysModuleSchema_h",
    tools: [
            "bluetooth_flatbuffer_bundler",
    ],
    cmd: "$(location bluetooth_flatbuffer_bundler) -w -m bluetooth.DumpsysData -f module_schema_data -n bluetooth::dumpsys -g $(genDir) $(locations :BluetoothGeneratedModuleSchemaData_h)",
    cmd: "$(location bluetooth_flatbuffer_bundler) -w -m bluetooth.DumpsysData -f dumpsys_module_schema_data -n bluetooth::dumpsys -g $(genDir) $(locations :BluetoothGeneratedDumpsysBinarySchema_bfbs)",
    srcs: [
        "*.bfbs",
        ":BluetoothGeneratedModuleSchemaData_h",
        ":BluetoothGeneratedDumpsysBinarySchema_bfbs",
    ],
    out: [
         "module_schema_data.h",
         "dumpsys_module_schema_data.h",
    ],
}

+20 −19
Original line number Diff line number Diff line
@@ -15,7 +15,7 @@ filegroup {
}

genrule {
    name: "BluetoothGeneratedBundler_h",
    name: "BluetoothGeneratedBundlerSchema_h_bfbs",
    tools: [
        "flatc",
    ],
@@ -28,43 +28,44 @@ genrule {
    ],
}

cc_binary_host {
    name: "bluetooth_flatbuffer_bundler",
cc_defaults {
    name: "bluetooth_flatbuffer_bundler_defaults",
    cpp_std: "c++17",
    cflags: [
        "-Wall",
        "-Werror",
        "-Wno-unused-parameter",
        "-Wno-unused-variable",
    ],
    srcs: [
        ":BluetoothFlatbufferBundlerSources",
    ],
    generated_headers: [
        "BluetoothGeneratedBundler_h",
        "BluetoothGeneratedBundlerSchema_h_bfbs",
    ],
    sanitize: {
        misc_undefined: ["bounds"],
    },
    static_libs: [
        "libflatbuffers-cpp",
    ],
}

cc_binary_host {
    name: "bluetooth_flatbuffer_bundler",
    srcs: [
        ":BluetoothFlatbufferBundlerSources",
    ],
    defaults: [
        "bluetooth_flatbuffer_bundler_defaults",
    ],
}

cc_test {
    name: "bluetooth_flatbuffer_bundler_test",
    host_supported: true,
    cflags: [
        "-Wall",
        "-Werror",
        "-Wno-unused-parameter",
        "-Wno-unused-variable",
        "-DUSE_TEST_GENERATED",
    ],
    srcs: [
        ":BluetoothFlatbufferBundlerTestSources",
    ],
    generated_headers: [
        "BluetoothGeneratedBundler_h",
    ],
    static_libs: [
        "libflatbuffers-cpp",
    defaults: [
        "bluetooth_flatbuffer_bundler_defaults",
    ],
    data: [
        "test.bfbs",
+6 −6
Original line number Diff line number Diff line
@@ -76,7 +76,7 @@ bool VerifyBinarySchema(const std::vector<const uint8_t>& raw_schema) {
bool CreateBinarySchemaBundle(
    flatbuffers::FlatBufferBuilder* builder,
    const std::vector<std::string>& filenames,
    std::vector<flatbuffers::Offset<BundleSchemaMap>>* vector_map) {
    std::vector<flatbuffers::Offset<BundledSchemaMap>>* vector_map) {
  assert(builder != nullptr);
  assert(vector_map != nullptr);

@@ -100,7 +100,7 @@ bool CreateBinarySchemaBundle(

    auto name = builder->CreateString(schema->root_table()->name()->str());
    auto data = builder->CreateVector<uint8_t>(raw_schema.data(), raw_schema.size());
    vector_map->push_back(CreateBundleSchemaMap(*builder, name, data));
    vector_map->push_back(CreateBundledSchemaMap(*builder, name, data));

    if (opts.verbose) {
      fprintf(stdout, "Bundled binary schema file:%s\n", schema->root_table()->name()->c_str());
@@ -183,8 +183,8 @@ int ReadBundledSchema() {
    return -5;
  }

  auto bundle_schema = flatbuffers::GetRoot<BundleSchema>(flatfile_data.c_str());
  const flatbuffers::Vector<flatbuffers::Offset<BundleSchemaMap>>* map = bundle_schema->map();
  auto bundle_schema = flatbuffers::GetRoot<BundledSchema>(flatfile_data.c_str());
  const flatbuffers::Vector<flatbuffers::Offset<BundledSchemaMap>>* map = bundle_schema->map();

  fprintf(stdout, "Bundle schema title:%s\n", bundle_schema->title()->c_str());
  fprintf(stdout, "Bundle schema root_name:%s\n", bundle_schema->root_name()->c_str());
@@ -216,14 +216,14 @@ int WriteBundledSchema() {

  flatbuffers::FlatBufferBuilder builder(1024);

  std::vector<flatbuffers::Offset<BundleSchemaMap>> vector_map;
  std::vector<flatbuffers::Offset<BundledSchemaMap>> vector_map;
  if (!CreateBinarySchemaBundle(&builder, bfbs_filenames, &vector_map)) {
    fprintf(stderr, "Unable to bundle schema bfbs files\n");
    return EXIT_FAILURE;
  }

  auto title = "Bundled schema tables";
  auto schema_offset = CreateBundleSchemaDirect(builder, title, main_root_name, &vector_map);
  auto schema_offset = CreateBundledSchemaDirect(builder, title, main_root_name, &vector_map);
  builder.Finish(schema_offset);

  std::string final_filename(opts.gen);
+5 −5
Original line number Diff line number Diff line
// Bundle Schema
// Bundled Schema
//
// Describes a collection of binary flatbuffer schema.
//

namespace bluetooth.dumpsys;

table BundleSchemaMap {
table BundledSchemaMap {
    name:string;
    data:[ubyte];
}

table BundleSchema {
table BundledSchema {
    title:string;
    root_name:string;
    map:[BundleSchemaMap];
    map:[BundledSchemaMap];
}

root_type BundleSchema;
root_type BundledSchema;
+2 −2
Original line number Diff line number Diff line
@@ -25,7 +25,7 @@ bool VerifyBinarySchema(const std::vector<const uint8_t>& raw_schema);
bool CreateBinarySchemaBundle(
    flatbuffers::FlatBufferBuilder* builder,
    const std::vector<std::string>& filenames,
    std::vector<flatbuffers::Offset<bluetooth::dumpsys::BundleSchemaMap>>* vector_map);
    std::vector<flatbuffers::Offset<bluetooth::dumpsys::BundledSchemaMap>>* vector_map);
int WriteHeaderFile(FILE* fp, const uint8_t* data, size_t data_len);

class BundlerTest : public ::testing::Test {
@@ -56,7 +56,7 @@ TEST_F(BundlerTest, VerifyBinarySchema) {
TEST_F(BundlerTest, CreateBinarySchemaBundle) {
  flatbuffers::FlatBufferBuilder builder;
  std::vector<std::string> filenames;
  std::vector<flatbuffers::Offset<bluetooth::dumpsys::BundleSchemaMap>> vector_map;
  std::vector<flatbuffers::Offset<bluetooth::dumpsys::BundledSchemaMap>> vector_map;
  ASSERT_TRUE(CreateBinarySchemaBundle(&builder, filenames, &vector_map));
  ASSERT_EQ(0, vector_map.size());
}
Loading