Fix emulator build error
[platform/framework/web/chromium-efl.git] / base / profiler / sample_metadata_unittest.cc
1 // Copyright 2019 The Chromium Authors
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "base/profiler/sample_metadata.h"
6
7 #include "base/metrics/metrics_hashes.h"
8 #include "base/threading/platform_thread.h"
9 #include "testing/gtest/include/gtest/gtest.h"
10
11 namespace base {
12
13 TEST(SampleMetadataTest, ScopedSampleMetadata) {
14   MetadataRecorder::ItemArray items;
15   ASSERT_EQ(0u, MetadataRecorder::MetadataProvider(GetSampleMetadataRecorder(),
16                                                    PlatformThread::CurrentId())
17                     .GetItems(&items));
18
19   {
20     ScopedSampleMetadata m("myname", 100, SampleMetadataScope::kProcess);
21
22     ASSERT_EQ(1u, MetadataRecorder::MetadataProvider(
23                       GetSampleMetadataRecorder(), PlatformThread::CurrentId())
24                       .GetItems(&items));
25     EXPECT_EQ(HashMetricName("myname"), items[0].name_hash);
26     EXPECT_FALSE(items[0].key.has_value());
27     EXPECT_EQ(100, items[0].value);
28   }
29
30   ASSERT_EQ(0u, MetadataRecorder::MetadataProvider(GetSampleMetadataRecorder(),
31                                                    PlatformThread::CurrentId())
32                     .GetItems(&items));
33 }
34
35 TEST(SampleMetadataTest, ScopedSampleMetadataWithKey) {
36   MetadataRecorder::ItemArray items;
37   ASSERT_EQ(0u, MetadataRecorder::MetadataProvider(GetSampleMetadataRecorder(),
38                                                    PlatformThread::CurrentId())
39                     .GetItems(&items));
40
41   {
42     ScopedSampleMetadata m("myname", 10, 100, SampleMetadataScope::kProcess);
43
44     ASSERT_EQ(1u, MetadataRecorder::MetadataProvider(
45                       GetSampleMetadataRecorder(), PlatformThread::CurrentId())
46                       .GetItems(&items));
47     EXPECT_EQ(HashMetricName("myname"), items[0].name_hash);
48     ASSERT_TRUE(items[0].key.has_value());
49     EXPECT_EQ(10, *items[0].key);
50     EXPECT_EQ(100, items[0].value);
51   }
52
53   ASSERT_EQ(0u, MetadataRecorder::MetadataProvider(GetSampleMetadataRecorder(),
54                                                    PlatformThread::CurrentId())
55                     .GetItems(&items));
56 }
57
58 TEST(SampleMetadataTest, SampleMetadata) {
59   MetadataRecorder::ItemArray items;
60   ASSERT_EQ(0u, MetadataRecorder::MetadataProvider(GetSampleMetadataRecorder(),
61                                                    PlatformThread::CurrentId())
62                     .GetItems(&items));
63
64   SampleMetadata metadata("myname", SampleMetadataScope::kProcess);
65   metadata.Set(100);
66   ASSERT_EQ(1u, MetadataRecorder::MetadataProvider(GetSampleMetadataRecorder(),
67                                                    PlatformThread::CurrentId())
68                     .GetItems(&items));
69   EXPECT_EQ(HashMetricName("myname"), items[0].name_hash);
70   EXPECT_FALSE(items[0].key.has_value());
71   EXPECT_EQ(100, items[0].value);
72
73   metadata.Remove();
74   ASSERT_EQ(0u, MetadataRecorder::MetadataProvider(GetSampleMetadataRecorder(),
75                                                    PlatformThread::CurrentId())
76                     .GetItems(&items));
77 }
78
79 TEST(SampleMetadataTest, SampleMetadataWithKey) {
80   MetadataRecorder::ItemArray items;
81   ASSERT_EQ(0u, MetadataRecorder::MetadataProvider(GetSampleMetadataRecorder(),
82                                                    PlatformThread::CurrentId())
83                     .GetItems(&items));
84
85   SampleMetadata metadata("myname", SampleMetadataScope::kProcess);
86   metadata.Set(10, 100);
87   ASSERT_EQ(1u, MetadataRecorder::MetadataProvider(GetSampleMetadataRecorder(),
88                                                    PlatformThread::CurrentId())
89                     .GetItems(&items));
90   EXPECT_EQ(HashMetricName("myname"), items[0].name_hash);
91   ASSERT_TRUE(items[0].key.has_value());
92   EXPECT_EQ(10, *items[0].key);
93   EXPECT_EQ(100, items[0].value);
94
95   metadata.Remove(10);
96   ASSERT_EQ(0u, MetadataRecorder::MetadataProvider(GetSampleMetadataRecorder(),
97                                                    PlatformThread::CurrentId())
98                     .GetItems(&items));
99 }
100
101 TEST(SampleMetadataTest, SampleMetadataWithThreadId) {
102   MetadataRecorder::ItemArray items;
103   ASSERT_EQ(0u, MetadataRecorder::MetadataProvider(GetSampleMetadataRecorder(),
104                                                    PlatformThread::CurrentId())
105                     .GetItems(&items));
106
107   SampleMetadata metadata("myname", SampleMetadataScope::kThread);
108   metadata.Set(100);
109   ASSERT_EQ(0u, MetadataRecorder::MetadataProvider(GetSampleMetadataRecorder(),
110                                                    kInvalidThreadId)
111                     .GetItems(&items));
112   ASSERT_EQ(1u, MetadataRecorder::MetadataProvider(GetSampleMetadataRecorder(),
113                                                    PlatformThread::CurrentId())
114                     .GetItems(&items));
115   EXPECT_EQ(HashMetricName("myname"), items[0].name_hash);
116   EXPECT_FALSE(items[0].key.has_value());
117   EXPECT_EQ(100, items[0].value);
118
119   metadata.Remove();
120   ASSERT_EQ(0u, MetadataRecorder::MetadataProvider(GetSampleMetadataRecorder(),
121                                                    PlatformThread::CurrentId())
122                     .GetItems(&items));
123 }
124
125 }  // namespace base