-
-
Notifications
You must be signed in to change notification settings - Fork 283
Open
Labels
area:core-apiarea:libcpp2ilenhancementNew feature or requestNew feature or requestgood-first-issueFeel free to PR this!Feel free to PR this!
Description
This is a meta-issue to track the process of adding some tests to cover key things which have broken in the past or which urgently need test coverage.
LibCpp2IL
- v29 full game loading tests, any Unity version 2021.3.1 - 2021.3.39 (inclusive)
- Windows x64
- v29.1 full game loading tests, any full release of Unity 2022.1 or 2022.2, or 2022.3 prior to 2022.3.33
- Windows x64. This actually broke recently and wasn't caught due to lack of testing, and was fixed in 3eb40ca
- v31 full game loading tests, any Unity 2021.3 version newer than 2021.3.39 (so .40 and later)
- Windows x64
- v31.1 full game loading tests, 2022.3.34 and later, or modern unity 6 (presumed)
- Windows x64.
- Technically we already test this as part of
V29CustomAttributeTests, as that loads a 2022.3.35 game to get attribute blobs from. Just need to double check it covers all relevant code paths.
- Technically we already test this as part of
- Windows x64.
- Mach-O parsing tests.
- We do not need to cover all Unity versions here, there is very little version-dependent logic, but we don't test this at all right now.
- Arm64
- x86_64
- Universal mach-o binary (0xCAFEBABE magic number)
- WebAssembly parsing tests.
- Again we do not need to cover all Unity versions here but we should ensure we can load some files and be confident we won't break anything when we push a change.
- NSO files?
- Ideally we would have tests for NSO files, but that's possibly tricky from a legal perspective.
- PE file parsing tests where those are currently lacking.
- Most notably there's no testing for the export parser yet.
- ELF file parsing tests where those are currently lacking.
- x86_32 binary, for relocation testing.
- x86_64 binary, for relocation testing.
- Pre-24.2 testing for ARM (both v7 and v8) binaries, to test the unique logic for finding code/meta reg on those binaries.
- Export parsing tests
Cpp2IL.Core
- Tests for various KeyFunctionAddress scanners, so we can be more confident in their accuracy on a range of binaries.
- This will likely require all the Lib tests above so we have a good range of binaries to test scanning.
- We should manually locate and verify the functions, then check what KeyFunctionAddress scanners find against those known good addresses.
- Tests for ISIL conversion to ensure that a known sequence of instructions results in a fixed set of ISIL.
- x86_64
- NewArmV8 (Disarm)
- Other architectures as they're implemented...
- Tests for v29 attribute parsing where coverage is lacking
- Parsing attributes with fields set (we only test parsing those with properties right now)
- Parsing attributes that set a field or property in the base type of the attribute.
- This will likely require a custom setup to be defined in a test game.
- Tests for MethodAnalysisContext explicit interface overrides list.
- Tests for IsPrimitive and Type on TypeAnalysisContext
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
area:core-apiarea:libcpp2ilenhancementNew feature or requestNew feature or requestgood-first-issueFeel free to PR this!Feel free to PR this!