| Index: statsreport/persistent_iterator-win32_unittest.cc
|
| diff --git a/statsreport/persistent_iterator-win32_unittest.cc b/statsreport/persistent_iterator-win32_unittest.cc
|
| deleted file mode 100644
|
| index 6893b695f4f148bc149af17e54cddc279c86b39b..0000000000000000000000000000000000000000
|
| --- a/statsreport/persistent_iterator-win32_unittest.cc
|
| +++ /dev/null
|
| @@ -1,130 +0,0 @@
|
| -// Copyright 2006-2009 Google Inc.
|
| -//
|
| -// 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.
|
| -// ========================================================================
|
| -#include "omaha/third_party/gtest/include/gtest/gtest.h"
|
| -#include "const-win32.h"
|
| -#include "aggregator-win32_unittest.h"
|
| -#include "persistent_iterator-win32.h"
|
| -#include <atlbase.h>
|
| -#include <atlcom.h>
|
| -#include <iterator>
|
| -#include <map>
|
| -
|
| -using namespace stats_report;
|
| -
|
| -namespace {
|
| -
|
| -class PersistentMetricsIteratorWin32Test: public MetricsAggregatorWin32Test {
|
| -public:
|
| - bool WriteStats() {
|
| - // put some persistent metrics into the registry
|
| - MetricsAggregatorWin32 agg(coll_, kAppName);
|
| - AddStats();
|
| - bool ret = agg.AggregateMetrics();
|
| -
|
| - // Reset the stats, we should now have the same stats
|
| - // in our collection as in registry.
|
| - AddStats();
|
| -
|
| - return ret;
|
| - }
|
| -
|
| - typedef std::map<std::string, MetricBase*> MetricsMap;
|
| - void IndexMetrics(MetricsMap *metrics) {
|
| - // build a map over the metrics in our collection
|
| - MetricIterator it(coll_), end;
|
| -
|
| - for (; it != end; ++it) {
|
| - metrics->insert(std::make_pair(std::string(it->name()), *it));
|
| - }
|
| - }
|
| -};
|
| -
|
| -// compare two metrics instances for equality
|
| -bool equals(MetricBase *a, MetricBase *b) {
|
| - if (!a || !b)
|
| - return false;
|
| -
|
| - if (a->type() != b->type() || 0 != strcmp(a->name(), b->name()))
|
| - return false;
|
| -
|
| - switch (a->type()) {
|
| - case kCountType:
|
| - return a->AsCount().value() == b->AsCount().value();
|
| - break;
|
| - case kTimingType: {
|
| - TimingMetric &at = a->AsTiming();
|
| - TimingMetric &bt = b->AsTiming();
|
| -
|
| - return at.count() == bt.count() &&
|
| - at.sum() == bt.sum() &&
|
| - at.minimum() == bt.minimum() &&
|
| - at.maximum() == bt.maximum();
|
| - }
|
| - break;
|
| - case kIntegerType:
|
| - return a->AsInteger().value() == b->AsInteger().value();
|
| - break;
|
| - case kBoolType:
|
| - return a->AsBool().value() == b->AsBool().value();
|
| - break;
|
| -
|
| - case kInvalidType:
|
| - default:
|
| - LOG(FATAL) << "Impossible metric type";
|
| - }
|
| -
|
| - return false;
|
| -}
|
| -
|
| -} // namespace
|
| -
|
| -TEST_F(PersistentMetricsIteratorWin32Test, Basic) {
|
| - EXPECT_TRUE(WriteStats());
|
| - PersistentMetricsIteratorWin32 a, b, c(kAppName);
|
| -
|
| - EXPECT_TRUE(a == b);
|
| - EXPECT_TRUE(b == a);
|
| -
|
| - EXPECT_FALSE(a == c);
|
| - EXPECT_FALSE(b == c);
|
| - EXPECT_FALSE(c == a);
|
| - EXPECT_FALSE(c == b);
|
| -
|
| - ++a;
|
| - EXPECT_TRUE(a == b);
|
| - EXPECT_TRUE(b == a);
|
| -}
|
| -
|
| -// Test to see whether we can reliably roundtrip metrics through
|
| -// the registry without molestation
|
| -TEST_F(PersistentMetricsIteratorWin32Test, UnmolestedValues) {
|
| - EXPECT_TRUE(WriteStats());
|
| -
|
| - MetricsMap metrics;
|
| - IndexMetrics(&metrics);
|
| -
|
| - PersistentMetricsIteratorWin32 it(kAppName), end;
|
| - int count = 0;
|
| - for (; it != end; ++it) {
|
| - MetricsMap::iterator found = metrics.find(it->name());
|
| -
|
| - // make sure we found it, and that it's unmolested in value
|
| - EXPECT_TRUE(found != metrics.end() && equals(found->second, *it));
|
| - count++;
|
| - }
|
| -
|
| - // Did we visit all metrics?
|
| - EXPECT_EQ(count, metrics.size());
|
| -}
|
|
|