blob: 40e54c1fb43831f21d6899a7bd8a04b5f63bd292 [file] [log] [blame]
// Copyright 2017 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "chrome/profiling/backtrace_storage.h"
#include <vector>
#include "testing/gtest/include/gtest/gtest.h"
namespace profiling {
TEST(BacktraceStorage, KeyStability) {
BacktraceStorage storage;
// Make a lot of unique backtraces to force reallocation of the hash table
// several times.
const size_t num_traces = 1000;
std::vector<const Backtrace*> traces;
for (size_t i = 0; i < num_traces; i++) {
// Each backtrace should contain its index as the only stack entry.
std::vector<Address> addrs;
// Validate the backtraces are still valid.
for (size_t i = 0; i < num_traces; i++) {
ASSERT_EQ(1u, traces[i]->addrs().size());
EXPECT_EQ(Address(i), traces[i]->addrs()[0]);
} // namespace profiling