Skip to content

Proper (extensible) testing #28

Open
@mrexodia

Description

@mrexodia

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...

Metadata

Metadata

Assignees

No one assigned

    Labels

    featureNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions