Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Proper (extensible) testing #28

Open
6 of 11 tasks
mrexodia opened this issue Oct 11, 2022 · 0 comments
Open
6 of 11 tasks

Proper (extensible) testing #28

mrexodia opened this issue Oct 11, 2022 · 0 comments
Labels
feature New feature or request

Comments

@mrexodia
Copy link
Owner

mrexodia commented Oct 11, 2022

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...
@mrexodia mrexodia added the feature New feature or request label Oct 11, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant