using System.Reflection.Emit;\r
using System.IO;\r
using System.Collections;\r
+using System.Diagnostics.SymbolStore;\r
\r
using NUnit.Framework;\r
\r
}\r
}\r
\r
+ [Test]\r
+ public void TestIsTransient () {\r
+ AssemblyName assemblyName = new AssemblyName();\r
+ assemblyName.Name = "foo";\r
+\r
+ AssemblyBuilder ab\r
+ = Thread.GetDomain().DefineDynamicAssembly(\r
+ assemblyName, AssemblyBuilderAccess.RunAndSave, TempFolder); \r
+ ModuleBuilder mb1 = ab.DefineDynamicModule ("foo.dll");\r
+ AssertEquals (true, mb1.IsTransient ());\r
+ ModuleBuilder mb2 = ab.DefineDynamicModule ("foo2.dll", "foo2.dll");\r
+ AssertEquals (false, mb2.IsTransient ());\r
+ }\r
+\r
// Some of these tests overlap with the tests for Module\r
\r
[Test]\r
AssertEquals (module.GetField ("DATA_PRIVATE"), null);\r
AssertEquals (module.GetField ("DATA_PRIVATE", BindingFlags.NonPublic | BindingFlags.Static) != null, true);\r
}\r
+\r
+ [Test]\r
+ public void DuplicateSymbolDocument () {\r
+ AssemblyName assemblyName = new AssemblyName();\r
+ assemblyName.Name = "ModuleBuilderTest.DuplicateSymbolDocument";\r
+\r
+ AssemblyBuilder ab\r
+ = Thread.GetDomain().DefineDynamicAssembly(\r
+ assemblyName, AssemblyBuilderAccess.RunAndSave, TempFolder);\r
+\r
+ ModuleBuilder mb = ab.DefineDynamicModule("foo.dll", "foo.dll", true);\r
+\r
+ // Check that it is possible to redefine a symbol document\r
+ ISymbolDocumentWriter doc1 =\r
+ mb.DefineDocument("foo.il", SymDocumentType.Text,\r
+ SymLanguageType.ILAssembly,SymLanguageVendor.Microsoft);\r
+ ISymbolDocumentWriter doc2 =\r
+ mb.DefineDocument("foo.il", SymDocumentType.Text,\r
+ SymLanguageType.ILAssembly,SymLanguageVendor.Microsoft);\r
+ }\r
\r
private static void AssertArrayEqualsSorted (Array o1, Array o2) {\r
Array s1 = (Array)o1.Clone ();\r