From bd3ee565f342bc0bb015594f303d13b67285a958 Mon Sep 17 00:00:00 2001 From: Sean Hall Date: Thu, 23 Apr 2020 12:17:32 +1000 Subject: Update ManagedHost tests to run off of a bundle. --- .../WixToolsetTest.ManagedHost/MbaHostFixture.cs | 74 +++++++++++++++++----- .../TestData/FullFramework2MBA/Bundle.wxs | 15 +++++ .../TestData/FullFramework4MBA/Bundle.wxs | 15 +++++ src/test/WixToolsetTest.ManagedHost/TestEngine.cs | 15 ++++- .../WixToolsetTest.ManagedHost.csproj | 12 ++++ 5 files changed, 113 insertions(+), 18 deletions(-) create mode 100644 src/test/WixToolsetTest.ManagedHost/TestData/FullFramework2MBA/Bundle.wxs create mode 100644 src/test/WixToolsetTest.ManagedHost/TestData/FullFramework4MBA/Bundle.wxs (limited to 'src/test/WixToolsetTest.ManagedHost') diff --git a/src/test/WixToolsetTest.ManagedHost/MbaHostFixture.cs b/src/test/WixToolsetTest.ManagedHost/MbaHostFixture.cs index 8da42e77..8ef0320e 100644 --- a/src/test/WixToolsetTest.ManagedHost/MbaHostFixture.cs +++ b/src/test/WixToolsetTest.ManagedHost/MbaHostFixture.cs @@ -2,7 +2,9 @@ namespace WixToolsetTest.ManagedHost { + using System.IO; using WixBuildTools.TestSupport; + using WixToolset.Core.TestPackage; using Xunit; public class MbaHostFixture @@ -10,31 +12,71 @@ namespace WixToolsetTest.ManagedHost [Fact] public void CanLoadFullFramework2MBA() { - var testEngine = new TestEngine(); - var baFile = TestData.Get(@"..\examples\Example.FullFramework2MBA\mbahost.dll"); + using (var fs = new DisposableFileSystem()) + { + var baseFolder = fs.GetFolder(); + var binFolder = Path.Combine(baseFolder, "bin"); + var bundleFile = Path.Combine(binFolder, "FullFramework2MBA.exe"); + var baSourceFolder = TestData.Get(@"..\examples"); + var bundleSourceFolder = TestData.Get(@"TestData\FullFramework2MBA"); + var intermediateFolder = Path.Combine(baseFolder, "obj"); - var result = testEngine.RunShutdownEngine(baFile); - Assert.Equal(0, result.ExitCode); + var compileResult = WixRunner.Execute(new[] + { + "build", + Path.Combine(bundleSourceFolder, "Bundle.wxs"), + "-ext", TestData.Get(@"WixToolset.Bal.wixext.dll"), + "-ext", TestData.Get(@"WixToolset.NetFx.wixext.dll"), + "-intermediateFolder", intermediateFolder, + "-bindpath", baSourceFolder, + "-burnStub", TestEngine.BurnStubFile, + "-o", bundleFile, + }); + compileResult.AssertSuccess(); + var testEngine = new TestEngine(); - var logMessages = result.Output; - Assert.Equal(2, logMessages.Count); - Assert.Equal("Loading managed bootstrapper application.", logMessages[0]); - Assert.Equal("Shutdown,ReloadBootstrapper,0", logMessages[1]); + var result = testEngine.RunShutdownEngine(bundleFile, baseFolder); + var logMessages = result.Output; + Assert.Equal("Loading managed bootstrapper application.", logMessages[0]); + Assert.Equal("Creating BA thread to run asynchronously.", logMessages[1]); + Assert.Equal("FullFramework2BA", logMessages[2]); + Assert.Equal("Shutdown,ReloadBootstrapper,0", logMessages[3]); + } } [Fact] public void CanLoadFullFramework4MBA() { - var testEngine = new TestEngine(); - var baFile = TestData.Get(@"..\examples\Example.FullFramework4MBA\net48\mbahost.dll"); + using (var fs = new DisposableFileSystem()) + { + var baseFolder = fs.GetFolder(); + var binFolder = Path.Combine(baseFolder, "bin"); + var bundleFile = Path.Combine(binFolder, "FullFramework4MBA.exe"); + var baSourceFolder = TestData.Get(@"..\examples"); + var bundleSourceFolder = TestData.Get(@"TestData\FullFramework4MBA"); + var intermediateFolder = Path.Combine(baseFolder, "obj"); - var result = testEngine.RunShutdownEngine(baFile); - Assert.Equal(0, result.ExitCode); + var compileResult = WixRunner.Execute(new[] + { + "build", + Path.Combine(bundleSourceFolder, "Bundle.wxs"), + "-ext", TestData.Get(@"WixToolset.Bal.wixext.dll"), + "-ext", TestData.Get(@"WixToolset.NetFx.wixext.dll"), + "-intermediateFolder", intermediateFolder, + "-bindpath", baSourceFolder, + "-burnStub", TestEngine.BurnStubFile, + "-o", bundleFile, + }); + compileResult.AssertSuccess(); + var testEngine = new TestEngine(); - var logMessages = result.Output; - Assert.Equal(2, logMessages.Count); - Assert.Equal("Loading managed bootstrapper application.", logMessages[0]); - Assert.Equal("Shutdown,ReloadBootstrapper,0", logMessages[1]); + var result = testEngine.RunShutdownEngine(bundleFile, baseFolder); + var logMessages = result.Output; + Assert.Equal("Loading managed bootstrapper application.", logMessages[0]); + Assert.Equal("Creating BA thread to run asynchronously.", logMessages[1]); + Assert.Equal("FullFramework4BA", logMessages[2]); + Assert.Equal("Shutdown,ReloadBootstrapper,0", logMessages[3]); + } } } } diff --git a/src/test/WixToolsetTest.ManagedHost/TestData/FullFramework2MBA/Bundle.wxs b/src/test/WixToolsetTest.ManagedHost/TestData/FullFramework2MBA/Bundle.wxs new file mode 100644 index 00000000..b38e9f6e --- /dev/null +++ b/src/test/WixToolsetTest.ManagedHost/TestData/FullFramework2MBA/Bundle.wxs @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + diff --git a/src/test/WixToolsetTest.ManagedHost/TestData/FullFramework4MBA/Bundle.wxs b/src/test/WixToolsetTest.ManagedHost/TestData/FullFramework4MBA/Bundle.wxs new file mode 100644 index 00000000..b3072e63 --- /dev/null +++ b/src/test/WixToolsetTest.ManagedHost/TestData/FullFramework4MBA/Bundle.wxs @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + diff --git a/src/test/WixToolsetTest.ManagedHost/TestEngine.cs b/src/test/WixToolsetTest.ManagedHost/TestEngine.cs index 4dd531ad..751ed59c 100644 --- a/src/test/WixToolsetTest.ManagedHost/TestEngine.cs +++ b/src/test/WixToolsetTest.ManagedHost/TestEngine.cs @@ -4,15 +4,26 @@ namespace WixToolsetTest.ManagedHost { using System.Collections.Generic; using System.Diagnostics; + using System.IO; using WixBuildTools.TestSupport; + using WixToolset.Core.TestPackage; public class TestEngine { private static readonly string TestEngineFile = TestData.Get(@"..\Win32\examples\Example.TestEngine\Example.TestEngine.exe"); + public static readonly string BurnStubFile = TestData.Get(@"runtimes\win-x86\native\burn.x86.exe"); - public TestEngineResult RunShutdownEngine(string baFile) + public TestEngineResult RunShutdownEngine(string bundleFilePath, string tempFolderPath) { - var args = new string[] { '"' + baFile + '"' }; + var baFolderPath = Path.Combine(tempFolderPath, "ba"); + var extractFolderPath = Path.Combine(tempFolderPath, "extract"); + var extractResult = BundleExtractor.ExtractBAContainer(null, bundleFilePath, baFolderPath, extractFolderPath); + extractResult.AssertSuccess(); + + var args = new string[] { + '"' + bundleFilePath + '"', + '"' + extractResult.GetBAFilePath(baFolderPath) + '"', + }; return RunProcessCaptureOutput(TestEngineFile, args); } diff --git a/src/test/WixToolsetTest.ManagedHost/WixToolsetTest.ManagedHost.csproj b/src/test/WixToolsetTest.ManagedHost/WixToolsetTest.ManagedHost.csproj index 02b0b109..5026af85 100644 --- a/src/test/WixToolsetTest.ManagedHost/WixToolsetTest.ManagedHost.csproj +++ b/src/test/WixToolsetTest.ManagedHost/WixToolsetTest.ManagedHost.csproj @@ -12,15 +12,27 @@ + + + + + + + + + + + + -- cgit v1.2.3-55-g6feb