diff --git a/src/Main/Base/Test/CheckAssemblyFlags.cs b/src/Main/Base/Test/CheckAssemblyFlags.cs new file mode 100644 index 0000000000..8d56ae8e45 --- /dev/null +++ b/src/Main/Base/Test/CheckAssemblyFlags.cs @@ -0,0 +1,63 @@ +// +// +// +// +// $Revision$ +// + +using System; +using System.IO; +using ICSharpCode.Core; +using ICSharpCode.SharpDevelop.Util; +using NUnit.Framework; +using System.Text.RegularExpressions; + +namespace ICSharpCode.SharpDevelop.Tests +{ + [TestFixture] + public class CheckAssemblyFlags + { + string binPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, ".."); + + bool Get32BitFlags(string assembly) + { + assembly = Path.Combine(binPath, assembly); + string corflags = FileUtility.GetSdkPath("corflags.exe"); + Assert.IsNotNull(corflags, "corflags.exe not found, this test requires the .NET SDK!"); + ProcessRunner pr = new ProcessRunner(); + Console.WriteLine(corflags + " " + assembly); + pr.Start(corflags, assembly); + if (!pr.WaitForExit(5000)) { + pr.Kill(); + throw new InvalidOperationException("Timeout running corflags"); + } else { + Console.WriteLine(pr.StandardOutput); + Match m = Regex.Match(pr.StandardOutput, @"32BIT\s*:\s*([01])"); + if (m.Success) { + return m.Groups[1].Value == "1"; + } else { + throw new InvalidOperationException("Invalid corflags output"); + } + } + } + + // All these processes must use the same value for 32-bit-flag: + [Test] + public void CheckSharpDevelop32Bit() + { + Assert.IsTrue(Get32BitFlags("SharpDevelop.exe")); + } + + [Test] + public void CheckBuildWorker32Bit() + { + Assert.IsTrue(Get32BitFlags("ICSharpCode.SharpDevelop.BuildWorker.exe")); + } + + [Test] + public void CheckBooCompiler32Bit() + { + Assert.IsTrue(Get32BitFlags(@"..\src\AddIns\BackendBindings\Boo\RequiredLibraries\booc.exe")); + } + } +} diff --git a/src/Main/Base/Test/ICSharpCode.SharpDevelop.Tests.csproj b/src/Main/Base/Test/ICSharpCode.SharpDevelop.Tests.csproj index 6e183ebc54..bcf03b94aa 100644 --- a/src/Main/Base/Test/ICSharpCode.SharpDevelop.Tests.csproj +++ b/src/Main/Base/Test/ICSharpCode.SharpDevelop.Tests.csproj @@ -52,6 +52,7 @@ +