mirror of
https://github.com/thunderbrewhq/squall.git
synced 2026-02-04 00:49:08 +00:00
feat(test): add support for testing against storm.dll
This commit is contained in:
parent
47d903f4ac
commit
982a89b6da
9 changed files with 648 additions and 7 deletions
|
|
@ -79,5 +79,10 @@ if(CMAKE_COMPILER_IS_GNUCXX AND CMAKE_BUILD_TYPE STREQUAL "Debug")
|
||||||
)
|
)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
add_subdirectory(storm)
|
if(WHOA_TEST_STORMDLL)
|
||||||
|
add_definitions(-DWHOA_TEST_STORMDLL)
|
||||||
|
add_subdirectory(test/stormdll)
|
||||||
|
else()
|
||||||
|
add_subdirectory(storm)
|
||||||
|
endif()
|
||||||
add_subdirectory(test)
|
add_subdirectory(test)
|
||||||
|
|
|
||||||
23
CONTRIBUTING.md
Normal file
23
CONTRIBUTING.md
Normal file
|
|
@ -0,0 +1,23 @@
|
||||||
|
## Running Tests
|
||||||
|
|
||||||
|
### Coverage
|
||||||
|
Only runnable with GCC.
|
||||||
|
|
||||||
|
1. `sudo apt install lcov`
|
||||||
|
2. `mkdir build`
|
||||||
|
3. `cd build`
|
||||||
|
4. `cmake -DCMAKE_BUILD_TYPE=Debug ..`
|
||||||
|
5. `make StormCoverage`
|
||||||
|
|
||||||
|
Open the resulting `html` file for the report.
|
||||||
|
|
||||||
|
|
||||||
|
### Against an original copy of Storm.dll
|
||||||
|
Only runnable on Windows. Allows running tests against the original `storm.dll` rather than against the recreated code, to test accuracy.
|
||||||
|
|
||||||
|
1. `mkdir build`
|
||||||
|
2. `cd build`
|
||||||
|
2. `cmake -DWHOA_TEST_STORMDLL=1 -DWHOA_STORM_FLAVOR=SC1 -A Win32 ..`.
|
||||||
|
3. `cmake --build .`
|
||||||
|
4. Copy `storm.dll` from your Starcraft 1.17 installation folder to the same directory as `StormTest.exe`.
|
||||||
|
5. Run `StormTest.exe` from the command line.
|
||||||
|
|
@ -500,7 +500,7 @@ size_t STORMCDECL SStrPrintf(char* dest, size_t maxchars, const char* format, ..
|
||||||
return ISStrVPrintf(dest, maxchars, format, va);
|
return ISStrVPrintf(dest, maxchars, format, va);
|
||||||
}
|
}
|
||||||
|
|
||||||
size_t STORMAPI SStrVPrintf(char* dest, size_t maxchars, const char* format, va_list arglist) {
|
size_t STORMCDECL SStrVPrintf(char* dest, size_t maxchars, const char* format, va_list arglist) {
|
||||||
STORM_VALIDATE_BEGIN;
|
STORM_VALIDATE_BEGIN;
|
||||||
STORM_VALIDATE(dest);
|
STORM_VALIDATE(dest);
|
||||||
STORM_VALIDATE(format);
|
STORM_VALIDATE(format);
|
||||||
|
|
|
||||||
|
|
@ -38,7 +38,7 @@ uint32_t STORMAPI SStrPack(char* dest, const char* source, uint32_t destsize);
|
||||||
|
|
||||||
size_t STORMCDECL SStrPrintf(char* dest, size_t maxchars, const char* format, ...);
|
size_t STORMCDECL SStrPrintf(char* dest, size_t maxchars, const char* format, ...);
|
||||||
|
|
||||||
size_t STORMAPI SStrVPrintf(char* dest, size_t maxchars, const char* format, va_list arglist);
|
size_t STORMCDECL SStrVPrintf(char* dest, size_t maxchars, const char* format, va_list arglist);
|
||||||
|
|
||||||
char* STORMAPI SStrStr(char* string, const char* search);
|
char* STORMAPI SStrStr(char* string, const char* search);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,20 @@
|
||||||
file(GLOB_RECURSE TEST_SOURCES
|
|
||||||
"*.cpp"
|
if(WHOA_TEST_STORMDLL)
|
||||||
"big/*.cpp"
|
set(TEST_SOURCES
|
||||||
)
|
#Big.cpp
|
||||||
|
#Event.cpp
|
||||||
|
Memory.cpp
|
||||||
|
Region.cpp
|
||||||
|
String.cpp
|
||||||
|
Test.cpp
|
||||||
|
Unicode.cpp
|
||||||
|
)
|
||||||
|
else()
|
||||||
|
file(GLOB TEST_SOURCES
|
||||||
|
"*.cpp"
|
||||||
|
"big/*.cpp"
|
||||||
|
)
|
||||||
|
endif()
|
||||||
|
|
||||||
if(WHOA_SYSTEM_MAC)
|
if(WHOA_SYSTEM_MAC)
|
||||||
set_source_files_properties(${TEST_SOURCES}
|
set_source_files_properties(${TEST_SOURCES}
|
||||||
|
|
|
||||||
|
|
@ -41,6 +41,7 @@ TEST_CASE("SStrChr const", "[string]") {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if !defined(WHOA_TEST_STORMDLL)
|
||||||
TEST_CASE("SStrChr", "[string]") {
|
TEST_CASE("SStrChr", "[string]") {
|
||||||
char string[] = "foobar";
|
char string[] = "foobar";
|
||||||
|
|
||||||
|
|
@ -77,6 +78,7 @@ TEST_CASE("SStrChr", "[string]") {
|
||||||
REQUIRE(result == nullptr);
|
REQUIRE(result == nullptr);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
TEST_CASE("SStrChrR const", "[string]") {
|
TEST_CASE("SStrChrR const", "[string]") {
|
||||||
const char* string = "ffoobbaarr";
|
const char* string = "ffoobbaarr";
|
||||||
|
|
@ -120,6 +122,7 @@ TEST_CASE("SStrChrR const", "[string]") {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if !defined(WHOA_TEST_STORMDLL)
|
||||||
TEST_CASE("SStrChrR", "[string]") {
|
TEST_CASE("SStrChrR", "[string]") {
|
||||||
char string[] = "ffoobbaarr";
|
char string[] = "ffoobbaarr";
|
||||||
|
|
||||||
|
|
@ -162,6 +165,7 @@ TEST_CASE("SStrChrR", "[string]") {
|
||||||
REQUIRE(result == nullptr);
|
REQUIRE(result == nullptr);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
TEST_CASE("SStrCmp", "[string]") {
|
TEST_CASE("SStrCmp", "[string]") {
|
||||||
SECTION("compares two strings that exactly match correctly") {
|
SECTION("compares two strings that exactly match correctly") {
|
||||||
|
|
@ -221,6 +225,8 @@ TEST_CASE("SStrCmpI", "[string]") {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if !defined(WHOA_TEST_STORMDLL)
|
||||||
|
// TODO: SStrDup in SC only has 1 arg
|
||||||
TEST_CASE("SStrDupA", "[string]") {
|
TEST_CASE("SStrDupA", "[string]") {
|
||||||
SECTION("duplicates string correctly") {
|
SECTION("duplicates string correctly") {
|
||||||
auto string1 = "foo bar";
|
auto string1 = "foo bar";
|
||||||
|
|
@ -244,6 +250,7 @@ TEST_CASE("SStrDupA", "[string]") {
|
||||||
REQUIRE(newPtr == true);
|
REQUIRE(newPtr == true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
struct TestHash {
|
struct TestHash {
|
||||||
const char *str;
|
const char *str;
|
||||||
|
|
@ -346,6 +353,7 @@ TEST_CASE("SStrHash", "[string]") {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if !defined(WHOA_TEST_STORMDLL)
|
||||||
TEST_CASE("SStrHashHT", "[string]") {
|
TEST_CASE("SStrHashHT", "[string]") {
|
||||||
SECTION("hashes simple string correctly") {
|
SECTION("hashes simple string correctly") {
|
||||||
auto hash = SStrHashHT("foo");
|
auto hash = SStrHashHT("foo");
|
||||||
|
|
@ -363,6 +371,7 @@ TEST_CASE("SStrHashHT", "[string]") {
|
||||||
REQUIRE(hashForwardSlash == hashBackSlash);
|
REQUIRE(hashForwardSlash == hashBackSlash);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
TEST_CASE("SStrLen", "[string]") {
|
TEST_CASE("SStrLen", "[string]") {
|
||||||
SECTION("calculates string length correctly") {
|
SECTION("calculates string length correctly") {
|
||||||
|
|
|
||||||
3
test/stormdll/CMakeLists.txt
Normal file
3
test/stormdll/CMakeLists.txt
Normal file
|
|
@ -0,0 +1,3 @@
|
||||||
|
|
||||||
|
add_library(storm SHARED stormstubs.cpp storm.def)
|
||||||
|
target_include_directories(storm PRIVATE "../..")
|
||||||
471
test/stormdll/storm.def
Normal file
471
test/stormdll/storm.def
Normal file
|
|
@ -0,0 +1,471 @@
|
||||||
|
LIBRARY "Storm"
|
||||||
|
|
||||||
|
EXPORTS
|
||||||
|
; Networking
|
||||||
|
;SNetCreateGame @101 NONAME
|
||||||
|
;SNetDestroy @102 NONAME
|
||||||
|
;SNetEnumDevices @103 NONAME
|
||||||
|
;SNetEnumGames @104 NONAME
|
||||||
|
;SNetEnumProviders @105 NONAME
|
||||||
|
;SNetDropPlayer @106 NONAME
|
||||||
|
;SNetGetGameInfo @107 NONAME
|
||||||
|
;SNetGetNetworkLatency @108 NONAME
|
||||||
|
;SNetGetNumPlayers @109 NONAME
|
||||||
|
;SNetGetOwnerTurnsWaiting @110 NONAME
|
||||||
|
;SNetGetPerformanceData @111 NONAME
|
||||||
|
;SNetGetPlayerCaps @112 NONAME
|
||||||
|
;SNetGetPlayerName @113 NONAME
|
||||||
|
;SNetGetProviderCaps @114 NONAME
|
||||||
|
;SNetGetTurnsInTransit @115 NONAME
|
||||||
|
;SNetInitializeDevice @116 NONAME
|
||||||
|
;SNetInitializeProvider @117 NONAME
|
||||||
|
;SNetJoinGame @118 NONAME
|
||||||
|
;SNetLeaveGame @119 NONAME
|
||||||
|
;SNetPerformUpgrade @120 NONAME
|
||||||
|
;SNetReceiveMessage @121 NONAME
|
||||||
|
;SNetReceiveTurns @122 NONAME
|
||||||
|
;SNetRegisterEventHandler @123 NONAME
|
||||||
|
;SNetResetLatencyMeasurements @124 NONAME
|
||||||
|
;SNetSelectGame @125 NONAME
|
||||||
|
;SNetSelectProvider @126 NONAME
|
||||||
|
;SNetSendMessage @127 NONAME
|
||||||
|
;SNetSendTurn @128 NONAME
|
||||||
|
;SNetSetBasePlayer @129 NONAME
|
||||||
|
;SNetSetGameMode @130 NONAME
|
||||||
|
;SNetUnregisterEventHandler @131 NONAME
|
||||||
|
;SNetGetOwnerId @132 NONAME
|
||||||
|
;SNetEnumGamesEx @133 NONAME
|
||||||
|
;SNetSendServerChatCommand @134 NONAME
|
||||||
|
;SNetSendDatagram @135 NONAME
|
||||||
|
;SNetReceiveDatagram @136 NONAME
|
||||||
|
;SNetDisconnectAll @137 NONAME
|
||||||
|
;SNetCreateLadderGame @138 NONAME
|
||||||
|
;SNetReportGameResult @139 NONAME
|
||||||
|
;SNetCheckDataFile @140 NONAME
|
||||||
|
;SNetSendLeagueCommand @141 NONAME
|
||||||
|
;SNetSendReplayPath @142 NONAME
|
||||||
|
;SNetGetLeagueName @143 NONAME
|
||||||
|
;SNetGetPlayerNames @144 NONAME
|
||||||
|
;SNetLeagueLogout @145 NONAME
|
||||||
|
;SNetGetLeaguePlayerName @146 NONAME
|
||||||
|
|
||||||
|
; Dlg
|
||||||
|
;SDlgBeginPaint @201 NONAME
|
||||||
|
;SDlgBltToWindowI @202 NONAME
|
||||||
|
;SDlgCheckTimers @203 NONAME
|
||||||
|
;SDlgCreateDialogIndirectParam @204 NONAME
|
||||||
|
;SDlgCreateDialogParam @205 NONAME
|
||||||
|
;SDlgDefDialogProc @206 NONAME
|
||||||
|
;SDlgDestroy @207 NONAME
|
||||||
|
;SDlgDialogBoxIndirectParam @208 NONAME
|
||||||
|
;SDlgDialogBoxParam @209 NONAME
|
||||||
|
;SDlgDrawBitmap @210 NONAME
|
||||||
|
;SDlgEndDialog @211 NONAME
|
||||||
|
;SDlgEndPaint @212 NONAME
|
||||||
|
;SDlgKillTimer @213 NONAME
|
||||||
|
;SDlgSetBaseFont @214 NONAME
|
||||||
|
;SDlgSetBitmapI @215 NONAME
|
||||||
|
;SDlgSetControlBitmaps @216 NONAME
|
||||||
|
;SDlgSetCursor @217 NONAME
|
||||||
|
;SDlgSetSystemCursor @218 NONAME
|
||||||
|
;SDlgSetTimer @219 NONAME
|
||||||
|
;SDlgUpdateCursor @220 NONAME
|
||||||
|
;SDlgBltToWindowE @221 NONAME
|
||||||
|
;SDlgSetBitmapE @222 NONAME
|
||||||
|
;SDlgSetLocale @223 NONAME
|
||||||
|
;SDlgSetThrottle @224 NONAME
|
||||||
|
|
||||||
|
; File
|
||||||
|
;SFileAuthenticateArchive @251 NONAME
|
||||||
|
;SFileCloseArchive @252 NONAME
|
||||||
|
;SFileCloseFile @253 NONAME
|
||||||
|
;SFileDdaBegin @254 NONAME
|
||||||
|
;SFileDdaBeginEx @255 NONAME
|
||||||
|
;SFileDdaDestroy @256 NONAME
|
||||||
|
;SFileDdaEnd @257 NONAME
|
||||||
|
;SFileDdaGetPos @258 NONAME
|
||||||
|
;SFileDdaGetVolume @259 NONAME
|
||||||
|
;SFileDdaInitialize @260 NONAME
|
||||||
|
;SFileDdaSetVolume @261 NONAME
|
||||||
|
;SFileDestroy @262 NONAME
|
||||||
|
;SFileEnableDirectAccess @263 NONAME
|
||||||
|
;SFileGetFileArchive @264 NONAME
|
||||||
|
;SFileGetFileSize @265 NONAME
|
||||||
|
;SFileOpenArchive @266 NONAME
|
||||||
|
;SFileOpenFile @267 NONAME
|
||||||
|
;SFileOpenFileEx @268 NONAME
|
||||||
|
;SFileReadFile @269 NONAME
|
||||||
|
;SFileSetBasePath @270 NONAME
|
||||||
|
;SFileSetFilePointer @271 NONAME
|
||||||
|
;SFileSetLocale @272 NONAME
|
||||||
|
;SFileGetBasePath @273 NONAME
|
||||||
|
;SFileSetIoErrorMode @274 NONAME
|
||||||
|
;SFileGetArchiveName @275 NONAME
|
||||||
|
;SFileGetFileName @276 NONAME
|
||||||
|
;SFileGetArchiveInfo @277 NONAME
|
||||||
|
;SFileSetPlatform @278 NONAME
|
||||||
|
;SFileLoadFile @279 NONAME
|
||||||
|
;SFileUnloadFile @280 NONAME
|
||||||
|
;SFileLoadFileEx @281 NONAME
|
||||||
|
;SFilePrioritizeRequest @282 NONAME
|
||||||
|
;SFileCancelRequest @283 NONAME
|
||||||
|
;SFileSetAsyncBudget @284 NONAME
|
||||||
|
;SFileSetDataChunkSize @285 NONAME
|
||||||
|
;SFileEnableSeekOptimization @286 NONAME
|
||||||
|
;SFileReadFileEx @287 NONAME
|
||||||
|
;SFileFileExists @288 NONAME
|
||||||
|
;SFileFileExistsEx @289 NONAME
|
||||||
|
;SFileReadFileEx2 @290 NONAME
|
||||||
|
;SFileReadFile2 @291 NONAME
|
||||||
|
;SFileLoadFile2 @292 NONAME
|
||||||
|
;SFileOpenFileAsArchive @293 NONAME
|
||||||
|
;SFileGetLocale @294 NONAME
|
||||||
|
;SFileGetInstancePath @295 NONAME
|
||||||
|
;SFileGetSavePath @296 NONAME
|
||||||
|
;SFileSetSavePath @297 NONAME
|
||||||
|
;SFileAuthenticateArchiveEx @299 NONAME
|
||||||
|
;SFileOpenPathAsArchive @300 NONAME
|
||||||
|
|
||||||
|
; Main
|
||||||
|
; This is the only *Destroy function exported, tests will need to use it instead
|
||||||
|
;StormDestroy @301 NONAME
|
||||||
|
;StormGetInstance @302 NONAME
|
||||||
|
;StormGetOption @303 NONAME
|
||||||
|
;StormSetOption @304 NONAME
|
||||||
|
|
||||||
|
; Blit
|
||||||
|
;SBltDestroy @311 NONAME
|
||||||
|
;SBltGetSCode @312 NONAME
|
||||||
|
;SBltROP3 @313 NONAME
|
||||||
|
;SBltROP3Clipped @314 NONAME
|
||||||
|
;SBltROP3Tiled @315 NONAME
|
||||||
|
|
||||||
|
; BMP
|
||||||
|
;SBmpDecodeImage @321 NONAME
|
||||||
|
;SBmpLoadImage @323 NONAME
|
||||||
|
;SBmpSaveImage @324 NONAME
|
||||||
|
;SBmpAllocLoadImage @325 NONAME
|
||||||
|
;SBmpSaveImageEx @326 NONAME
|
||||||
|
;SBmpRealign @327 NONAME
|
||||||
|
;SBmpGetAligned @328 NONAME
|
||||||
|
|
||||||
|
; SCode
|
||||||
|
;SCodeCompile @331 NONAME
|
||||||
|
;SCodeDelete @332 NONAME
|
||||||
|
;SCodeDestroy @333 NONAME
|
||||||
|
;SCodeExecute @334 NONAME
|
||||||
|
;SCodeGetPseudocode @335 NONAME
|
||||||
|
|
||||||
|
; Draw
|
||||||
|
;SDrawAutoInitialize @341 NONAME
|
||||||
|
;SDrawCaptureScreen @342 NONAME
|
||||||
|
;SDrawClearSurface @343 NONAME
|
||||||
|
;SDrawDestroy @344 NONAME
|
||||||
|
;SDrawFlipPage @345 NONAME
|
||||||
|
;SDrawGetFrameWindow @346 NONAME
|
||||||
|
;SDrawGetObjects @347 NONAME
|
||||||
|
;SDrawGetScreenSize @348 NONAME
|
||||||
|
;SDrawGetServiceLevel @349 NONAME
|
||||||
|
;SDrawLockSurface @350 NONAME
|
||||||
|
;SDrawManualInitialize @351 NONAME
|
||||||
|
;SDrawMessageBox @352 NONAME
|
||||||
|
;SDrawPostClose @353 NONAME
|
||||||
|
;SDrawRealizePalette @354 NONAME
|
||||||
|
;SDrawSelectGdiSurface @355 NONAME
|
||||||
|
;SDrawUnlockSurface @356 NONAME
|
||||||
|
;SDrawUpdatePalette @357 NONAME
|
||||||
|
;SDrawUpdateScreen @358 NONAME
|
||||||
|
;SDrawWaitForVerticalBlank @359 NONAME
|
||||||
|
|
||||||
|
; Event
|
||||||
|
;SEvtDestroy @371 NONAME
|
||||||
|
SEvtDispatch @372 NONAME
|
||||||
|
SEvtRegisterHandler @373 NONAME
|
||||||
|
SEvtUnregisterHandler @374 NONAME
|
||||||
|
SEvtUnregisterType @375 NONAME
|
||||||
|
SEvtPopState @376 NONAME
|
||||||
|
SEvtPushState @377 NONAME
|
||||||
|
SEvtBreakHandlerChain @378 NONAME
|
||||||
|
|
||||||
|
; GDI
|
||||||
|
;SGdiBitBlt @381 NONAME
|
||||||
|
;SGdiCreateFont @382 NONAME
|
||||||
|
;SGdiDeleteObject @383 NONAME
|
||||||
|
;SGdiDestroy @384 NONAME
|
||||||
|
;SGdiExtTextOut @385 NONAME
|
||||||
|
;SGdiImportFont @386 NONAME
|
||||||
|
;SGdiLoadFont @387 NONAME
|
||||||
|
;SGdiRectangle @388 NONAME
|
||||||
|
;SGdiSelectObject @389 NONAME
|
||||||
|
;SGdiSetPitch @390 NONAME
|
||||||
|
;SGdiTextOut @391 NONAME
|
||||||
|
;SGdiSetTargetDimensions @392 NONAME
|
||||||
|
;SGdiGetTextExtent @393 NONAME
|
||||||
|
|
||||||
|
; Memory
|
||||||
|
SMemAlloc @401 NONAME
|
||||||
|
;SMemDestroy @402 NONAME
|
||||||
|
SMemFree @403 NONAME
|
||||||
|
;SMemGetSize @404 NONAME
|
||||||
|
SMemReAlloc @405 NONAME
|
||||||
|
;SMemGetAllocated @406 NONAME
|
||||||
|
|
||||||
|
; Message handling
|
||||||
|
;SMsgDestroy @411 NONAME
|
||||||
|
;SMsgDispatchMessage @412 NONAME
|
||||||
|
;SMsgDoMessageLoop @413 NONAME
|
||||||
|
;SMsgRegisterCommand @414 NONAME
|
||||||
|
;SMsgRegisterKeyDown @415 NONAME
|
||||||
|
;SMsgRegisterKeyUp @416 NONAME
|
||||||
|
;SMsgRegisterMessage @417 NONAME
|
||||||
|
;SMsgPopRegisterState @418 NONAME
|
||||||
|
;SMsgPushRegisterState @419 NONAME
|
||||||
|
;SMsgRegisterSysCommand @420 NONAME
|
||||||
|
|
||||||
|
; Registry
|
||||||
|
;SRegLoadData @421 NONAME
|
||||||
|
;SRegLoadString @422 NONAME
|
||||||
|
;SRegLoadValue @423 NONAME
|
||||||
|
;SRegSaveData @424 NONAME
|
||||||
|
;SRegSaveString @425 NONAME
|
||||||
|
;SRegSaveValue @426 NONAME
|
||||||
|
;SRegGetBaseKey @427 NONAME
|
||||||
|
;SRegDeleteValue @428 NONAME
|
||||||
|
;SRegEnumKey @429 NONAME
|
||||||
|
;SRegGetNumSubKeys @430 NONAME
|
||||||
|
|
||||||
|
; Transparency
|
||||||
|
;STransBlt @431 NONAME
|
||||||
|
;STransBltUsingMask @432 NONAME
|
||||||
|
;STransCreateI @433 NONAME
|
||||||
|
;STransDelete @434 NONAME
|
||||||
|
;STransDestroy @435 NONAME
|
||||||
|
;STransDuplicate @436 NONAME
|
||||||
|
;STransIntersectDirtyArray @437 NONAME
|
||||||
|
;STransInvertMask @438 NONAME
|
||||||
|
;STransLoadI @439 NONAME
|
||||||
|
;STransSetDirtyArrayInfo @440 NONAME
|
||||||
|
;STransUpdateDirtyArray @441 NONAME
|
||||||
|
;STransIsPixelInMask @442 NONAME
|
||||||
|
;STransCombineMasks @443 NONAME
|
||||||
|
;STransCreateMaskI @444 NONAME
|
||||||
|
;STransCreateE @445 NONAME
|
||||||
|
;STransCreateMaskE @446 NONAME
|
||||||
|
;STransLoadE @447 NONAME
|
||||||
|
|
||||||
|
; Video
|
||||||
|
;SVidDestroy @451 NONAME
|
||||||
|
;SVidGetSize @452 NONAME
|
||||||
|
;SVidInitialize @453 NONAME
|
||||||
|
;SVidPlayBegin @454 NONAME
|
||||||
|
;SVidPlayBeginFromMemory @455 NONAME
|
||||||
|
;SVidPlayContinue @456 NONAME
|
||||||
|
;SVidPlayContinueSingle @457 NONAME
|
||||||
|
;SVidPlayEnd @458 NONAME
|
||||||
|
;SVidSetVolume @459 NONAME
|
||||||
|
|
||||||
|
; Error
|
||||||
|
;SErrDestroy @460 NONAME
|
||||||
|
SErrDisplayError @461 NONAME
|
||||||
|
;SErrGetErrorStr @462 NONAME
|
||||||
|
SErrGetLastError @463 NONAME
|
||||||
|
;SErrRegisterMessageSource @464 NONAME
|
||||||
|
;SErrSetLastError @465 NONAME
|
||||||
|
;SErrReportNamedResourceLeak @466 NONAME
|
||||||
|
;SErrReportResourceLeak @467 NONAME
|
||||||
|
SErrSuppressErrors @468 NONAME
|
||||||
|
;SErrRegisterHandler @469 NONAME
|
||||||
|
;SErrUnregisterHandler @470 NONAME
|
||||||
|
|
||||||
|
; Command line
|
||||||
|
;SCmdGetBool @472 NONAME
|
||||||
|
;SCmdGetNum @473 NONAME
|
||||||
|
;SCmdGetString @474 NONAME
|
||||||
|
;SCmdProcess @475 NONAME
|
||||||
|
;SCmdRegisterArgList @476 NONAME
|
||||||
|
;SCmdRegisterArgument @477 NONAME
|
||||||
|
;SCmdCheckId @478 NONAME
|
||||||
|
;SCmdProcessCommandLine @479 NONAME
|
||||||
|
;SCmdStringExists @480 NONAME
|
||||||
|
|
||||||
|
; Memory extended
|
||||||
|
;SMemFindNextBlock @481 NONAME
|
||||||
|
;SMemFindNextHeap @482 NONAME
|
||||||
|
;SMemGetHeapByCaller @483 NONAME
|
||||||
|
;SMemGetHeapByPtr @484 NONAME
|
||||||
|
;SMemHeapAlloc @485 NONAME
|
||||||
|
;SMemHeapCreate @486 NONAME
|
||||||
|
;SMemHeapDestroy @487 NONAME
|
||||||
|
;SMemHeapFree @488 NONAME
|
||||||
|
;SMemHeapRealloc @489 NONAME
|
||||||
|
;SMemHeapSize @490 NONAME
|
||||||
|
SMemCopy @491 NONAME
|
||||||
|
SMemFill @492 NONAME
|
||||||
|
SMemMove @493 NONAME
|
||||||
|
SMemZero @494 NONAME
|
||||||
|
;SMemCmp @495 NONAME
|
||||||
|
;SMemSetDebugFlags @496 NONAME
|
||||||
|
;SMemDumpState @497 NONAME
|
||||||
|
|
||||||
|
; Strings
|
||||||
|
SStrCopy @501 NONAME
|
||||||
|
SStrHash @502 NONAME
|
||||||
|
SStrPack @503 NONAME
|
||||||
|
SStrTokenize @504 NONAME
|
||||||
|
;SStrChr @505 NONAME
|
||||||
|
SStrLen @506 NONAME
|
||||||
|
SStrDupA @507 NONAME
|
||||||
|
SStrCmp @508 NONAME
|
||||||
|
SStrCmpI @509 NONAME
|
||||||
|
SStrUpper @510 NONAME
|
||||||
|
|
||||||
|
; Messages extended
|
||||||
|
;SMsgBreakHandlerChain @511 NONAME
|
||||||
|
;SMsgUnregisterCommand @512 NONAME
|
||||||
|
;SMsgUnregisterKeyDown @513 NONAME
|
||||||
|
;SMsgUnregisterKeyUp @514 NONAME
|
||||||
|
;SMsgUnregisterMessage @515 NONAME
|
||||||
|
;SMsgGetDispatcher @516 NONAME
|
||||||
|
;SMsgSetDefaultWindow @517 NONAME
|
||||||
|
;SMsgGetDefaultWindow @518 NONAME
|
||||||
|
;SMsgUnregisterSysCommand @519 NONAME
|
||||||
|
|
||||||
|
; Regions
|
||||||
|
SRgnClear @521 NONAME
|
||||||
|
SRgnCombineRecti @523 NONAME
|
||||||
|
SRgnCreate @524 NONAME
|
||||||
|
SRgnDelete @525 NONAME
|
||||||
|
;SRgnDestroy @526 NONAME
|
||||||
|
SRgnDuplicate @527 NONAME
|
||||||
|
SRgnGetRectParamsi @528 NONAME
|
||||||
|
SRgnGetRectsi @529 NONAME
|
||||||
|
SRgnGetBoundingRecti @530 NONAME
|
||||||
|
SRgnIsPointInRegioni @531 NONAME
|
||||||
|
SRgnIsRectInRegioni @532 NONAME
|
||||||
|
SRgnOffseti @533 NONAME
|
||||||
|
SRgnCombineRectf @534 NONAME
|
||||||
|
SRgnGetRectParamsf @535 NONAME
|
||||||
|
SRgnGetRectsf @536 NONAME
|
||||||
|
SRgnGetBoundingRectf @537 NONAME
|
||||||
|
SRgnIsPointInRegionf @538 NONAME
|
||||||
|
SRgnIsRectInRegionf @539 NONAME
|
||||||
|
SRgnOffsetf @540 NONAME
|
||||||
|
|
||||||
|
; Logging
|
||||||
|
;SLogClose @541 NONAME
|
||||||
|
;SLogCreate @542 NONAME
|
||||||
|
;SLogSetTimestamp @543 NONAME
|
||||||
|
;SLogDump @544 NONAME
|
||||||
|
;SLogFlush @545 NONAME
|
||||||
|
;SLogFlushAll @546 NONAME
|
||||||
|
;SLogPend @547 NONAME
|
||||||
|
;SLogWrite @548 NONAME
|
||||||
|
;SLogSetAbsIndent @549 NONAME
|
||||||
|
;SLogSetIndent @550 NONAME
|
||||||
|
|
||||||
|
; Compression
|
||||||
|
;SCompCompress @551 NONAME
|
||||||
|
;SCompDecompress @552 NONAME
|
||||||
|
|
||||||
|
; Errors extended
|
||||||
|
;SLogVWrite @553 NONAME
|
||||||
|
;SErrCheckDebugSymbolLibrary @561 NONAME
|
||||||
|
SErrDisplayErrorFmt @562 NONAME
|
||||||
|
;SErrIsDisplayingError @563 NONAME
|
||||||
|
SErrPrepareAppFatal @564 NONAME
|
||||||
|
;SErrSetLogTitleString @565 NONAME
|
||||||
|
SErrDisplayAppFatal @566 NONAME
|
||||||
|
;SErrCatchUnhandledExceptions @567 NONAME
|
||||||
|
;SErrSetLogCallback @568 NONAME
|
||||||
|
|
||||||
|
; Strings extended
|
||||||
|
;?SStrChr@@YGPADPADD@Z @569 NONAME ; Not offered in SC 1.17
|
||||||
|
;?SStrChrR@@YGPADPADD@Z @570 NONAME ; Not offered in SC 1.17
|
||||||
|
?SStrChr@@YGPBDPBDD@Z @571 NONAME
|
||||||
|
?SStrChrR@@YGPBDPBDD@Z @572 NONAME
|
||||||
|
SStrToDouble @573 NONAME
|
||||||
|
SStrToFloat @574 NONAME
|
||||||
|
SStrToInt @575 NONAME
|
||||||
|
SStrToUnsigned @576 NONAME
|
||||||
|
;SStrToInt64 @577 NONAME
|
||||||
|
SStrPrintf @578 NONAME
|
||||||
|
SStrLower @579 NONAME
|
||||||
|
;SStrHash64 @580 NONAME
|
||||||
|
SStrVPrintf @581 NONAME
|
||||||
|
|
||||||
|
; More drawing
|
||||||
|
;SDrawSetClientRect @582 NONAME
|
||||||
|
;SDrawGetClientRect @583 NONAME
|
||||||
|
|
||||||
|
; More strings
|
||||||
|
?SStrStr@@YGPADPADPBD@Z @584 NONAME
|
||||||
|
?SStrStr@@YGPBDPBD0@Z @585 NONAME
|
||||||
|
?SStrStrI@@YGPADPADPBD@Z @586 NONAME
|
||||||
|
?SStrStrI@@YGPBDPBD0@Z @587 NONAME
|
||||||
|
;SStrHashHT @595 NONAME ; Not offered in SC 1.17
|
||||||
|
|
||||||
|
; Big numbers
|
||||||
|
SBigAdd @601 NONAME
|
||||||
|
SBigAnd @602 NONAME
|
||||||
|
SBigCompare @603 NONAME
|
||||||
|
SBigCopy @604 NONAME
|
||||||
|
SBigDec @605 NONAME
|
||||||
|
SBigDel @606 NONAME
|
||||||
|
SBigDiv @607 NONAME
|
||||||
|
;SBigFindPrime @608 NONAME
|
||||||
|
SBigFromBinary @609 NONAME
|
||||||
|
SBigFromStr @610 NONAME
|
||||||
|
;SBigFromStream @611 NONAME
|
||||||
|
SBigFromUnsigned @612 NONAME
|
||||||
|
;SBigGcd @613 NONAME
|
||||||
|
SBigInc @614 NONAME
|
||||||
|
;SBigInvMod @615 NONAME
|
||||||
|
SBigIsEven @616 NONAME
|
||||||
|
SBigIsOdd @617 NONAME
|
||||||
|
SBigIsOne @618 NONAME
|
||||||
|
;SBigIsPrime @619 NONAME
|
||||||
|
SBigIsZero @620 NONAME
|
||||||
|
SBigMod @621 NONAME
|
||||||
|
SBigMul @622 NONAME
|
||||||
|
;SBigMulMod @623 NONAME
|
||||||
|
SBigNew @624 NONAME
|
||||||
|
SBigNot @625 NONAME
|
||||||
|
SBigOr @626 NONAME
|
||||||
|
;SBigPow @627 NONAME
|
||||||
|
SBigPowMod @628 NONAME
|
||||||
|
;SBigRand @629 NONAME
|
||||||
|
;SBigSet2Exp @630 NONAME
|
||||||
|
;SBigSetOne @631 NONAME
|
||||||
|
;SBigSetZero @632 NONAME
|
||||||
|
SBigShl @633 NONAME
|
||||||
|
SBigShr @634 NONAME
|
||||||
|
SBigSquare @635 NONAME
|
||||||
|
SBigSub @636 NONAME
|
||||||
|
;SBigToBinaryArray @637 NONAME
|
||||||
|
SBigToBinaryBuffer @638 NONAME
|
||||||
|
;SBigToBinaryPtr @639 NONAME
|
||||||
|
;SBigToStrArray @640 NONAME
|
||||||
|
;SBigToStrBuffer @641 NONAME
|
||||||
|
;SBigToStrPtr @642 NONAME
|
||||||
|
;SBigToStreamArray @643 NONAME
|
||||||
|
;SBigToStreamBuffer @644 NONAME
|
||||||
|
;SBigToStreamPtr @645 NONAME
|
||||||
|
SBigToUnsigned @646 NONAME
|
||||||
|
SBigXor @647 NONAME
|
||||||
|
|
||||||
|
; Unicode
|
||||||
|
;SUniConvertUTF16to8Len @901 NONAME
|
||||||
|
;SUniConvertUTF16to8 @902 NONAME
|
||||||
|
;SUniConvertUTF8to16Len @903 NONAME
|
||||||
|
;SUniConvertUTF8to16 @904 NONAME
|
||||||
|
SUniSGetUTF8 @905 NONAME
|
||||||
|
SUniSPutUTF8 @906 NONAME
|
||||||
|
;SUniFindAfterUTF8Chr @907 NONAME
|
||||||
|
;SUniFindUTF8ChrStart @908 NONAME
|
||||||
|
;SUniConvertUTF16ToWin @909 NONAME
|
||||||
|
;SUniConvertUTF16ToMac @910 NONAME
|
||||||
|
;SUniConvertUTF16ToDos @911 NONAME
|
||||||
|
;SUniConvertWinToUTF16 @912 NONAME
|
||||||
|
;SUniConvertMacToUTF16 @913 NONAME
|
||||||
|
;SUniConvertDosToUTF16 @914 NONAME
|
||||||
|
;SUniConvertUTF8ToWin @915 NONAME
|
||||||
117
test/stormdll/stormstubs.cpp
Normal file
117
test/stormdll/stormstubs.cpp
Normal file
|
|
@ -0,0 +1,117 @@
|
||||||
|
#include <storm/Big.hpp>
|
||||||
|
|
||||||
|
void STORMAPI SBigAdd(BigData*, BigData*, BigData*) {}
|
||||||
|
void STORMAPI SBigAnd(BigData*, BigData*, BigData*) {}
|
||||||
|
void STORMAPI SBigBitLen(BigData*, uint32_t*) {}
|
||||||
|
int32_t STORMAPI SBigCompare(BigData*, BigData*) { return 0; }
|
||||||
|
void STORMAPI SBigCopy(BigData*, BigData*) {}
|
||||||
|
void STORMAPI SBigDec(BigData*, BigData*) {}
|
||||||
|
void STORMAPI SBigDel(BigData*) {}
|
||||||
|
void STORMAPI SBigDiv(BigData*, BigData*, BigData*) {}
|
||||||
|
void STORMAPI SBigFromBinary(BigData*, const void*, uint32_t) {}
|
||||||
|
void STORMAPI SBigFromStr(BigData*, const char*) {}
|
||||||
|
void STORMAPI SBigFromUnsigned(BigData*, uint32_t) {}
|
||||||
|
void STORMAPI SBigInc(BigData*, BigData*) {}
|
||||||
|
int32_t STORMAPI SBigIsEven(BigData*) {return 0;}
|
||||||
|
int32_t STORMAPI SBigIsOdd(BigData*) {return 0;}
|
||||||
|
int32_t STORMAPI SBigIsOne(BigData*) {return 0;}
|
||||||
|
int32_t STORMAPI SBigIsZero(BigData*) {return 0;}
|
||||||
|
void STORMAPI SBigMod(BigData*, BigData*, BigData*) {}
|
||||||
|
void STORMAPI SBigMul(BigData*, BigData*, BigData*) {}
|
||||||
|
void STORMAPI SBigNew(BigData**) {}
|
||||||
|
void STORMAPI SBigNot(BigData*, BigData*) {}
|
||||||
|
void STORMAPI SBigOr(BigData*, BigData*, BigData*) {}
|
||||||
|
void STORMAPI SBigPowMod(BigData*, BigData*, BigData*, BigData*) {}
|
||||||
|
void STORMAPI SBigShl(BigData*, BigData*, uint32_t) {}
|
||||||
|
void STORMAPI SBigShr(BigData*, BigData*, uint32_t) {}
|
||||||
|
void STORMAPI SBigSquare(BigData*, BigData*) {}
|
||||||
|
void STORMAPI SBigSub(BigData*, BigData*, BigData*) {}
|
||||||
|
void STORMAPI SBigToBinaryBuffer(BigData*, uint8_t*, uint32_t, uint32_t*) {}
|
||||||
|
void STORMAPI SBigXor(BigData*, BigData*, BigData*) {}
|
||||||
|
void STORMAPI SBigToUnsigned(BigData*, uint32_t*) {}
|
||||||
|
|
||||||
|
#include <storm/Error.hpp>
|
||||||
|
|
||||||
|
void STORMCDECL SErrDisplayAppFatal(const char* format, ...) {}
|
||||||
|
int32_t STORMAPI SErrDisplayError(uint32_t, const char*, int32_t, const char*, int32_t, uint32_t, uint32_t) { return 0; }
|
||||||
|
int32_t STORMCDECL SErrDisplayErrorFmt(uint32_t, const char*, int32_t, int32_t, uint32_t, const char*, ...) { return 0; }
|
||||||
|
void STORMAPI SErrPrepareAppFatal(const char*, int32_t) {}
|
||||||
|
void STORMAPI SErrSetLastError(uint32_t) {}
|
||||||
|
uint32_t STORMAPI SErrGetLastError() { return 0; }
|
||||||
|
void STORMAPI SErrSuppressErrors(uint32_t) {}
|
||||||
|
|
||||||
|
|
||||||
|
#include <storm/Event.hpp>
|
||||||
|
|
||||||
|
int32_t STORMAPI SEvtBreakHandlerChain(void*) { return 0; }
|
||||||
|
int32_t STORMAPI SEvtDestroy() { return 0; }
|
||||||
|
int32_t STORMAPI SEvtDispatch(uint32_t, uint32_t, uint32_t, void*) { return 0; }
|
||||||
|
int32_t STORMAPI SEvtPopState(uint32_t, uint32_t) { return 0; }
|
||||||
|
int32_t STORMAPI SEvtPushState(uint32_t, uint32_t) { return 0; }
|
||||||
|
int32_t STORMAPI SEvtRegisterHandler(uint32_t, uint32_t, uint32_t, uint32_t, SEVTHANDLER) { return 0; }
|
||||||
|
int32_t STORMAPI SEvtUnregisterHandler(uint32_t, uint32_t, uint32_t, SEVTHANDLER) { return 0; }
|
||||||
|
int32_t STORMAPI SEvtUnregisterType(uint32_t, uint32_t) { return 0; }
|
||||||
|
|
||||||
|
#include <storm/Memory.hpp>
|
||||||
|
|
||||||
|
void* STORMAPI SMemAlloc(size_t, const char*, int32_t, uint32_t) { return 0; }
|
||||||
|
void STORMAPI SMemCopy(void*, void*, size_t) {}
|
||||||
|
void STORMAPI SMemFill(void*, size_t, uint8_t) {}
|
||||||
|
void STORMAPI SMemFree(void*, const char*, int32_t, uint32_t) {}
|
||||||
|
void STORMAPI SMemMove(void*, void*, size_t) {}
|
||||||
|
void* STORMAPI SMemReAlloc(void*, size_t, const char*, int32_t, uint32_t) { return 0; }
|
||||||
|
void STORMAPI SMemZero(void*, size_t) {}
|
||||||
|
|
||||||
|
#include <storm/Region.hpp>
|
||||||
|
|
||||||
|
void STORMAPI SRgnClear(HSRGN) {}
|
||||||
|
void STORMAPI SRgnCombineRectf(HSRGN, const RECTF*, void*, int32_t) {}
|
||||||
|
void STORMAPI SRgnCombineRecti(HSRGN, const RECT*, void*, int32_t) {}
|
||||||
|
void STORMAPI SRgnCreate(HSRGN*, uint32_t) {}
|
||||||
|
void STORMAPI SRgnDelete(HSRGN) {}
|
||||||
|
void STORMAPI SRgnDuplicate(HSRGN, HSRGN*, uint32_t) {}
|
||||||
|
void STORMAPI SRgnGetBoundingRectf(HSRGN, RECTF*) {}
|
||||||
|
void STORMAPI SRgnGetBoundingRecti(HSRGN, RECT*) {}
|
||||||
|
void STORMAPI SRgnGetRectParamsf(HSRGN, const RECTF*, uint32_t*, void**) {}
|
||||||
|
void STORMAPI SRgnGetRectParamsi(HSRGN, const RECT*, uint32_t*, void**) {}
|
||||||
|
void STORMAPI SRgnGetRectsf(HSRGN, uint32_t*, RECTF*) {}
|
||||||
|
void STORMAPI SRgnGetRectsi(HSRGN, uint32_t*, RECT*) {}
|
||||||
|
int32_t STORMAPI SRgnIsPointInRegionf(HSRGN, float, float) { return 0; }
|
||||||
|
int32_t STORMAPI SRgnIsPointInRegioni(HSRGN, int32_t, int32_t) { return 0; }
|
||||||
|
int32_t STORMAPI SRgnIsRectInRegionf(HSRGN, const RECTF*) { return 0; }
|
||||||
|
int32_t STORMAPI SRgnIsRectInRegioni(HSRGN, const RECT*) { return 0; }
|
||||||
|
void STORMAPI SRgnOffsetf(HSRGN, float, float) {}
|
||||||
|
void STORMAPI SRgnOffseti(HSRGN, int32_t, int32_t) {}
|
||||||
|
|
||||||
|
#include <storm/String.hpp>
|
||||||
|
|
||||||
|
char* STORMAPI SStrChr(char*, char) { return 0; }
|
||||||
|
const char* STORMAPI SStrChr(const char*, char) { return 0; }
|
||||||
|
char* STORMAPI SStrChrR(char*, char) { return 0; }
|
||||||
|
const char* STORMAPI SStrChrR(const char*, char) { return 0; }
|
||||||
|
int32_t STORMAPI SStrCmp(const char*, const char*, size_t) { return 0; }
|
||||||
|
int32_t STORMAPI SStrCmpI(const char*, const char*, size_t) { return 0; }
|
||||||
|
size_t STORMAPI SStrCopy(char*, const char*, size_t) { return 0; }
|
||||||
|
char* STORMAPI SStrDupA(const char*, const char*, uint32_t) { return 0; }
|
||||||
|
uint32_t STORMAPI SStrHash(const char*, uint32_t, uint32_t) { return 0; }
|
||||||
|
uint32_t STORMAPI SStrHashHT(const char*) { return 0; }
|
||||||
|
size_t STORMAPI SStrLen(const char*) { return 0; }
|
||||||
|
void STORMAPI SStrLower(char*) {}
|
||||||
|
uint32_t STORMAPI SStrPack(char*, const char*, uint32_t) { return 0; }
|
||||||
|
size_t STORMCDECL SStrPrintf(char*, size_t, const char*, ...) { return 0; }
|
||||||
|
size_t STORMCDECL SStrVPrintf(char*, size_t, const char*, va_list) { return 0; }
|
||||||
|
char* STORMAPI SStrStr(char*, const char*) { return 0; }
|
||||||
|
const char* STORMAPI SStrStr(const char*, const char*) { return 0; }
|
||||||
|
char* STORMAPI SStrStrI(char*, const char*) { return 0; }
|
||||||
|
const char* STORMAPI SStrStrI(const char*, const char*) { return 0; }
|
||||||
|
void STORMAPI SStrTokenize(const char**, char*, size_t, const char*, int32_t*) {}
|
||||||
|
double STORMAPI SStrToDouble(const char*) { return 0; }
|
||||||
|
float STORMAPI SStrToFloat(const char*) { return 0; }
|
||||||
|
int32_t STORMAPI SStrToInt(const char*) { return 0; }
|
||||||
|
uint32_t STORMAPI SStrToUnsigned(const char*) { return 0; }
|
||||||
|
void STORMAPI SStrUpper(char*) {}
|
||||||
|
|
||||||
|
#include <storm/Unicode.hpp>
|
||||||
|
|
||||||
|
uint32_t STORMAPI SUniSGetUTF8(const uint8_t*, int32_t*) {return 0; }
|
||||||
|
void STORMAPI SUniSPutUTF8(uint32_t, char*) {}
|
||||||
Loading…
Add table
Add a link
Reference in a new issue