.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 0efc55d594 Move whole-project-decompilation into ICSharpCode.Decompiler and create test case. 9 years ago
..
Comparisons.cs Fix various issues that caused conversions to decompile to code with different semantics: 9 years ago
CompoundAssignment.cs Add some CompoundAssignment tests 11 years ago
ControlFlow.cs implement StObj instruction 11 years ago
Conversions.cs add failing unit test to "Conversions" 9 years ago
DecimalFields.cs add transformation of decimal literals and decimal constants 10 years ago
Generics.cs Fix 'this' type in generic classes/structs. 9 years ago
HelloWorld.cs Merge remote-tracking branch 'origin/master' into newdecompiler 10 years ago
InitializerTests.cs add TranslateArrayInitializer in ExpressionBuilder 10 years ago
PropertiesAndEvents.cs add support for fields and properties in decompiler output 11 years ago
Readme.txt Move whole-project-decompilation into ICSharpCode.Decompiler and create test case. 9 years ago
Switch.cs fix build; add correct resolve result for delegate construction 10 years ago
UndocumentedExpressions.cs Fix undocumented expressions 9 years ago
ValueTypeCall.cs Fix 'this' type in generic classes/structs. 9 years ago

Readme.txt

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

The NUnit class running these tests is ../TestRunner.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.