.NET Decompiler with support for PDB generation, ReadyToRun, Metadata (&more) - cross-platform!
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
Daniel Grunwald f0a0ba8ac0 Fix some issues with missing casts for overload resolution and for boxing in attributes. 9 years ago
..
BitNot.il Reorganize TestRunner-Tests 9 years ago
Comparisons.cs Fix #217: cast both sides of reference comparison to object if necessary 9 years ago
CompoundAssignment.cs Reorganize TestRunner-Tests 9 years ago
ConditionalAttr.cs Remove unused usings in solution; remove dead code; unify namespaces 9 years ago
ControlFlow.cs Run IntroduceExitPoints before loop detection, and let loop detection introduce its own exit points. 9 years ago
Conversions.cs Adjust namespaces 9 years ago
DecimalFields.cs Reorganize TestRunner-Tests 9 years ago
Generics.cs Fix casts to type parameters. 9 years ago
HelloWorld.cs Reorganize TestRunner-Tests 9 years ago
InitializerTests.cs Reorganize TestRunner-Tests 9 years ago
MemberLookup.cs Reorganize TestRunner-Tests 9 years ago
OverloadResolution.cs Fix some issues with missing casts for overload resolution and for boxing in attributes. 9 years ago
PropertiesAndEvents.cs Remove unused usings in solution; remove dead code; unify namespaces 9 years ago
Readme.txt Reorganize TestRunner-Tests 9 years ago
Switch.cs Add a test case that demonstrates that if/switch detection and loop detection interact. 9 years ago
UndocumentedExpressions.cs Reorganize TestRunner-Tests 9 years ago
UnsafeCode.cs Fix decompilation of PointerReferenceExpression 9 years ago
ValueTypeCall.cs Fix decompilation of PointerReferenceExpression 9 years ago

Readme.txt

The files in this folder are correctness tests for the decompiler.

The NUnit class running these tests is ../../CorrectnessTestRunner.cs.

We:
* compile/assemble a test case (call the result "executable 1")
* decompile "executable 1" to C# ("decompiled.cs")
* compile decompiled.cs, resulting in "executable 2"
* run both executable and compare their output (exit code, stdout, stderr)

We repeat the steps above with a few different compiler options (/o+ or not; /debug or not).

The tests pass if the code compiles without error and produces the same output.
The tests do not care at all if the resulting code is pretty, or if any high-level constructs like closures were detected.