13
13
// Includes on Windows are highly order dependent.
14
14
#include < stdint.h>
15
15
#include " dxc/Support/WinIncludes.h"
16
- #include " WexTestClass.h"
17
16
#include " dxc/Test/HlslTestUtils.h"
18
17
19
18
#include " llvm/Support/MSFileSystem.h"
@@ -38,14 +37,15 @@ private: \
38
37
volatile std::atomic<llvm::sys::cas_flag> m_dwRef; \
39
38
\
40
39
public: \
41
- ULONG STDMETHODCALLTYPE AddRef () { return (ULONG)++m_dwRef; } \
42
- ULONG STDMETHODCALLTYPE Release () { \
40
+ ULONG STDMETHODCALLTYPE AddRef () override { return (ULONG)++m_dwRef; } \
41
+ ULONG STDMETHODCALLTYPE Release () override { \
43
42
ULONG result = (ULONG)--m_dwRef; \
44
43
if (result == 0 ) \
45
44
delete this ; \
46
45
return result; \
47
46
} \
48
- HRESULT STDMETHODCALLTYPE QueryInterface (REFIID iid, void **ppvObject) { \
47
+ HRESULT STDMETHODCALLTYPE QueryInterface (REFIID iid, void **ppvObject) \
48
+ override { \
49
49
if (ppvObject == nullptr ) \
50
50
return E_POINTER; \
51
51
if (IsEqualIID (iid, __uuidof (IUnknown)) || \
@@ -100,12 +100,12 @@ class FixedEnumSTATSTG : public IEnumSTATSTG {
100
100
m_items[i].pwcsName = CoTaskMemDup (m_items[i].pwcsName );
101
101
}
102
102
}
103
- ~FixedEnumSTATSTG () {
103
+ virtual ~FixedEnumSTATSTG () {
104
104
for (auto &item : m_items)
105
105
CoTaskMemFree (item.pwcsName );
106
106
}
107
- virtual HRESULT STDMETHODCALLTYPE Next (ULONG celt, STATSTG *rgelt,
108
- ULONG *pceltFetched) {
107
+ HRESULT STDMETHODCALLTYPE Next (ULONG celt, STATSTG *rgelt,
108
+ ULONG *pceltFetched) override {
109
109
if (celt != 1 || pceltFetched == nullptr )
110
110
return E_NOTIMPL;
111
111
if (m_index >= m_items.size ()) {
@@ -119,22 +119,20 @@ class FixedEnumSTATSTG : public IEnumSTATSTG {
119
119
++m_index;
120
120
return S_OK;
121
121
}
122
- virtual HRESULT STDMETHODCALLTYPE Skip (ULONG celt) { return E_NOTIMPL; }
123
- virtual HRESULT STDMETHODCALLTYPE Reset (void ) { return E_NOTIMPL; }
124
- virtual HRESULT STDMETHODCALLTYPE Clone (IEnumSTATSTG **) { return E_NOTIMPL; }
122
+ HRESULT STDMETHODCALLTYPE Skip (ULONG celt) override { return E_NOTIMPL; }
123
+ HRESULT STDMETHODCALLTYPE Reset (void ) override { return E_NOTIMPL; }
124
+ HRESULT STDMETHODCALLTYPE Clone (IEnumSTATSTG **) override {
125
+ return E_NOTIMPL;
126
+ }
125
127
};
126
128
127
129
class MockDxcSystemAccess : public IDxcSystemAccess {
128
130
SIMPLE_IUNKNOWN_IMPL1 (IDxcSystemAccess)
129
- private:
130
- LPCSTR m_fileName;
131
- LPCSTR m_contents;
132
- unsigned m_length;
133
131
134
132
public:
135
133
unsigned findCount;
136
134
MockDxcSystemAccess () : m_dwRef(0 ), findCount(1 ) {}
137
-
135
+ virtual ~MockDxcSystemAccess () {}
138
136
static HRESULT Create (MockDxcSystemAccess **pResult) {
139
137
*pResult = new (std::nothrow) MockDxcSystemAccess ();
140
138
if (*pResult == nullptr )
@@ -143,8 +141,8 @@ class MockDxcSystemAccess : public IDxcSystemAccess {
143
141
return S_OK;
144
142
}
145
143
146
- virtual HRESULT STDMETHODCALLTYPE EnumFiles (LPCWSTR fileName,
147
- IEnumSTATSTG **pResult) override {
144
+ HRESULT STDMETHODCALLTYPE EnumFiles (LPCWSTR fileName,
145
+ IEnumSTATSTG **pResult) override {
148
146
wchar_t hlslName[] = L" filename.hlsl" ;
149
147
wchar_t fxName[] = L" filename2.fx" ;
150
148
STATSTG items[] = {{hlslName,
@@ -180,94 +178,96 @@ class MockDxcSystemAccess : public IDxcSystemAccess {
180
178
*pResult = resultEnum;
181
179
return S_OK;
182
180
}
183
- virtual HRESULT STDMETHODCALLTYPE OpenStorage (LPCWSTR lpFileName,
184
- DWORD dwDesiredAccess,
185
- DWORD dwShareMode,
186
- DWORD dwCreationDisposition,
187
- DWORD dwFlagsAndAttributes,
188
- IUnknown **pResult) override {
181
+ HRESULT STDMETHODCALLTYPE OpenStorage (LPCWSTR lpFileName,
182
+ DWORD dwDesiredAccess,
183
+ DWORD dwShareMode,
184
+ DWORD dwCreationDisposition,
185
+ DWORD dwFlagsAndAttributes,
186
+ IUnknown **pResult) override {
189
187
*pResult = SHCreateMemStream (nullptr , 0 );
190
188
return (*pResult == nullptr ) ? E_OUTOFMEMORY : S_OK;
191
189
}
192
- virtual HRESULT STDMETHODCALLTYPE
190
+ HRESULT STDMETHODCALLTYPE
193
191
SetStorageTime (IUnknown *storage, const FILETIME *lpCreationTime,
194
192
const FILETIME *lpLastAccessTime,
195
193
const FILETIME *lpLastWriteTime) override {
196
194
return E_NOTIMPL;
197
195
}
198
- virtual HRESULT STDMETHODCALLTYPE GetFileInformationForStorage (
196
+ HRESULT STDMETHODCALLTYPE GetFileInformationForStorage (
199
197
IUnknown *storage,
200
198
LPBY_HANDLE_FILE_INFORMATION lpFileInformation) override {
201
199
return E_NOTIMPL;
202
200
}
203
- virtual HRESULT STDMETHODCALLTYPE
204
- GetFileTypeForStorage (IUnknown *storage, DWORD *fileType) override {
201
+ HRESULT STDMETHODCALLTYPE GetFileTypeForStorage (IUnknown *storage,
202
+ DWORD *fileType) override {
205
203
return E_NOTIMPL;
206
204
}
207
- virtual HRESULT STDMETHODCALLTYPE CreateHardLinkInStorage (
205
+ HRESULT STDMETHODCALLTYPE CreateHardLinkInStorage (
208
206
LPCWSTR lpFileName, LPCWSTR lpExistingFileName) override {
209
207
return E_NOTIMPL;
210
208
}
211
- virtual HRESULT STDMETHODCALLTYPE MoveStorage (LPCWSTR lpExistingFileName,
212
- LPCWSTR lpNewFileName,
213
- DWORD dwFlags) override {
209
+ HRESULT STDMETHODCALLTYPE MoveStorage (LPCWSTR lpExistingFileName,
210
+ LPCWSTR lpNewFileName,
211
+ DWORD dwFlags) override {
214
212
return E_NOTIMPL;
215
213
}
216
- virtual HRESULT STDMETHODCALLTYPE
214
+ HRESULT STDMETHODCALLTYPE
217
215
GetFileAttributesForStorage (LPCWSTR lpFileName, DWORD *pResult) override {
218
216
return E_NOTIMPL;
219
217
}
220
- virtual HRESULT STDMETHODCALLTYPE DeleteStorage (LPCWSTR lpFileName) override {
218
+ HRESULT STDMETHODCALLTYPE DeleteStorage (LPCWSTR lpFileName) override {
221
219
return E_NOTIMPL;
222
220
}
223
- virtual HRESULT STDMETHODCALLTYPE
221
+ HRESULT STDMETHODCALLTYPE
224
222
RemoveDirectoryStorage (LPCWSTR lpFileName) override {
225
223
return E_NOTIMPL;
226
224
}
227
- virtual HRESULT STDMETHODCALLTYPE
225
+ HRESULT STDMETHODCALLTYPE
228
226
CreateDirectoryStorage (LPCWSTR lpPathName) override {
229
227
return E_NOTIMPL;
230
228
}
231
- virtual HRESULT STDMETHODCALLTYPE GetCurrentDirectoryForStorage (
232
- DWORD nBufferLength, LPWSTR lpBuffer, DWORD *len) override {
229
+ HRESULT STDMETHODCALLTYPE GetCurrentDirectoryForStorage (DWORD nBufferLength,
230
+ LPWSTR lpBuffer,
231
+ DWORD *len) override {
233
232
return E_NOTIMPL;
234
233
}
235
- virtual HRESULT STDMETHODCALLTYPE GetMainModuleFileNameW (
236
- DWORD nBufferLength, LPWSTR lpBuffer, DWORD *len) override {
234
+ HRESULT STDMETHODCALLTYPE GetMainModuleFileNameW (DWORD nBufferLength,
235
+ LPWSTR lpBuffer,
236
+ DWORD *len) override {
237
237
return E_NOTIMPL;
238
238
}
239
- virtual HRESULT STDMETHODCALLTYPE GetTempStoragePath (DWORD nBufferLength,
240
- LPWSTR lpBuffer,
241
- DWORD *len) override {
239
+ HRESULT STDMETHODCALLTYPE GetTempStoragePath (DWORD nBufferLength,
240
+ LPWSTR lpBuffer,
241
+ DWORD *len) override {
242
242
return E_NOTIMPL;
243
243
}
244
- virtual HRESULT STDMETHODCALLTYPE
245
- SupportsCreateSymbolicLink (BOOL *pResult) override {
244
+ HRESULT STDMETHODCALLTYPE SupportsCreateSymbolicLink (BOOL *pResult) override {
246
245
return E_NOTIMPL;
247
246
}
248
- virtual HRESULT STDMETHODCALLTYPE CreateSymbolicLinkInStorage (
247
+ HRESULT STDMETHODCALLTYPE CreateSymbolicLinkInStorage (
249
248
LPCWSTR lpSymlinkFileName, LPCWSTR lpTargetFileName,
250
249
DWORD dwFlags) override {
251
250
return E_NOTIMPL;
252
251
}
253
- virtual HRESULT STDMETHODCALLTYPE CreateStorageMapping (
254
- IUnknown *hFile, DWORD flProtect, DWORD dwMaximumSizeHigh,
255
- DWORD dwMaximumSizeLow, IUnknown **pResult) override {
252
+ HRESULT STDMETHODCALLTYPE CreateStorageMapping (IUnknown *hFile,
253
+ DWORD flProtect,
254
+ DWORD dwMaximumSizeHigh,
255
+ DWORD dwMaximumSizeLow,
256
+ IUnknown **pResult) override {
256
257
return E_NOTIMPL;
257
258
}
258
- virtual HRESULT MapViewOfFile (IUnknown *hFileMappingObject,
259
- DWORD dwDesiredAccess, DWORD dwFileOffsetHigh,
260
- DWORD dwFileOffsetLow,
261
- SIZE_T dwNumberOfBytesToMap,
262
- ID3D10Blob **pResult) override {
259
+ HRESULT MapViewOfFile (IUnknown *hFileMappingObject, DWORD dwDesiredAccess,
260
+ DWORD dwFileOffsetHigh, DWORD dwFileOffsetLow,
261
+ SIZE_T dwNumberOfBytesToMap,
262
+ ID3D10Blob **pResult) override {
263
263
return E_NOTIMPL;
264
264
}
265
- virtual HRESULT STDMETHODCALLTYPE
266
- OpenStdStorage ( int standardFD, IUnknown **pResult) override {
265
+ HRESULT STDMETHODCALLTYPE OpenStdStorage ( int standardFD,
266
+ IUnknown **pResult) override {
267
267
return E_NOTIMPL;
268
268
}
269
- virtual HRESULT STDMETHODCALLTYPE
270
- GetStreamDisplay (ITextFont **textFont, unsigned *columnCount) override {
269
+ HRESULT STDMETHODCALLTYPE GetStreamDisplay (ITextFont **textFont,
270
+ unsigned *columnCount) override {
271
271
return E_NOTIMPL;
272
272
}
273
273
};
@@ -306,7 +306,7 @@ void MSFileSysTest::FindFirstWhenInvokedThenFailsIfNoMatch() {
306
306
CreateMSFileSystemForIface (access, &fileSystem);
307
307
WIN32_FIND_DATAW findData;
308
308
HANDLE h = fileSystem->FindFirstFileW (L" foobar" , &findData);
309
- VERIFY_ARE_EQUAL (ERROR_FILE_NOT_FOUND, GetLastError ());
309
+ VERIFY_ARE_EQUAL (ERROR_FILE_NOT_FOUND, ( long ) GetLastError ());
310
310
VERIFY_ARE_EQUAL (INVALID_HANDLE_VALUE, h);
311
311
VERIFY_ARE_EQUAL_WSTR (L" " , findData.cFileName );
312
312
delete fileSystem;
@@ -323,7 +323,7 @@ void MSFileSysTest::FindNextWhenLastThenNoMatch() {
323
323
VERIFY_ARE_NOT_EQUAL (INVALID_HANDLE_VALUE, h);
324
324
BOOL findNext = fileSystem->FindNextFileW (h, &findData);
325
325
VERIFY_IS_FALSE (findNext);
326
- VERIFY_ARE_EQUAL (ERROR_FILE_NOT_FOUND, GetLastError ());
326
+ VERIFY_ARE_EQUAL (ERROR_FILE_NOT_FOUND, ( long ) GetLastError ());
327
327
fileSystem->FindClose (h);
328
328
delete fileSystem;
329
329
}
@@ -357,7 +357,7 @@ void MSFileSysTest::OpenWhenNewThenZeroSize() {
357
357
char buf[4 ];
358
358
DWORD bytesRead;
359
359
VERIFY_IS_TRUE (fileSystem->ReadFile (h, buf, _countof (buf), &bytesRead));
360
- VERIFY_ARE_EQUAL (0 , bytesRead);
360
+ VERIFY_ARE_EQUAL (0u , bytesRead);
361
361
fileSystem->CloseHandle (h);
362
362
delete fileSystem;
363
363
}
0 commit comments