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

Side by Side Diff: components/tracing/test/proto_zero_generation_unittest.cc

Issue 2293073002: Tracing V2: Proto fields reflection. (Closed)
Patch Set: nit Created 4 years, 3 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 unified diff | Download patch
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include <limits> 5 #include <limits>
6 #include <memory> 6 #include <memory>
7 #include <vector> 7 #include <vector>
8 8
9 #include "components/tracing/core/proto_zero_message_handle.h" 9 #include "components/tracing/core/proto_zero_message_handle.h"
10 #include "components/tracing/test/example_proto/library.pbzero.h" 10 #include "components/tracing/test/example_proto/library.pbzero.h"
11 #include "components/tracing/test/example_proto/test_messages.pb.h" 11 #include "components/tracing/test/example_proto/test_messages.pb.h"
12 #include "components/tracing/test/example_proto/test_messages.pbzero.h" 12 #include "components/tracing/test/example_proto/test_messages.pbzero.h"
13 #include "components/tracing/test/fake_scattered_buffer.h" 13 #include "components/tracing/test/fake_scattered_buffer.h"
14 #include "testing/gtest/include/gtest/gtest.h" 14 #include "testing/gtest/include/gtest/gtest.h"
15 15
16 namespace tracing { 16 namespace tracing {
17 namespace proto { 17 namespace proto {
18 18
19 namespace pbtest = pbzero::foo::bar; 19 namespace pbtest = pbzero::foo::bar;
20 namespace pbgold = foo::bar; // Official C++ protobuf compiler. 20 namespace pbgold = foo::bar; // Official C++ protobuf compiler.
21 21
22 using tracing::v2::FakeScatteredBuffer; 22 using tracing::v2::FakeScatteredBuffer;
23 using tracing::v2::ProtoZeroMessage; 23 using tracing::v2::ProtoZeroMessage;
24 using tracing::v2::ScatteredStreamWriter; 24 using tracing::v2::ScatteredStreamWriter;
25 using tracing::v2::ProtoZeroMessageHandle; 25 using tracing::v2::ProtoZeroMessageHandle;
26 using tracing::v2::ProtoZeroMessageHandleBase; 26 using tracing::v2::ProtoZeroMessageHandleBase;
27 using tracing::v2::proto::ProtoFieldDescriptor;
27 28
28 constexpr size_t kChunkSize = 42; 29 constexpr size_t kChunkSize = 42;
29 30
30 class ProtoZeroConformanceTest : public ::testing::Test { 31 class ProtoZeroConformanceTest : public ::testing::Test {
31 public: 32 public:
32 void SetUp() override { 33 void SetUp() override {
33 buffer_.reset(new FakeScatteredBuffer(kChunkSize)); 34 buffer_.reset(new FakeScatteredBuffer(kChunkSize));
34 stream_writer_.reset(new ScatteredStreamWriter(buffer_.get())); 35 stream_writer_.reset(new ScatteredStreamWriter(buffer_.get()));
35 } 36 }
36 37
(...skipping 111 matching lines...) Expand 10 before | Expand all | Expand 10 after
148 EXPECT_FALSE(gold_msg_a.repeated_a(1).has_value_b()); 149 EXPECT_FALSE(gold_msg_a.repeated_a(1).has_value_b());
149 EXPECT_EQ(1000, gold_msg_a.super_nested().value_c()); 150 EXPECT_EQ(1000, gold_msg_a.super_nested().value_c());
150 } 151 }
151 152
152 TEST(ProtoZeroTest, Simple) { 153 TEST(ProtoZeroTest, Simple) {
153 // Test the includes for indirect public import: library.pbzero.h -> 154 // Test the includes for indirect public import: library.pbzero.h ->
154 // library_internals/galaxies.pbzero.h -> upper_import.pbzero.h . 155 // library_internals/galaxies.pbzero.h -> upper_import.pbzero.h .
155 EXPECT_LE(0u, sizeof(pbtest::TrickyPublicImport)); 156 EXPECT_LE(0u, sizeof(pbtest::TrickyPublicImport));
156 } 157 }
157 158
158 TEST(ProtoZeroTest, FieldNumbers) { 159 TEST(ProtoZeroTest, Reflection) {
159 // Tests camel case conversion as well. 160 // Tests camel case conversion as well.
160 EXPECT_EQ(1, pbtest::CamelCaseFields::kFooBarBazFieldNumber); 161 EXPECT_EQ(1, pbtest::CamelCaseFields::kFooBarBazFieldNumber);
161 EXPECT_EQ(2, pbtest::CamelCaseFields::kBarBazFieldNumber); 162 EXPECT_EQ(2, pbtest::CamelCaseFields::kBarBazFieldNumber);
162 EXPECT_EQ(3, pbtest::CamelCaseFields::kMooMooFieldNumber); 163 EXPECT_EQ(3, pbtest::CamelCaseFields::kMooMooFieldNumber);
163 EXPECT_EQ(4, pbtest::CamelCaseFields::kURLEncoderFieldNumber); 164 EXPECT_EQ(4, pbtest::CamelCaseFields::kURLEncoderFieldNumber);
164 EXPECT_EQ(5, pbtest::CamelCaseFields::kXMapFieldNumber); 165 EXPECT_EQ(5, pbtest::CamelCaseFields::kXMapFieldNumber);
165 EXPECT_EQ(6, pbtest::CamelCaseFields::kUrLENcoDerFieldNumber); 166 EXPECT_EQ(6, pbtest::CamelCaseFields::kUrLENcoDerFieldNumber);
166 EXPECT_EQ(7, pbtest::CamelCaseFields::kBigBangFieldNumber); 167 EXPECT_EQ(7, pbtest::CamelCaseFields::kBigBangFieldNumber);
167 EXPECT_EQ(8, pbtest::CamelCaseFields::kU2FieldNumber); 168 EXPECT_EQ(8, pbtest::CamelCaseFields::kU2FieldNumber);
168 EXPECT_EQ(9, pbtest::CamelCaseFields::kBangBigFieldNumber); 169 EXPECT_EQ(9, pbtest::CamelCaseFields::kBangBigFieldNumber);
170
171 const ProtoFieldDescriptor* reflection =
172 pbtest::EveryField::GetFieldDescriptor(
173 pbtest::EveryField::kFieldInt32FieldNumber);
174 EXPECT_STREQ("field_int32", reflection->name());
175 EXPECT_EQ(ProtoFieldDescriptor::Type::TYPE_INT32, reflection->type());
176 EXPECT_EQ(1u, reflection->number());
177 EXPECT_FALSE(reflection->is_repeated());
178 EXPECT_TRUE(reflection->is_valid());
179
180 EXPECT_FALSE(pbtest::TransgalacticParcel::GetFieldDescriptor(42)->is_valid());
169 } 181 }
170 182
171 } // namespace proto 183 } // namespace proto
172 } // namespace tracing 184 } // namespace tracing
OLDNEW
« no previous file with comments | « components/tracing/core/proto_utils.h ('k') | components/tracing/tools/proto_zero_plugin/proto_zero_generator.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698