adg icon indicating copy to clipboard operation
adg copied to clipboard

Add unit tests

Open knah opened this issue 3 years ago • 0 comments

Unit tests are incredibly valuable when performing refactorings, rewrites, and even general development.
Things to cover:

  • Assembly generation
    • [ ] Various OS/Architecture combinations (current targets would be x86/x64/ARM; Windows, Linux, Android)
      • The generation process itself currently is targeting Windows only, optionally Linux - Android modding test approaches currently modify the APK on the PC
    • [ ] Various Unity/IL2CPP versions (ideally one sample for each metadata format, see the Il2CppVersions repo)
    • [ ] Renaming for deobfuscation
    • [ ] Generation-time xref scans
    • [ ] General validity of resulting assemblies as far as netcore is concerned (#44)
  • Runtime features
    • [ ] Figure out a way to run an IL2CPP GameAssembly without the corresponding Unity game?
    • [ ] General functioning of generated assemblies
    • [ ] Class injection (on different architectures/OS - does GH Actions have ARM runners?)
    • [ ] Assuming any arch is not covered by generation-time xref scanning - that there are any architectures left
    • [ ] Delegates conversion

Things to consider:

  • Test data (generated GameAssembly/metadata/generated dummy dlls) can be exceedingly big, so put it into a subrepo
  • Test execution time should be kept low, so include dummy dlls in test data?
  • Include some easy ways to generate new variations of test data for other platforms/unity versions (sample project, sample build scripts? Run IL2CPP converter/compiler without unity editor?)
  • No real games in test data, only hand-built sample projects might be limiting, but also not impossible to expand to cover various versions.

knah avatar Jun 30 '21 16:06 knah