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.
Unit tests are incredibly valuable when performing refactorings, rewrites, and even general development.
Things to cover:
Things to consider: