11using namespace Microsoft::VisualStudio::CppUnitTestFramework;
13#define TEST_FILE _T(".\\DiskIOTest.txt")
20 TEST_CLASS_INITIALIZE (ClassInitialize)
22 Logger::WriteMessage (
"DiagnosticsTest class initialize.\n");
25 TEST_CLASS_CLEANUP (ClassCleanup)
27 Logger::WriteMessage (
"DiagnosticsTest class cleanup.\n");
30 TEST_METHOD_INITIALIZE (MethodInitialize)
32 Logger::WriteMessage (
"DiagnosticsTest method initialize.\n");
35 TEST_METHOD_CLEANUP (MethodCleanup)
37 Logger::WriteMessage (
"DiagnosticsTest method cleanup.\n");
40 void MemoryStatusPrint (PROCESS_MEMORY_COUNTERS& pmc)
42 TCHAR tszBuf[MAX_PATH];
44 Logger::WriteMessage (_T (
"\n---------------------------------------------------------------\n"));
46 _stprintf_s (tszBuf, _T (
"最大ワーキングセット(メモリ使用量)__________________ %10llu\n"), pmc.PeakWorkingSetSize);
47 Logger::WriteMessage (tszBuf);
49 _stprintf_s (tszBuf, _T (
"現在ワーキングセット(最大メモリ使用量)______________ %10llu\n"), pmc.WorkingSetSize);
50 Logger::WriteMessage (tszBuf);
52 _stprintf_s (tszBuf, _T (
"最大ページプールの使用サイズ(ページプール)__________ %10llu\n"), pmc.QuotaPeakPagedPoolUsage);
53 Logger::WriteMessage (tszBuf);
55 _stprintf_s (tszBuf, _T (
"最大非ページプールの使用サイズ(非ページプール)______ %10llu\n"), pmc.QuotaPeakNonPagedPoolUsage);
56 Logger::WriteMessage (tszBuf);
58 _stprintf_s (tszBuf, _T (
"現在ページングファイルの使用サイズ(仮想メモリサイズ) %10llu\n"), pmc.PagefileUsage);
59 Logger::WriteMessage (tszBuf);
61 _stprintf_s (tszBuf, _T (
"ページ・フォールト数________________________________ %10u\n"), pmc.PageFaultCount);
62 Logger::WriteMessage (tszBuf);
68 TEST_METHOD (MemoryDiagnosticsTest)
73 PROCESS_MEMORY_COUNTERS pmc;
75 Assert::IsTrue (ret, _T(
"Diagnostics::GetProcessMemory() failed.\n"));
76 MemoryStatusPrint (pmc);
78 BYTE* pbyBuf =
new BYTE[1024 * 1024 * 1024];
80 Assert::IsTrue (ret, _T(
"Diagnostics::GetProcessMemory() failed.\n"));
81 MemoryStatusPrint (pmc);
83 ZeroMemory (pbyBuf, 1024 * 1024 * 1024);
85 Assert::IsTrue (ret, _T(
"Diagnostics::GetProcessMemory() failed.\n"));
86 MemoryStatusPrint (pmc);
90 Assert::IsTrue (ret, _T(
"Diagnostics::GetProcessMemory() failed.\n"));
91 MemoryStatusPrint (pmc);
94 TEST_METHOD (DiskDiagnosticsTest)
97 IO_COUNTERS ioCounters;
101 Assert::IsTrue (ret, _T(
"Diagnostics::GetProcessIO() failed.\n"));
102 DiskStatusPrint (ioCounters);
105 ret = pFile->
Create (
TEST_FILE, GENERIC_ALL, FILE_SHARE_READ, CREATE_ALWAYS);
106 Assert::IsTrue (ret, _T(
"File::Create() failed.\n"));
109 ZeroMemory (byTest, 1024);
110 pFile->
Write (byTest, 1024);
113 Assert::IsTrue (ret, _T(
"Diagnostics::GetProcessIO() failed.\n"));
114 DiskStatusPrint (ioCounters);
117 pFile->
Read (byTest, 1024);
120 Assert::IsTrue (ret, _T(
"Diagnostics::GetProcessIO() failed.\n"));
121 DiskStatusPrint (ioCounters);
130 void DiskStatusPrint (IO_COUNTERS& ioCounters)
132 TCHAR tszBuf[MAX_PATH];
134 Logger::WriteMessage (_T (
"\n---------------------------------------------------------------\n"));
136 _stprintf_s (tszBuf, _T (
"I/O読み取り________ %10llu\n"), ioCounters.ReadOperationCount);
137 Logger::WriteMessage (tszBuf);
139 _stprintf_s (tszBuf, _T (
"I/O書き込み________ %10llu\n"), ioCounters.WriteOperationCount);
140 Logger::WriteMessage (tszBuf);
142 _stprintf_s (tszBuf, _T (
"I/Oその他__________ %10llu\n"), ioCounters.OtherOperationCount);
143 Logger::WriteMessage (tszBuf);
145 _stprintf_s (tszBuf, _T (
"I/O読み取りバイト数 %10llu\n"), ioCounters.ReadTransferCount);
146 Logger::WriteMessage (tszBuf);
148 _stprintf_s (tszBuf, _T (
"I/O書き込みバイト数 %10llu\n"), ioCounters.WriteTransferCount);
149 Logger::WriteMessage (tszBuf);
151 _stprintf_s (tszBuf, _T (
"I/Oその他バイト数__ %10llu\n"), ioCounters.OtherTransferCount);
152 Logger::WriteMessage (tszBuf);
155 TEST_METHOD (NetworkDiagnosticsTest)
158 MIB_IPSTATS mibIPStats;
162 Assert::IsTrue (ret, _T(
"Diagnostics::GetIpStatistics() failed.\n"));
163 NetworkStatusPrint (mibIPStats);
166 void NetworkStatusPrint (MIB_IPSTATS& mibIPStats)
168 TCHAR tszBuf[MAX_PATH];
170 Logger::WriteMessage (_T (
"\n---------------------------------------------------------------\n"));
172 _stprintf_s (tszBuf, _T (
"dwForwarding : %ld\n"), mibIPStats.dwForwarding);
173 Logger::WriteMessage (tszBuf);
174 _stprintf_s (tszBuf, _T (
"dwDefaultTTL: %ld\n"), mibIPStats.dwDefaultTTL);
175 Logger::WriteMessage (tszBuf);
176 _stprintf_s (tszBuf, _T (
"dwInReceives: %ld\n"), mibIPStats.dwInReceives);
177 Logger::WriteMessage (tszBuf);
178 _stprintf_s (tszBuf, _T (
"dwInHdrErrors: %ld\n"), mibIPStats.dwInHdrErrors);
179 Logger::WriteMessage (tszBuf);
180 _stprintf_s (tszBuf, _T (
"dwInAddrErrors: %ld\n"), mibIPStats.dwInAddrErrors);
181 Logger::WriteMessage (tszBuf);
182 _stprintf_s (tszBuf, _T (
"dwForwDatagrams: %ld\n"), mibIPStats.dwForwDatagrams);
183 Logger::WriteMessage (tszBuf);
184 _stprintf_s (tszBuf, _T (
"dwInUnknownProtos: %ld\n"), mibIPStats.dwInUnknownProtos);
185 Logger::WriteMessage (tszBuf);
186 _stprintf_s (tszBuf, _T (
"dwInDiscards: %ld\n"), mibIPStats.dwInDiscards);
187 Logger::WriteMessage (tszBuf);
188 _stprintf_s (tszBuf, _T (
"dwInDelivers: %ld\n"), mibIPStats.dwInDelivers);
189 Logger::WriteMessage (tszBuf);
190 _stprintf_s (tszBuf, _T (
"dwOutRequests: %ld\n"), mibIPStats.dwOutRequests);
191 Logger::WriteMessage (tszBuf);
192 _stprintf_s (tszBuf, _T (
"dwRoutingDiscards: %ld\n"), mibIPStats.dwRoutingDiscards);
193 Logger::WriteMessage (tszBuf);
194 _stprintf_s (tszBuf, _T (
"dwOutDiscards: %ld\n"), mibIPStats.dwOutDiscards);
195 Logger::WriteMessage (tszBuf);
196 _stprintf_s (tszBuf, _T (
"dwOutNoRoutes: %ld\n"), mibIPStats.dwOutNoRoutes);
197 Logger::WriteMessage (tszBuf);
198 _stprintf_s (tszBuf, _T (
"dwReasmTimeout: %ld\n"), mibIPStats.dwReasmTimeout);
199 Logger::WriteMessage (tszBuf);
200 _stprintf_s (tszBuf, _T (
"dwReasmReqds: %ld\n"), mibIPStats.dwReasmReqds);
201 Logger::WriteMessage (tszBuf);
202 _stprintf_s (tszBuf, _T (
"dwReasmOks: %ld\n"), mibIPStats.dwReasmOks);
203 Logger::WriteMessage (tszBuf);
204 _stprintf_s (tszBuf, _T (
"dwReasmFails: %ld\n"), mibIPStats.dwReasmFails);
205 Logger::WriteMessage (tszBuf);
206 _stprintf_s (tszBuf, _T (
"dwFragOks: %ld\n"), mibIPStats.dwFragOks);
207 Logger::WriteMessage (tszBuf);
208 _stprintf_s (tszBuf, _T (
"dwFragFails: %ld\n"), mibIPStats.dwFragFails);
209 Logger::WriteMessage (tszBuf);
210 _stprintf_s (tszBuf, _T (
"dwFragCreates: %ld\n"), mibIPStats.dwFragCreates);
211 Logger::WriteMessage (tszBuf);
212 _stprintf_s (tszBuf, _T (
"dwNumIf: %ld\n"), mibIPStats.dwNumIf);
213 Logger::WriteMessage (tszBuf);
214 _stprintf_s (tszBuf, _T (
"dwNumAddr: %ld\n"), mibIPStats.dwNumAddr);
215 Logger::WriteMessage (tszBuf);
216 _stprintf_s (tszBuf, _T (
"dwNumRoutes: %ld\n"), mibIPStats.dwNumRoutes);
217 Logger::WriteMessage (tszBuf);
システム性能に関するWindowsAPIを集約したクラス
ファイルIOに関するWindowsAPIを集約したクラス
ファイルハンドルを伴わないファイルIOに関するWindowsAPIを集約した クラス
システム性能に関するWindowsAPIを集約したクラス
BOOL APIENTRY GetProcessIO(IO_COUNTERS &ioCounters) const
プロセスI/O情報を取得します。
BOOL APIENTRY GetIpStatistics(MIB_IPSTATS &mibIPStats) const
ネットワークI/O情報を取得します。
BOOL APIENTRY GetProcessMemory(PROCESS_MEMORY_COUNTERS &processMemoryCounters) const
プロセスメモリ情報を取得します。
ファイルIOに関するWindowsAPIを集約したクラス
BOOL APIENTRY Create(LPCTSTR lpctszFileName, DWORD dwDesiredAccess, DWORD dwShareMode, DWORD dwCreationDisposition)
ファイルを作成、オープンします。
BOOL APIENTRY SetPointer(DWORD dwMoveMethod, LARGE_INTEGER liDistanceToMove={ 0 }) const
ファイルポインタを移動します。
static BOOL APIENTRY Delete(LPCTSTR name)
ファイルの削除
BOOL APIENTRY Close()
使用しなくなったハンドルはこれでクローズします。
DWORD APIENTRY Read(LPVOID lpvBuffer, DWORD dwSize) const
HANDLEを使ってデータを読み込みます。
DWORD APIENTRY Write(LPCVOID lpcvBuffer, DWORD dwSize) const
HANDLEを使ってデータを書き込みます。