1// Copyright 2014 The Chromium Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5#ifndef NET_QUIC_TEST_TOOLS_SCOPED_DISABLE_EXIT_ON_DFATAL_H_ 6#define NET_QUIC_TEST_TOOLS_SCOPED_DISABLE_EXIT_ON_DFATAL_H_ 7 8#include "base/logging.h" 9#include "testing/gmock/include/gmock/gmock.h" 10#include "testing/gtest/include/gtest/gtest.h" 11 12namespace net { 13namespace test { 14 15 16// The ScopedDisableExitOnDFatal class is used to disable exiting the 17// program when we encounter a LOG(DFATAL) within the current block. 18// After we leave the current block, the default behavior is 19// restored. 20class ScopedDisableExitOnDFatal { 21 public: 22 ScopedDisableExitOnDFatal(); 23 ~ScopedDisableExitOnDFatal(); 24 25 private: 26 // Currently active instance. 27 static ScopedDisableExitOnDFatal* g_instance_; 28 29 // Static function which is set as the logging assert handler. 30 // Called when there is a check failure. 31 static void LogAssertHandler(const std::string& msg); 32 33 DISALLOW_COPY_AND_ASSIGN(ScopedDisableExitOnDFatal); 34}; 35 36} // namespace test 37} // namespace net 38 39#endif // NET_QUIC_TEST_TOOLS_SCOPED_DISABLE_EXIT_ON_DFATAL_H_ 40