.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 1a8ce7d345 Add BreakUnlessContinue test case 8 years ago
..
BitNot.il Reorganize TestRunner-Tests 9 years ago
Capturing.cs Re-enable foreach pattern 8 years ago
Comparisons.cs Move correctness tests to single namespace 9 years ago
CompoundAssignment.cs Move correctness tests to single namespace 9 years ago
ConditionalAttr.cs Move correctness tests to single namespace 9 years ago
ControlFlow.cs Add BreakUnlessContinue test case 8 years ago
Conversions.cs Move correctness tests to single namespace 9 years ago
DecimalFields.cs Move correctness tests to single namespace 9 years ago
Generics.cs More fixes for yield return decompilation. 8 years ago
HelloWorld.cs Move correctness tests to single namespace 9 years ago
InitializerTests.cs Fix another bug in TranslateObjectAndCollectionInitializer 8 years ago
MemberLookup.cs Move correctness tests to single namespace 9 years ago
OverloadResolution.cs Fix some issues with missing casts for overload resolution and for boxing in attributes. 9 years ago
PropertiesAndEvents.cs Move correctness tests to single namespace 9 years ago
Readme.txt Reorganize TestRunner-Tests 9 years ago
Switch.cs Move correctness tests to single namespace 9 years ago
UndocumentedExpressions.cs Move correctness tests to single namespace 9 years ago
UnsafeCode.cs Move correctness tests to single namespace 9 years ago
ValueTypeCall.cs Move correctness tests to single namespace 9 years ago
YieldReturn.cs yield return decompiler: fix yield return in structs; fix local variables in finally block 8 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.