Add unit tests
knah opened this issue · 0 comments
knah commented
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)
- Various OS/Architecture combinations (current targets would be x86/x64/ARM; Windows, Linux, Android)
- 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.