Sha256: d4edc0cf154433e79c0469ef9be3b1400f51bb9ad098c0dfb48ad1ec13f34fce

Contents?: true

Size: 1.05 KB

Versions: 35

Compression:

Stored size: 1.05 KB

Contents

#pragma once

/**
 * @file
 * @copyright (c) 2013 Stephan Brenner
 * @license   This project is released under the MIT License.
 *
 * This file implements a main() function for Google Test that runs all tests
 * and detects memory leaks.
 */

#include <iostream>
#include <crtdbg.h>
#include <gtest/gtest.h>

using namespace std;
using namespace testing;

namespace testing
{
  class MemoryLeakDetector : public EmptyTestEventListener
  {
#ifdef _DEBUG
  public:
    virtual void OnTestStart(const TestInfo&)
    {
      _CrtMemCheckpoint(&memState_);
    }

    virtual void OnTestEnd(const TestInfo& test_info){
      if(test_info.result()->Passed())
      {
        _CrtMemState stateNow, stateDiff;
        _CrtMemCheckpoint(&stateNow);
        int diffResult = _CrtMemDifference(&stateDiff, &memState_, &stateNow);
        if (diffResult)
        {
          FAIL() << "Memory leak of " << stateDiff.lSizes[1] << " byte(s) detected.";
        }
      }
    }

  private:
    _CrtMemState memState_;
#endif // _DEBUG
  };
}

Version data entries

35 entries across 35 versions & 1 rubygems

Version Path
uia-1.0 ext/UiaDll/UiaDll.Test/MemoryLeakDetector.h
uia-0.8 ext/UiaDll/UiaDll.Test/MemoryLeakDetector.h
uia-0.7 ext/UiaDll/UiaDll.Test/MemoryLeakDetector.h
uia-0.7.alpha.1 ext/UiaDll/UiaDll.Test/MemoryLeakDetector.h
uia-0.6 ext/UiaDll/UiaDll.Test/MemoryLeakDetector.h
uia-0.5 ext/UiaDll/UiaDll.Test/MemoryLeakDetector.h
uia-0.4.4 ext/UiaDll/UiaDll.Test/MemoryLeakDetector.h
uia-0.4.3 ext/UiaDll/UiaDll.Test/MemoryLeakDetector.h
uia-0.4.2 ext/UiaDll/UiaDll.Test/MemoryLeakDetector.h
uia-0.4.1 ext/UiaDll/UiaDll.Test/MemoryLeakDetector.h
uia-0.4 ext/UiaDll/UiaDll.Test/MemoryLeakDetector.h
uia-0.3.3 ext/UiaDll/UiaDll.Test/MemoryLeakDetector.h
uia-0.3.2 ext/UiaDll/UiaDll.Test/MemoryLeakDetector.h
uia-0.3.1 ext/UiaDll/UiaDll.Test/MemoryLeakDetector.h
uia-0.3 ext/UiaDll/UiaDll.Test/MemoryLeakDetector.h
uia-0.2.1 ext/UiaDll/UiaDll.Test/MemoryLeakDetector.h
uia-0.2 ext/UiaDll/UiaDll.Test/MemoryLeakDetector.h
uia-0.1.3.1 ext/UiaDll/UiaDll.Test/MemoryLeakDetector.h
uia-0.1.3 ext/UiaDll/UiaDll.Test/MemoryLeakDetector.h
uia-0.1.2.3 ext/UiaDll/UiaDll.Test/MemoryLeakDetector.h