From 008a6fd58bfb40ed58a184aff40c3f01bb26391b Mon Sep 17 00:00:00 2001 From: Bob Arnson Date: Mon, 8 Oct 2018 20:16:59 -0400 Subject: Handle the rename of WixCA and QtExec* binary, custom action, and property ids. Fixed wixtoolset/issues#5887. --- .../TestData/QtExec.bad/v3.wxs | 65 +++++++++++++++ .../TestData/QtExec.bad/v4_expected.wxs | 64 +++++++++++++++ .../WixToolsetTest.WixCop/TestData/QtExec/v3.wxs | 64 +++++++++++++++ .../TestData/QtExec/v4_expected.wxs | 63 +++++++++++++++ src/test/WixToolsetTest.WixCop/WixCopFixture.cs | 94 ++++++++++++++++++++++ .../WixToolsetTest.WixCop.csproj | 4 + 6 files changed, 354 insertions(+) create mode 100644 src/test/WixToolsetTest.WixCop/TestData/QtExec.bad/v3.wxs create mode 100644 src/test/WixToolsetTest.WixCop/TestData/QtExec.bad/v4_expected.wxs create mode 100644 src/test/WixToolsetTest.WixCop/TestData/QtExec/v3.wxs create mode 100644 src/test/WixToolsetTest.WixCop/TestData/QtExec/v4_expected.wxs (limited to 'src/test') diff --git a/src/test/WixToolsetTest.WixCop/TestData/QtExec.bad/v3.wxs b/src/test/WixToolsetTest.WixCop/TestData/QtExec.bad/v3.wxs new file mode 100644 index 00000000..b0630f65 --- /dev/null +++ b/src/test/WixToolsetTest.WixCop/TestData/QtExec.bad/v3.wxs @@ -0,0 +1,65 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/test/WixToolsetTest.WixCop/TestData/QtExec.bad/v4_expected.wxs b/src/test/WixToolsetTest.WixCop/TestData/QtExec.bad/v4_expected.wxs new file mode 100644 index 00000000..be487147 --- /dev/null +++ b/src/test/WixToolsetTest.WixCop/TestData/QtExec.bad/v4_expected.wxs @@ -0,0 +1,64 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/test/WixToolsetTest.WixCop/TestData/QtExec/v3.wxs b/src/test/WixToolsetTest.WixCop/TestData/QtExec/v3.wxs new file mode 100644 index 00000000..8d81a758 --- /dev/null +++ b/src/test/WixToolsetTest.WixCop/TestData/QtExec/v3.wxs @@ -0,0 +1,64 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/test/WixToolsetTest.WixCop/TestData/QtExec/v4_expected.wxs b/src/test/WixToolsetTest.WixCop/TestData/QtExec/v4_expected.wxs new file mode 100644 index 00000000..22a961b2 --- /dev/null +++ b/src/test/WixToolsetTest.WixCop/TestData/QtExec/v4_expected.wxs @@ -0,0 +1,63 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/test/WixToolsetTest.WixCop/WixCopFixture.cs b/src/test/WixToolsetTest.WixCop/WixCopFixture.cs index 9877f9c8..207782b7 100644 --- a/src/test/WixToolsetTest.WixCop/WixCopFixture.cs +++ b/src/test/WixToolsetTest.WixCop/WixCopFixture.cs @@ -3,6 +3,7 @@ namespace WixToolsetTest.WixCop { using System.IO; + using System.Linq; using WixBuildTools.TestSupport; using Xunit; @@ -99,5 +100,98 @@ namespace WixToolsetTest.WixCop Assert.Equal(0, result2.ExitCode); } } + + [Fact] + public void CanConvertQtExec() + { + const string beforeFileName = "v3.wxs"; + const string afterFileName = "v4_expected.wxs"; + var folder = TestData.Get(@"TestData\QtExec"); + + using (var fs = new DisposableFileSystem()) + { + var baseFolder = fs.GetFolder(true); + var targetFile = Path.Combine(baseFolder, beforeFileName); + File.Copy(Path.Combine(folder, beforeFileName), Path.Combine(baseFolder, beforeFileName)); + + var runner = new WixCopRunner + { + FixErrors = true, + SearchPatterns = + { + targetFile, + }, + }; + + var result = runner.Execute(); + + Assert.Equal(2, result.ExitCode); + + var expected = File.ReadAllText(Path.Combine(folder, afterFileName)).Replace("\r\n", "\n"); + var actual = File.ReadAllText(targetFile).Replace("\r\n", "\n"); + Assert.Equal(expected, actual); + + var runner2 = new WixCopRunner + { + FixErrors = true, + SearchPatterns = + { + targetFile, + }, + }; + + var result2 = runner2.Execute(); + + Assert.Equal(0, result2.ExitCode); + } + } + + [Fact] + public void DetectUnconvertableQtExecCmdTimeout() + { + const string beforeFileName = "v3.wxs"; + const string afterFileName = "v4_expected.wxs"; + var folder = TestData.Get(@"TestData\QtExec.bad"); + + using (var fs = new DisposableFileSystem()) + { + var baseFolder = fs.GetFolder(true); + var targetFile = Path.Combine(baseFolder, beforeFileName); + File.Copy(Path.Combine(folder, beforeFileName), Path.Combine(baseFolder, beforeFileName)); + + var runner = new WixCopRunner + { + FixErrors = true, + SearchPatterns = + { + targetFile, + }, + }; + + var result = runner.Execute(); + + Assert.Equal(2, result.ExitCode); + + Assert.Single(result.Messages.Where(message => message.ToString().EndsWith("(QtExecCmdTimeoutAmbiguous)"))); + + var expected = File.ReadAllText(Path.Combine(folder, afterFileName)).Replace("\r\n", "\n"); + var actual = File.ReadAllText(targetFile).Replace("\r\n", "\n"); + Assert.Equal(expected, actual); + + // still fails because QtExecCmdTimeoutAmbiguous is unfixable + var runner2 = new WixCopRunner + { + FixErrors = true, + SearchPatterns = + { + targetFile, + }, + }; + + var result2 = runner2.Execute(); + + Assert.Equal(2, result2.ExitCode); + } + } } } diff --git a/src/test/WixToolsetTest.WixCop/WixToolsetTest.WixCop.csproj b/src/test/WixToolsetTest.WixCop/WixToolsetTest.WixCop.csproj index 6b41b6b6..57de5a74 100644 --- a/src/test/WixToolsetTest.WixCop/WixToolsetTest.WixCop.csproj +++ b/src/test/WixToolsetTest.WixCop/WixToolsetTest.WixCop.csproj @@ -18,6 +18,10 @@ + + + + -- cgit v1.2.3-55-g6feb