Index: metrics_library_test.cc |
diff --git a/metrics_library_test.cc b/metrics_library_test.cc |
index f585d350734b10c13e49dd2818059d9d54bf6051..596abd3e651116e0c0169c1ad418d3e2f011ea33 100644 |
--- a/metrics_library_test.cc |
+++ b/metrics_library_test.cc |
@@ -2,13 +2,14 @@ |
// Use of this source code is governed by a BSD-style license that can be |
// found in the LICENSE file. |
-#include "metrics_library.h" |
- |
#include <cstring> |
#include <base/file_util.h> |
#include <gtest/gtest.h> |
+#include "c_metrics_library.h" |
+#include "metrics_library.h" |
+ |
static const FilePath kTestUMAEventsFile("test-uma-events"); |
class MetricsLibraryTest : public testing::Test { |
@@ -83,6 +84,48 @@ TEST_F(MetricsLibraryTest, SendToUMA) { |
EXPECT_EQ(0, memcmp(exp, buf, kLen)); |
} |
+class CMetricsLibraryTest : public testing::Test { |
+ protected: |
+ virtual void SetUp() { |
+ lib_ = CMetricsLibraryNew(); |
+ MetricsLibrary& ml = *reinterpret_cast<MetricsLibrary*>(lib_); |
+ EXPECT_EQ(NULL, ml.uma_events_file_); |
+ CMetricsLibraryInit(lib_); |
+ EXPECT_TRUE(NULL != ml.uma_events_file_); |
+ ml.uma_events_file_ = kTestUMAEventsFile.value().c_str(); |
+ } |
+ |
+ virtual void TearDown() { |
+ CMetricsLibraryDelete(lib_); |
+ file_util::Delete(kTestUMAEventsFile, false); |
+ } |
+ |
+ CMetricsLibrary lib_; |
+}; |
+ |
+TEST_F(CMetricsLibraryTest, SendEnumToUMA) { |
+ char buf[100]; |
+ const int kLen = 40; |
+ EXPECT_TRUE(CMetricsLibrarySendEnumToUMA(lib_, "Test.EnumMetric", 1, 3)); |
+ EXPECT_EQ(kLen, file_util::ReadFile(kTestUMAEventsFile, buf, 100)); |
+ |
+ char exp[kLen]; |
+ sprintf(exp, "%c%c%c%clinearhistogram%cTest.EnumMetric 1 3", |
+ kLen, 0, 0, 0, 0); |
+ EXPECT_EQ(0, memcmp(exp, buf, kLen)); |
+} |
+ |
+TEST_F(CMetricsLibraryTest, SendToUMA) { |
+ char buf[100]; |
+ const int kLen = 37; |
+ EXPECT_TRUE(CMetricsLibrarySendToUMA(lib_, "Test.Metric", 2, 1, 100, 50)); |
+ EXPECT_EQ(kLen, file_util::ReadFile(kTestUMAEventsFile, buf, 100)); |
+ |
+ char exp[kLen]; |
+ sprintf(exp, "%c%c%c%chistogram%cTest.Metric 2 1 100 50", kLen, 0, 0, 0, 0); |
+ EXPECT_EQ(0, memcmp(exp, buf, kLen)); |
+} |
+ |
int main(int argc, char** argv) { |
testing::InitGoogleTest(&argc, argv); |
return RUN_ALL_TESTS(); |