Skip to content

Commit

Permalink
shared_lib: Tests for protozero serialization
Browse files Browse the repository at this point in the history
These cover most of the protozero macros.

The sample protos in this test have been generated from the schemas at
`external/perfetto/src/protozero/test/example_proto/`.

A future commit contains the script that generates the sample headers
from the schema.

Bug: 237053538
Change-Id: Iaae9dabd14c9989460a2025d3042deee37438f4e
  • Loading branch information
ddiproietto committed Oct 2, 2023
1 parent 334ca7d commit 2471cd8
Show file tree
Hide file tree
Showing 10 changed files with 1,049 additions and 1 deletion.
6 changes: 6 additions & 0 deletions Android.bp
Original file line number Diff line number Diff line change
Expand Up @@ -2221,6 +2221,7 @@ cc_test {
":perfetto_src_shared_lib_intern_map",
":perfetto_src_shared_lib_shared_lib",
":perfetto_src_shared_lib_test_integrationtests",
":perfetto_src_shared_lib_test_protos_protos",
":perfetto_src_shared_lib_test_utils",
":perfetto_src_trace_processor_containers_containers",
":perfetto_src_trace_processor_db_db",
Expand Down Expand Up @@ -9726,6 +9727,11 @@ filegroup {
],
}

// GN: //src/shared_lib/test/protos:protos
filegroup {
name: "perfetto_src_shared_lib_test_protos_protos",
}

// GN: //src/shared_lib/test:utils
filegroup {
name: "perfetto_src_shared_lib_test_utils",
Expand Down
2 changes: 1 addition & 1 deletion include/perfetto/public/abi/heap_buffer.h
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ extern "C" {

// A PerfettoHeapBuffer can be used to serialize protobuf data using the
// PerfettoStreamWriter interface. Stores data on heap allocated buffers, which
// can be read back with PerfettoHeapBufferCopyContent().
// can be read back with PerfettoHeapBufferCopyInto().

struct PerfettoHeapBuffer;

Expand Down
1 change: 1 addition & 0 deletions src/shared_lib/test/BUILD.gn
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,7 @@ if (enable_perfetto_integration_tests) {
source_set("integrationtests") {
testonly = true
deps = [
"protos",
":utils",
"..:shared_lib",
"../../../gn:default_deps",
Expand Down
348 changes: 348 additions & 0 deletions src/shared_lib/test/api_integrationtest.cc

Large diffs are not rendered by default.

23 changes: 23 additions & 0 deletions src/shared_lib/test/protos/BUILD.gn
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
# Copyright (C) 2023 The Android Open Source Project
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

source_set("protos") {
testonly = true
sources = [
"library.pzc.h",
"library_internals/galaxies.pzc.h",
"test_messages.pzc.h",
"upper_import.pzc.h",
]
}
61 changes: 61 additions & 0 deletions src/shared_lib/test/protos/library.pzc.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
/*
* Copyright (C) 2023 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

#ifndef SRC_SHARED_LIB_TEST_PROTOS_LIBRARY_PZC_H_
#define SRC_SHARED_LIB_TEST_PROTOS_LIBRARY_PZC_H_

#include <stdbool.h>
#include <stdint.h>

#include "perfetto/public/pb_macros.h"
#include "src/shared_lib/test/protos/library_internals/galaxies.pzc.h"

PERFETTO_PB_ENUM_IN_MSG(protozero_test_protos_TransgalacticMessage,
MessageType){
PERFETTO_PB_ENUM_IN_MSG_ENTRY(protozero_test_protos_TransgalacticMessage,
REGULAR) = 0,
PERFETTO_PB_ENUM_IN_MSG_ENTRY(protozero_test_protos_TransgalacticMessage,
EXPRESS) = 1,
};

PERFETTO_PB_MSG(protozero_test_protos_TransgalacticMessage);
PERFETTO_PB_FIELD(protozero_test_protos_TransgalacticMessage,
VARINT,
enum protozero_test_protos_Galaxy,
origin_galaxy,
1);
PERFETTO_PB_FIELD(protozero_test_protos_TransgalacticMessage,
STRING,
const char*,
origin_planet,
2);
PERFETTO_PB_FIELD(protozero_test_protos_TransgalacticMessage,
VARINT,
enum protozero_test_protos_Galaxy,
destination_galaxy,
3);
PERFETTO_PB_FIELD(protozero_test_protos_TransgalacticMessage,
STRING,
const char*,
destination_planet,
4);
PERFETTO_PB_FIELD(protozero_test_protos_TransgalacticMessage,
STRING,
const char*,
proto_message,
5);

#endif // SRC_SHARED_LIB_TEST_PROTOS_LIBRARY_PZC_H_
32 changes: 32 additions & 0 deletions src/shared_lib/test/protos/library_internals/galaxies.pzc.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
/*
* Copyright (C) 2023 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

#ifndef SRC_SHARED_LIB_TEST_PROTOS_LIBRARY_INTERNALS_GALAXIES_PZC_H_
#define SRC_SHARED_LIB_TEST_PROTOS_LIBRARY_INTERNALS_GALAXIES_PZC_H_

#include <stdbool.h>
#include <stdint.h>

#include "perfetto/public/pb_macros.h"
#include "src/shared_lib/test/protos/upper_import.pzc.h"

PERFETTO_PB_ENUM(protozero_test_protos_Galaxy){
PERFETTO_PB_ENUM_ENTRY(protozero_test_protos_MILKY_WAY) = 1,
PERFETTO_PB_ENUM_ENTRY(protozero_test_protos_ANDROMEDA) = 2,
PERFETTO_PB_ENUM_ENTRY(protozero_test_protos_SUNFLOWER) = 3,
};

#endif // SRC_SHARED_LIB_TEST_PROTOS_LIBRARY_INTERNALS_GALAXIES_PZC_H_
Loading

0 comments on commit 2471cd8

Please sign in to comment.