diff options
author | Jb Evain <jb@evain.net> | 2017-04-26 04:03:05 +0300 |
---|---|---|
committer | Jb Evain <jb@evain.net> | 2017-04-26 04:03:05 +0300 |
commit | 727305ba6c3b7d3eefe52439b5070332abbf15f0 (patch) | |
tree | e242d246938b14fb465687490a91c1dd6684547a | |
parent | c4d772dce231ee9853b7ab8c8f5528cd1006bbb0 (diff) |
Add test making sure file handles are released when failing to write an assembly
-rw-r--r-- | Test/Mono.Cecil.Tests/ModuleTests.cs | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/Test/Mono.Cecil.Tests/ModuleTests.cs b/Test/Mono.Cecil.Tests/ModuleTests.cs index 1533081..3c930e2 100644 --- a/Test/Mono.Cecil.Tests/ModuleTests.cs +++ b/Test/Mono.Cecil.Tests/ModuleTests.cs @@ -294,5 +294,21 @@ namespace Mono.Cecil.Tests { using (var module = ModuleDefinition.ReadModule (path)) Assert.AreEqual ("Foo.Foo", module.Types [1].FullName); } + + [Test] + public void ExceptionInWriteDoesNotKeepLockOnFile () + { + var path = Path.GetTempFileName (); + + var module = ModuleDefinition.CreateModule ("FooFoo", ModuleKind.Dll); + + // Invalid type to make writing throw + module.Types.Add (new TypeDefinition ("Foo", "Foo", (TypeAttributes) 0)); + + Assert.Throws<Exception>(() => module.Write (path)); + + // Ensure you can still delete the file + File.Delete (path); + } } } |