| Index: components/metrics/public/cpp/call_stack_profile_struct_traits_unittest.cc
|
| diff --git a/components/metrics/public/cpp/call_stack_profile_struct_traits_unittest.cc b/components/metrics/public/cpp/call_stack_profile_struct_traits_unittest.cc
|
| index 016a43a515f03f20df2853d1a11a644249634f56..14db487f452cd61545af8e5f7f617a98f6590234 100644
|
| --- a/components/metrics/public/cpp/call_stack_profile_struct_traits_unittest.cc
|
| +++ b/components/metrics/public/cpp/call_stack_profile_struct_traits_unittest.cc
|
| @@ -54,17 +54,33 @@ class CallStackProfileCollectorTestImpl
|
| callback.Run(in);
|
| }
|
|
|
| - void BounceTrigger(metrics::CallStackProfileParams::Trigger in,
|
| + void BounceTrigger(CallStackProfileParams::Trigger in,
|
| const BounceTriggerCallback& callback) override {
|
| callback.Run(in);
|
| }
|
|
|
| + void BounceProcess(CallStackProfileParams::Process in,
|
| + const BounceProcessCallback& callback) override {
|
| + callback.Run(in);
|
| + }
|
| +
|
| + void BounceThread(CallStackProfileParams::Thread in,
|
| + const BounceThreadCallback& callback) override {
|
| + callback.Run(in);
|
| + }
|
| +
|
| void BounceSampleOrderingSpec(
|
| - metrics::CallStackProfileParams::SampleOrderingSpec in,
|
| + CallStackProfileParams::SampleOrderingSpec in,
|
| const BounceSampleOrderingSpecCallback& callback) override {
|
| callback.Run(in);
|
| }
|
|
|
| + void BounceCallStackProfileParams(
|
| + const CallStackProfileParams& in,
|
| + const BounceCallStackProfileParamsCallback& callback) override {
|
| + callback.Run(in);
|
| + }
|
| +
|
| private:
|
| mojo::Binding<CallStackProfileCollectorTest> binding_;
|
|
|
| @@ -259,27 +275,80 @@ TEST_F(CallStackProfileStructTraitsTest, Profile) {
|
| }
|
| }
|
|
|
| -// Checks serialization/deserialization of the SampleOrderingSpec, including
|
| -// validation.
|
| -TEST_F(CallStackProfileStructTraitsTest, SampleOrderingSpec) {
|
| - using SampleOrderingSpec =
|
| - metrics::CallStackProfileParams::SampleOrderingSpec;
|
| +// Checks serialization/deserialization of the process, including validation.
|
| +TEST_F(CallStackProfileStructTraitsTest, Process) {
|
| + using Process = CallStackProfileParams::Process;
|
|
|
| - SampleOrderingSpec out;
|
| + Process out;
|
|
|
| - EXPECT_TRUE(proxy_->BounceSampleOrderingSpec(SampleOrderingSpec::MAY_SHUFFLE,
|
| - &out));
|
| - EXPECT_EQ(SampleOrderingSpec::MAY_SHUFFLE, out);
|
| + EXPECT_TRUE(proxy_->BounceProcess(Process::UNKNOWN_PROCESS, &out));
|
| + EXPECT_EQ(Process::UNKNOWN_PROCESS, out);
|
|
|
| - EXPECT_TRUE(proxy_->BounceSampleOrderingSpec(
|
| - SampleOrderingSpec::PRESERVE_ORDER,
|
| - &out));
|
| - EXPECT_EQ(SampleOrderingSpec::PRESERVE_ORDER, out);
|
| + EXPECT_TRUE(proxy_->BounceProcess(Process::BROWSER_PROCESS, &out));
|
| + EXPECT_EQ(Process::BROWSER_PROCESS, out);
|
| +
|
| + EXPECT_TRUE(proxy_->BounceProcess(Process::RENDERER_PROCESS, &out));
|
| + EXPECT_EQ(Process::RENDERER_PROCESS, out);
|
| +
|
| + EXPECT_TRUE(proxy_->BounceProcess(Process::GPU_PROCESS, &out));
|
| + EXPECT_EQ(Process::GPU_PROCESS, out);
|
| +
|
| + EXPECT_TRUE(proxy_->BounceProcess(Process::UTILITY_PROCESS, &out));
|
| + EXPECT_EQ(Process::UTILITY_PROCESS, out);
|
| +
|
| + EXPECT_TRUE(proxy_->BounceProcess(Process::ZYGOTE_PROCESS, &out));
|
| + EXPECT_EQ(Process::ZYGOTE_PROCESS, out);
|
| +
|
| + EXPECT_TRUE(proxy_->BounceProcess(Process::SANDBOX_HELPER_PROCESS, &out));
|
| + EXPECT_EQ(Process::SANDBOX_HELPER_PROCESS, out);
|
| +
|
| + EXPECT_TRUE(proxy_->BounceProcess(Process::PPAPI_PLUGIN_PROCESS, &out));
|
| + EXPECT_EQ(Process::PPAPI_PLUGIN_PROCESS, out);
|
| +
|
| + EXPECT_TRUE(proxy_->BounceProcess(Process::PPAPI_BROKER_PROCESS, &out));
|
| + EXPECT_EQ(Process::PPAPI_BROKER_PROCESS, out);
|
| +}
|
| +
|
| +// Checks serialization/deserialization of the thread, including validation.
|
| +TEST_F(CallStackProfileStructTraitsTest, Thread) {
|
| + using Thread = CallStackProfileParams::Thread;
|
| +
|
| + Thread out;
|
| +
|
| + EXPECT_TRUE(proxy_->BounceThread(Thread::UI_THREAD, &out));
|
| + EXPECT_EQ(Thread::UI_THREAD, out);
|
| +
|
| + EXPECT_TRUE(proxy_->BounceThread(Thread::FILE_THREAD, &out));
|
| + EXPECT_EQ(Thread::FILE_THREAD, out);
|
| +
|
| + EXPECT_TRUE(proxy_->BounceThread(Thread::FILE_USER_BLOCKING_THREAD, &out));
|
| + EXPECT_EQ(Thread::FILE_USER_BLOCKING_THREAD, out);
|
| +
|
| + EXPECT_TRUE(proxy_->BounceThread(Thread::PROCESS_LAUNCHER_THREAD, &out));
|
| + EXPECT_EQ(Thread::PROCESS_LAUNCHER_THREAD, out);
|
| +
|
| + EXPECT_TRUE(proxy_->BounceThread(Thread::CACHE_THREAD, &out));
|
| + EXPECT_EQ(Thread::CACHE_THREAD, out);
|
| +
|
| + EXPECT_TRUE(proxy_->BounceThread(Thread::IO_THREAD, &out));
|
| + EXPECT_EQ(Thread::IO_THREAD, out);
|
| +
|
| + EXPECT_TRUE(proxy_->BounceThread(Thread::DB_THREAD, &out));
|
| + EXPECT_EQ(Thread::DB_THREAD, out);
|
| +
|
| + EXPECT_TRUE(proxy_->BounceThread(Thread::GPU_MAIN_THREAD, &out));
|
| + EXPECT_EQ(Thread::GPU_MAIN_THREAD, out);
|
| +
|
| + EXPECT_TRUE(proxy_->BounceThread(Thread::RENDER_THREAD, &out));
|
| + EXPECT_EQ(Thread::RENDER_THREAD, out);
|
| +
|
| + EXPECT_TRUE(proxy_->BounceThread(Thread::UTILITY_THREAD, &out));
|
| + EXPECT_EQ(Thread::UTILITY_THREAD, out);
|
| }
|
|
|
| // Checks serialization/deserialization of the trigger, including validation.
|
| TEST_F(CallStackProfileStructTraitsTest, Trigger) {
|
| - using Trigger = metrics::CallStackProfileParams::Trigger;
|
| + using Trigger = CallStackProfileParams::Trigger;
|
|
|
| Trigger out;
|
|
|
| @@ -296,4 +365,38 @@ TEST_F(CallStackProfileStructTraitsTest, Trigger) {
|
| EXPECT_EQ(Trigger::THREAD_HUNG, out);
|
| }
|
|
|
| +// Checks serialization/deserialization of the SampleOrderingSpec, including
|
| +// validation.
|
| +TEST_F(CallStackProfileStructTraitsTest, SampleOrderingSpec) {
|
| + using SampleOrderingSpec = CallStackProfileParams::SampleOrderingSpec;
|
| +
|
| + SampleOrderingSpec out;
|
| +
|
| + EXPECT_TRUE(proxy_->BounceSampleOrderingSpec(SampleOrderingSpec::MAY_SHUFFLE,
|
| + &out));
|
| + EXPECT_EQ(SampleOrderingSpec::MAY_SHUFFLE, out);
|
| +
|
| + EXPECT_TRUE(proxy_->BounceSampleOrderingSpec(
|
| + SampleOrderingSpec::PRESERVE_ORDER,
|
| + &out));
|
| + EXPECT_EQ(SampleOrderingSpec::PRESERVE_ORDER, out);
|
| +}
|
| +
|
| +// Checks serialization/deserialization of the CallStackProfileParams.
|
| +TEST_F(CallStackProfileStructTraitsTest, CallStackProfileParams) {
|
| + CallStackProfileParams out;
|
| +
|
| + EXPECT_TRUE(proxy_->BounceCallStackProfileParams(
|
| + CallStackProfileParams(CallStackProfileParams::BROWSER_PROCESS,
|
| + CallStackProfileParams::UI_THREAD,
|
| + CallStackProfileParams::PROCESS_STARTUP,
|
| + CallStackProfileParams::PRESERVE_ORDER),
|
| + &out));
|
| +
|
| + EXPECT_EQ(CallStackProfileParams::BROWSER_PROCESS, out.process);
|
| + EXPECT_EQ(CallStackProfileParams::UI_THREAD, out.thread);
|
| + EXPECT_EQ(CallStackProfileParams::PROCESS_STARTUP, out.trigger);
|
| + EXPECT_EQ(CallStackProfileParams::PRESERVE_ORDER, out.ordering_spec);
|
| +}
|
| +
|
| } // namespace metrics
|
|
|