.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.
 
 
 
 
Siegfried Pammer 31f791cc2f Add negative test-case to Correctness/ExpressionTrees.cs 8 years ago
..
Async.cs Remove redundant lambda casts. 8 years ago
BitNot.il Move test projects to their own directory in \ 8 years ago
Capturing.cs Do not convert while-true to while-condition loop or do-while loop, if the condition uses a variable that is captured inside the loop. 8 years ago
Comparisons.cs Move test projects to their own directory in \ 8 years ago
CompoundAssignment.cs Add support for compound assignment of short integers. 8 years ago
ConditionalAttr.cs Move test projects to their own directory in \ 8 years ago
ControlFlow.cs Move using test from ControlFlow to Using 8 years ago
Conversions.cs Fix #926: missing explicit casts for implicit operators 8 years ago
DecimalFields.cs Move test projects to their own directory in \ 8 years ago
ExpressionTrees.cs Add negative test-case to Correctness/ExpressionTrees.cs 8 years ago
Generics.cs Fix #958: Invalid cast in generic class for abstract base call 8 years ago
HelloWorld.cs Move test projects to their own directory in \ 8 years ago
InitializerTests.cs Fix #953: Missing nullable specifier for array initializer 8 years ago
Jmp.il #899: decode jmp instruction into tail call 8 years ago
LINQRaytracer.cs Reduce size of LINQRaytracer test case 8 years ago
Loops.cs Fix #915: ensure that loops are nested correctly 8 years ago
MemberLookup.cs Move test projects to their own directory in \ 8 years ago
MiniJSON.cs Add license and source information to MiniJSON.cs 8 years ago
NullableTests.cs [nullables] Fix nullable transform being applied incorrectly. 8 years ago
OverloadResolution.cs Add overload resolution for ctor calls. 8 years ago
PropertiesAndEvents.cs Move test projects to their own directory in \ 8 years ago
Readme.txt Move test projects to their own directory in \ 8 years ago
StackTypes.il Fix #938: add support for I4->I stack type adjustments. 8 years ago
Switch.cs Implement translation of cascading if-statements with string comparisons to switch(string). 8 years ago
TrickyTypes.cs Avoid unnecessary casts in pointer comparisons. 8 years ago
UndocumentedExpressions.cs Update tests (remove unnecessary casts) 8 years ago
UnsafeCode.cs Move stackalloc tests to pretty-tests. 8 years ago
Using.cs Add ILInlining.IsUsedAsThisPointerInCall(). 8 years ago
ValueTypeCall.cs Avoid unnecessary (object) cast when calling myEnum.ToString() 8 years ago
YieldReturn.cs Move test projects to their own directory in \ 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.