.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 275a147224 First attempt at pinned regions. 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 Adjust exit codes of remaining test cases (fixes build) 9 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
ILTest.il Add unit test methods for IL-based tests 9 years ago
InitializerTests.cs Adjust exit codes of remaining test cases (fixes build) 9 years ago
MemberLookup.cs add missing casts to property- and event-uses 9 years ago
PropertiesAndEvents.cs Adjust exit codes of remaining test cases (fixes build) 9 years ago
Readme.txt Move whole-project-decompilation into ICSharpCode.Decompiler and create test case. 9 years ago
Switch.cs Fix order of ILAst debug languages. 9 years ago
UndocumentedExpressions.cs Fix undocumented expressions 9 years ago
UnsafeCode.cs First attempt at pinned regions. 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.