38 lines
		
	
	
		
			924 B
		
	
	
	
		
			C++
		
	
	
	
			
		
		
	
	
			38 lines
		
	
	
		
			924 B
		
	
	
	
		
			C++
		
	
	
	
| /*
 | |
|  *  Created by Martin on 12/07/2017.
 | |
|  *
 | |
|  *  Distributed under the Boost Software License, Version 1.0. (See accompanying
 | |
|  *  file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 | |
|  */
 | |
| 
 | |
|  #include "catch_leak_detector.h"
 | |
|  #include "catch_interfaces_registry_hub.h"
 | |
| 
 | |
| 
 | |
| #ifdef CATCH_CONFIG_WINDOWS_CRTDBG
 | |
| #include <crtdbg.h>
 | |
| 
 | |
| namespace Catch {
 | |
| 
 | |
|     LeakDetector::LeakDetector() {
 | |
|         int flag = _CrtSetDbgFlag(_CRTDBG_REPORT_FLAG);
 | |
|         flag |= _CRTDBG_LEAK_CHECK_DF;
 | |
|         flag |= _CRTDBG_ALLOC_MEM_DF;
 | |
|         _CrtSetDbgFlag(flag);
 | |
|         _CrtSetReportMode(_CRT_WARN, _CRTDBG_MODE_FILE | _CRTDBG_MODE_DEBUG);
 | |
|         _CrtSetReportFile(_CRT_WARN, _CRTDBG_FILE_STDERR);
 | |
|         // Change this to leaking allocation's number to break there
 | |
|         _CrtSetBreakAlloc(-1);
 | |
|     }
 | |
| }
 | |
| 
 | |
| #else
 | |
| 
 | |
|     Catch::LeakDetector::LeakDetector() {}
 | |
| 
 | |
| #endif
 | |
| 
 | |
| Catch::LeakDetector::~LeakDetector() {
 | |
|     Catch::cleanUp();
 | |
| }
 |