47 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			C++
		
	
	
	
			
		
		
	
	
			47 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			C++
		
	
	
	
| //===-- stats_test.cpp ------------------------------------------*- C++ -*-===//
 | |
| //
 | |
| // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
 | |
| // See https://llvm.org/LICENSE.txt for license information.
 | |
| // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 | |
| //
 | |
| //===----------------------------------------------------------------------===//
 | |
| 
 | |
| #include "tests/scudo_unit_test.h"
 | |
| 
 | |
| #include "stats.h"
 | |
| 
 | |
| TEST(ScudoStatsTest, LocalStats) {
 | |
|   scudo::LocalStats LStats;
 | |
|   LStats.init();
 | |
|   for (scudo::uptr I = 0; I < scudo::StatCount; I++)
 | |
|     EXPECT_EQ(LStats.get(static_cast<scudo::StatType>(I)), 0U);
 | |
|   LStats.add(scudo::StatAllocated, 4096U);
 | |
|   EXPECT_EQ(LStats.get(scudo::StatAllocated), 4096U);
 | |
|   LStats.sub(scudo::StatAllocated, 4096U);
 | |
|   EXPECT_EQ(LStats.get(scudo::StatAllocated), 0U);
 | |
|   LStats.set(scudo::StatAllocated, 4096U);
 | |
|   EXPECT_EQ(LStats.get(scudo::StatAllocated), 4096U);
 | |
| }
 | |
| 
 | |
| TEST(ScudoStatsTest, GlobalStats) {
 | |
|   scudo::GlobalStats GStats;
 | |
|   GStats.init();
 | |
|   scudo::uptr Counters[scudo::StatCount] = {};
 | |
|   GStats.get(Counters);
 | |
|   for (scudo::uptr I = 0; I < scudo::StatCount; I++)
 | |
|     EXPECT_EQ(Counters[I], 0U);
 | |
|   scudo::LocalStats LStats;
 | |
|   LStats.init();
 | |
|   GStats.link(&LStats);
 | |
|   for (scudo::uptr I = 0; I < scudo::StatCount; I++)
 | |
|     LStats.add(static_cast<scudo::StatType>(I), 4096U);
 | |
|   GStats.get(Counters);
 | |
|   for (scudo::uptr I = 0; I < scudo::StatCount; I++)
 | |
|     EXPECT_EQ(Counters[I], 4096U);
 | |
|   // Unlinking the local stats move numbers to the global stats.
 | |
|   GStats.unlink(&LStats);
 | |
|   GStats.get(Counters);
 | |
|   for (scudo::uptr I = 0; I < scudo::StatCount; I++)
 | |
|     EXPECT_EQ(Counters[I], 4096U);
 | |
| }
 |