Alternate e697dbe9c5997e35395fe158628dd8c5209481da
for Visual Studio 2022 and Windows 11.
読み取り中…
検索中…
一致する文字列を見つけられません
FreightTest.cpp
[詳解]
1
5
6#include "pch.h"
7#include "Freight.hpp"
8#include "VirtualMemory.h"
9
10using namespace Microsoft::VisualStudio::CppUnitTestFramework;
11
12namespace WindowsLibraryTest
13{
14 TEST_CLASS (FreightTest)
15 {
16 public:
17 TEST_CLASS_INITIALIZE (ClassInitialize)
18 {
19 Logger::WriteMessage ("FreightTest class initialize.\n");
20 }
21
22 TEST_CLASS_CLEANUP (ClassCleanup)
23 {
24 Logger::WriteMessage ("FreightTest class cleanup.\n");
25 }
26
27 TEST_METHOD_INITIALIZE (MethodInitialize)
28 {
29 Logger::WriteMessage ("FreightTest method initialize.\n");
30 }
31
32 TEST_METHOD_CLEANUP (MethodCleanup)
33 {
34 Logger::WriteMessage ("FreightTest method cleanup.\n");
35 }
36
37 TEST_METHOD (FreightTestB)
38 {
39 const int arraySize = 10;
40 CHAR caData[arraySize]{ 'A','B','C','D','E','F','G','H','I','J' };
41
43 freight1.SetData (caData, arraySize);
44
45 ZeroMemory (caData, arraySize); // 影響ないことを確認。
46
47 alt::skeleton::Freight<CHAR> freight2 (freight1);
48
49 Assert::AreEqual<int> (
50 0,
51 _memicmp (
52 freight1.GetData (),
53 freight2.GetData (),
54 freight1.GetSize ()),
55 _T ("copy failed.\n"));
56
57 Assert::AreNotEqual<int> (
58 0,
59 _memicmp (
60 caData,
61 freight1.GetData (),
62 arraySize),
63 _T ("copy failed.\n"));
64
65 alt::skeleton::Freight<CHAR> freight3 (freight1);
66
67 Assert::AreEqual<int> (
68 0,
69 _memicmp (
70 freight1.GetData (),
71 freight3.GetData (),
72 freight1.GetSize ()),
73 _T ("copy failed.\n"));
74
75 Assert::AreNotEqual<int> (
76 0,
77 _memicmp (
78 caData,
79 freight3.GetData (),
80 arraySize),
81 _T ("copy failed.\n"));
82
83 alt::skeleton::Freight<CHAR> freight4 (caData, arraySize);
84
85 Assert::AreEqual<int> (
86 0,
87 _memicmp (
88 caData,
89 freight4.GetData (),
90 arraySize),
91 _T ("copy failed.\n"));
92
93 freight1.Clear (); // freight1はClear()後に消滅
94 freight4.Clear (); // freight4はClear()後に消滅
95 // freight2はクリアせずに消滅
96 // freight3はクリアせずに消滅
97 }
98
99 TEST_METHOD (FreightTestHO)
100 {
101 const int arraySize = 10;
102 CHAR caData[arraySize]{ 'A','B','C','D','E','F','G','H','I','J' };
103
104 alt::HeapMemory memory;
105 Assert::IsTrue (memory.Open(), _T("HeapMemory::Open() failed.\n"));
106 alt::skeleton::Freight<CHAR> freight1(&memory);
107
108 freight1.SetData (caData, arraySize);
109
110 ZeroMemory (caData, arraySize); // 影響ないことを確認。
111
112 alt::skeleton::Freight<CHAR> freight2 (freight1);
113
114 Assert::AreEqual<int> (
115 0,
116 _memicmp (
117 freight1.GetData (),
118 freight2.GetData (),
119 freight1.GetSize ()),
120 _T ("copy failed.\n"));
121
122 Assert::AreNotEqual<int> (
123 0,
124 _memicmp (
125 caData,
126 freight1.GetData (),
127 arraySize),
128 _T ("copy failed.\n"));
129
130 alt::skeleton::Freight<CHAR> freight3 (freight1);
131
132 Assert::AreEqual<int> (
133 0,
134 _memicmp (
135 freight1.GetData (),
136 freight3.GetData (),
137 freight1.GetSize ()),
138 _T ("copy failed.\n"));
139
140 Assert::AreNotEqual<int> (
141 0,
142 _memicmp (
143 caData,
144 freight3.GetData (),
145 arraySize),
146 _T ("copy failed.\n"));
147
148 alt::skeleton::Freight<CHAR> freight4 (caData, arraySize);
149
150 Assert::AreEqual<int> (
151 0,
152 _memicmp (
153 caData,
154 freight4.GetData (),
155 arraySize),
156 _T ("copy failed.\n"));
157
158 freight1.Clear (); // freight1はClear()後に消滅
159 freight4.Clear (); // freight4はClear()後に消滅
160 // freight2はクリアせずに消滅
161 // freight3はクリアせずに消滅
162 }
163
164 TEST_METHOD (FreightTestHC)
165 {
166 const int arraySize = 10;
167 CHAR caData[arraySize]{ 'A','B','C','D','E','F','G','H','I','J' };
168
169 alt::HeapMemory memory;
170 Assert::IsTrue (memory.Create(), _T("HeapMemory::Create() failed.\n"));
171 alt::skeleton::Freight<CHAR> freight1(&memory);
172
173 freight1.SetData (caData, arraySize);
174
175 ZeroMemory (caData, arraySize); // 影響ないことを確認。
176
177 alt::skeleton::Freight<CHAR> freight2 (freight1);
178
179 Assert::AreEqual<int> (
180 0,
181 _memicmp (
182 freight1.GetData (),
183 freight2.GetData (),
184 freight1.GetSize ()),
185 _T ("copy failed.\n"));
186
187 Assert::AreNotEqual<int> (
188 0,
189 _memicmp (
190 caData,
191 freight1.GetData (),
192 arraySize),
193 _T ("copy failed.\n"));
194
195 alt::skeleton::Freight<CHAR> freight3 (freight1);
196
197 Assert::AreEqual<int> (
198 0,
199 _memicmp (
200 freight1.GetData (),
201 freight3.GetData (),
202 freight1.GetSize ()),
203 _T ("copy failed.\n"));
204
205 Assert::AreNotEqual<int> (
206 0,
207 _memicmp (
208 caData,
209 freight3.GetData (),
210 arraySize),
211 _T ("copy failed.\n"));
212
213 alt::skeleton::Freight<CHAR> freight4 (caData, arraySize);
214
215 Assert::AreEqual<int> (
216 0,
217 _memicmp (
218 caData,
219 freight4.GetData (),
220 arraySize),
221 _T ("copy failed.\n"));
222
223 freight1.Clear (); // freight1はClear()後に消滅
224 freight4.Clear (); // freight4はClear()後に消滅
225 // freight2はクリアせずに消滅
226 // freight3はクリアせずに消滅
227 }
228
229 TEST_METHOD (FreightTestV1)
230 {
231 const int arraySize = 10;
232 CHAR caData[arraySize]{ 'A','B','C','D','E','F','G','H','I','J' };
233
234 alt::VirtualMemory1 memory;
235 alt::skeleton::Freight<CHAR> freight1(&memory);
236
237 freight1.SetData (caData, arraySize);
238
239 ZeroMemory (caData, arraySize); // 影響ないことを確認。
240
241 alt::skeleton::Freight<CHAR> freight2 (freight1);
242
243 Assert::AreEqual<int> (
244 0,
245 _memicmp (
246 freight1.GetData (),
247 freight2.GetData (),
248 freight1.GetSize ()),
249 _T ("copy failed.\n"));
250
251 Assert::AreNotEqual<int> (
252 0,
253 _memicmp (
254 caData,
255 freight1.GetData (),
256 arraySize),
257 _T ("copy failed.\n"));
258
259 alt::skeleton::Freight<CHAR> freight3 (freight1);
260
261 Assert::AreEqual<int> (
262 0,
263 _memicmp (
264 freight1.GetData (),
265 freight3.GetData (),
266 freight1.GetSize ()),
267 _T ("copy failed.\n"));
268
269 Assert::AreNotEqual<int> (
270 0,
271 _memicmp (
272 caData,
273 freight3.GetData (),
274 arraySize),
275 _T ("copy failed.\n"));
276
277 alt::skeleton::Freight<CHAR> freight4 (caData, arraySize);
278
279 Assert::AreEqual<int> (
280 0,
281 _memicmp (
282 caData,
283 freight4.GetData (),
284 arraySize),
285 _T ("copy failed.\n"));
286
287 freight1.Clear (); // freight1はClear()後に消滅
288 freight4.Clear (); // freight4はClear()後に消滅
289 // freight2はクリアせずに消滅
290 // freight3はクリアせずに消滅
291 }
292 };
293}
プリミティブな変数を管理するコンテナクラス
仮想メモリに関するWindowsAPIを集約したクラス
プリコンパイル済みヘッダー ファイルです。
ヒープメモリに関するAPIを集約したクラス
Definition: HeapMemory.h:46
BOOL APIENTRY Create(SIZE_T initialSize=0, SIZE_T maximumSize=0, DWORD dwOptions=0)
ヒープ領域の取得
Definition: HeapMemory.cpp:56
BOOL APIENTRY Open()
システムヒープ領域の取得
Definition: HeapMemory.cpp:87
仮想メモリの取得・解放を簡易的に実装したクラス
Definition: VirtualMemory.h:17
プリミティブな変数を管理するコンテナクラス
Definition: Freight.hpp:18
VOID APIENTRY Clear()
格納領域の開放
Definition: Freight.hpp:107
T *APIENTRY GetData() const
格納データの取得
Definition: Freight.hpp:100
size_t APIENTRY GetSize() const
格納データのサイズ取得
Definition: Freight.hpp:104
VOID APIENTRY SetData(T *lpData, size_t size)
値の設定
Definition: Freight.hpp:78
TEST_CLASS(ArrayTest)
Definition: ArrayTest.cpp:19