Open
Description
Currently the "tests" are just running the "getting-started" examples. This doesn't scale and makes it difficult to find regressions.
The test framework:
- A single unified Visual Studio solution with test executables
- Build the solution with GitHub Actions so new feature PRs can be tested in the same PR
- A dump of a minimal Windows usermode environment (ntdll, kernel32, kernelbase, x64+x86)
- A dump of a more "complete" environment (winsock, cryptapi, advapi32, shell32, user32, etc.)
- Load the test executables with
dp.map_module
- Execute the (exported) test functions on a fresh
Dumpulator
instance each time - Calculate code coverage per test
Necessary tests:
All of these should use /NODEFAULTLIB
to not have to care about the MSVC runtime initialization (which uses a lot of unimplemented syscalls)
- ExceptionTest (for testing different exception scenarios)
- LoadLibrary (to test
map_module
and the whole PEB loading chain) - StringEncryptionFun
- More depending on coverage...