blob: ac3319560f642dfb72f38b849e26ef349d5c450a [file] [log] [blame]
// Copyright 2018 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.
#ifndef THIRD_PARTY_GOOGLETEST_CUSTOM_GTEST_INTERNAL_CUSTOM_STACK_TRACE_GETTER_H_
#define THIRD_PARTY_GOOGLETEST_CUSTOM_GTEST_INTERNAL_CUSTOM_STACK_TRACE_GETTER_H_
#include <stddef.h>
#include "third_party/googletest/src/googletest/src/gtest-internal-inl.h"
// An implementation of Google Test's OsStackTraceGetterInterface that uses
// Chromium's base::debug::StackTrace to obtain stringified stack traces.
class StackTraceGetter
: public ::testing::internal::OsStackTraceGetterInterface {
public:
StackTraceGetter() = default;
~StackTraceGetter() override = default;
StackTraceGetter(const StackTraceGetter&) = delete;
StackTraceGetter& operator=(const StackTraceGetter&) = delete;
// ::testing::internal::OsStackTraceGetterInterface:
std::string CurrentStackTrace(int max_depth, int skip_count) override;
void UponLeavingGTest() override;
private:
size_t frame_count_upon_leaving_gtest_ = 0;
};
#endif // THIRD_PARTY_GOOGLETEST_CUSTOM_GTEST_INTERNAL_CUSTOM_STACK_TRACE_GETTER_H_