mirror of
https://github.com/thunderbrewhq/squall.git
synced 2026-02-03 16:39: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()
|
||||
|
||||
add_subdirectory(storm)
|
||||
if(WHOA_TEST_STORMDLL)
|
||||
add_definitions(-DWHOA_TEST_STORMDLL)
|
||||
add_subdirectory(test/stormdll)
|
||||
else()
|
||||
add_subdirectory(storm)
|
||||
endif()
|
||||
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);
|
||||
}
|
||||
|
||||
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(dest);
|
||||
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 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);
|
||||
|
||||
|
|
|
|||
|
|
@ -1,7 +1,20 @@
|
|||
file(GLOB_RECURSE TEST_SOURCES
|
||||
"*.cpp"
|
||||
"big/*.cpp"
|
||||
)
|
||||
|
||||
if(WHOA_TEST_STORMDLL)
|
||||
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)
|
||||
set_source_files_properties(${TEST_SOURCES}
|
||||
|
|
|
|||
|
|
@ -41,6 +41,7 @@ TEST_CASE("SStrChr const", "[string]") {
|
|||
}
|
||||
}
|
||||
|
||||
#if !defined(WHOA_TEST_STORMDLL)
|
||||
TEST_CASE("SStrChr", "[string]") {
|
||||
char string[] = "foobar";
|
||||
|
||||
|
|
@ -77,6 +78,7 @@ TEST_CASE("SStrChr", "[string]") {
|
|||
REQUIRE(result == nullptr);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
TEST_CASE("SStrChrR const", "[string]") {
|
||||
const char* string = "ffoobbaarr";
|
||||
|
|
@ -120,6 +122,7 @@ TEST_CASE("SStrChrR const", "[string]") {
|
|||
}
|
||||
}
|
||||
|
||||
#if !defined(WHOA_TEST_STORMDLL)
|
||||
TEST_CASE("SStrChrR", "[string]") {
|
||||
char string[] = "ffoobbaarr";
|
||||
|
||||
|
|
@ -162,6 +165,7 @@ TEST_CASE("SStrChrR", "[string]") {
|
|||
REQUIRE(result == nullptr);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
TEST_CASE("SStrCmp", "[string]") {
|
||||
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]") {
|
||||
SECTION("duplicates string correctly") {
|
||||
auto string1 = "foo bar";
|
||||
|
|
@ -244,6 +250,7 @@ TEST_CASE("SStrDupA", "[string]") {
|
|||
REQUIRE(newPtr == true);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
struct TestHash {
|
||||
const char *str;
|
||||
|
|
@ -346,6 +353,7 @@ TEST_CASE("SStrHash", "[string]") {
|
|||
}
|
||||
}
|
||||
|
||||
#if !defined(WHOA_TEST_STORMDLL)
|
||||
TEST_CASE("SStrHashHT", "[string]") {
|
||||
SECTION("hashes simple string correctly") {
|
||||
auto hash = SStrHashHT("foo");
|
||||
|
|
@ -363,6 +371,7 @@ TEST_CASE("SStrHashHT", "[string]") {
|
|||
REQUIRE(hashForwardSlash == hashBackSlash);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
TEST_CASE("SStrLen", "[string]") {
|
||||
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