aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorSean Hall <r.sean.hall@gmail.com>2022-01-21 16:25:38 -0600
committerSean Hall <r.sean.hall@gmail.com>2022-01-21 17:29:12 -0600
commitaf019d2b6d7b67df34355c038290d45366001ea9 (patch)
tree9e839496fc1a496a4b5d7e2fa8aa84b823e861b5 /src
parent613fe40c487e1cbec118167939c13546a3ce9e80 (diff)
downloadwix-af019d2b6d7b67df34355c038290d45366001ea9.tar.gz
wix-af019d2b6d7b67df34355c038290d45366001ea9.tar.bz2
wix-af019d2b6d7b67df34355c038290d45366001ea9.zip
Add failing dependency E2E tests.
Diffstat (limited to 'src')
-rw-r--r--src/test/burn/TestData/DependencyTests/BundleKv1/BundleKv1.wixproj2
-rw-r--r--src/test/burn/TestData/DependencyTests/BundleKv1/BundleKv1.wxs2
-rw-r--r--src/test/burn/TestData/DependencyTests/BundleKv2/BundleKv2.wixproj2
-rw-r--r--src/test/burn/TestData/DependencyTests/BundleKv2/BundleKv2.wxs2
-rw-r--r--src/test/burn/TestData/DependencyTests/BundleM/BundleM.wixproj20
-rw-r--r--src/test/burn/TestData/DependencyTests/BundleM/BundleM.wxs10
-rw-r--r--src/test/burn/TestData/DependencyTests/BundleNv1/BundleN.props10
-rw-r--r--src/test/burn/TestData/DependencyTests/BundleNv1/BundleNv1.wixproj13
-rw-r--r--src/test/burn/TestData/DependencyTests/BundleNv1/BundleNv1.wxs11
-rw-r--r--src/test/burn/TestData/DependencyTests/BundleNv1_0_1/BundleNv1_0_1.wixproj17
-rw-r--r--src/test/burn/TestData/DependencyTests/BundleNv1_0_1/BundleNv1_0_1.wxs12
-rw-r--r--src/test/burn/TestData/DependencyTests/BundleNv2/BundleNv2.wixproj17
-rw-r--r--src/test/burn/TestData/DependencyTests/BundleNv2/BundleNv2.wxs12
-rw-r--r--src/test/burn/TestData/DependencyTests/PackageC/PackageC.wixproj1
-rw-r--r--src/test/burn/TestData/DependencyTests/PackageFv1/PackageF.props (renamed from src/test/burn/TestData/DependencyTests/PackageF/PackageF.wixproj)3
-rw-r--r--src/test/burn/TestData/DependencyTests/PackageFv1/PackageFv1.props7
-rw-r--r--src/test/burn/TestData/DependencyTests/PackageFv1/PackageFv1.wixproj4
-rw-r--r--src/test/burn/TestData/DependencyTests/PackageFv1_0_1/PackageFv1_0_1.wixproj7
-rw-r--r--src/test/burn/TestData/DependencyTests/PackageFv2/PackageFv2.wixproj7
-rw-r--r--src/test/burn/TestData/DependencyTests/PackageGv1/PackageG.props10
-rw-r--r--src/test/burn/TestData/DependencyTests/PackageGv1/PackageGv1.props7
-rw-r--r--src/test/burn/TestData/DependencyTests/PackageGv1/PackageGv1.wixproj4
-rw-r--r--src/test/burn/TestData/DependencyTests/PackageGv1_0_1/PackageGv1_0_1.wixproj7
-rw-r--r--src/test/burn/TestData/DependencyTests/PackageGv2/PackageGv2.wixproj7
-rw-r--r--src/test/burn/WixTestTools/BundleVerifier.cs17
-rw-r--r--src/test/burn/WixToolsetTest.BurnE2E/DependencyTests.cs199
26 files changed, 399 insertions, 11 deletions
diff --git a/src/test/burn/TestData/DependencyTests/BundleKv1/BundleKv1.wixproj b/src/test/burn/TestData/DependencyTests/BundleKv1/BundleKv1.wixproj
index f0b03f2d..ff9db038 100644
--- a/src/test/burn/TestData/DependencyTests/BundleKv1/BundleKv1.wixproj
+++ b/src/test/burn/TestData/DependencyTests/BundleKv1/BundleKv1.wixproj
@@ -2,7 +2,7 @@
2<Project Sdk="WixToolset.Sdk"> 2<Project Sdk="WixToolset.Sdk">
3 <Import Project="BundleK.props" /> 3 <Import Project="BundleK.props" />
4 <ItemGroup> 4 <ItemGroup>
5 <ProjectReference Include="..\PackageF\PackageF.wixproj" /> 5 <ProjectReference Include="..\PackageFv1\PackageFv1.wixproj" />
6 <ProjectReference Include="..\..\TestBA\TestBAWixlib\testbawixlib.wixproj" /> 6 <ProjectReference Include="..\..\TestBA\TestBAWixlib\testbawixlib.wixproj" />
7 </ItemGroup> 7 </ItemGroup>
8 <ItemGroup> 8 <ItemGroup>
diff --git a/src/test/burn/TestData/DependencyTests/BundleKv1/BundleKv1.wxs b/src/test/burn/TestData/DependencyTests/BundleKv1/BundleKv1.wxs
index c4a85814..3f6d28b4 100644
--- a/src/test/burn/TestData/DependencyTests/BundleKv1/BundleKv1.wxs
+++ b/src/test/burn/TestData/DependencyTests/BundleKv1/BundleKv1.wxs
@@ -4,7 +4,7 @@
4<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs"> 4<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
5 <Fragment> 5 <Fragment>
6 <PackageGroup Id="BundlePackages"> 6 <PackageGroup Id="BundlePackages">
7 <MsiPackage Id="PackageF" SourceFile="$(var.PackageF.TargetPath)" /> 7 <MsiPackage Id="PackageF" SourceFile="$(var.PackageFv1.TargetPath)" />
8 </PackageGroup> 8 </PackageGroup>
9 </Fragment> 9 </Fragment>
10</Wix> 10</Wix>
diff --git a/src/test/burn/TestData/DependencyTests/BundleKv2/BundleKv2.wixproj b/src/test/burn/TestData/DependencyTests/BundleKv2/BundleKv2.wixproj
index a00ff3b5..9f55fa9a 100644
--- a/src/test/burn/TestData/DependencyTests/BundleKv2/BundleKv2.wixproj
+++ b/src/test/burn/TestData/DependencyTests/BundleKv2/BundleKv2.wixproj
@@ -5,7 +5,7 @@
5 <Version>2.0.0.0</Version> 5 <Version>2.0.0.0</Version>
6 </PropertyGroup> 6 </PropertyGroup>
7 <ItemGroup> 7 <ItemGroup>
8 <ProjectReference Include="..\PackageF\PackageF.wixproj" /> 8 <ProjectReference Include="..\PackageFv1\PackageFv1.wixproj" />
9 <ProjectReference Include="..\..\TestBA\TestBAWixlib\testbawixlib.wixproj" /> 9 <ProjectReference Include="..\..\TestBA\TestBAWixlib\testbawixlib.wixproj" />
10 </ItemGroup> 10 </ItemGroup>
11 <ItemGroup> 11 <ItemGroup>
diff --git a/src/test/burn/TestData/DependencyTests/BundleKv2/BundleKv2.wxs b/src/test/burn/TestData/DependencyTests/BundleKv2/BundleKv2.wxs
index c4a85814..3f6d28b4 100644
--- a/src/test/burn/TestData/DependencyTests/BundleKv2/BundleKv2.wxs
+++ b/src/test/burn/TestData/DependencyTests/BundleKv2/BundleKv2.wxs
@@ -4,7 +4,7 @@
4<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs"> 4<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
5 <Fragment> 5 <Fragment>
6 <PackageGroup Id="BundlePackages"> 6 <PackageGroup Id="BundlePackages">
7 <MsiPackage Id="PackageF" SourceFile="$(var.PackageF.TargetPath)" /> 7 <MsiPackage Id="PackageF" SourceFile="$(var.PackageFv1.TargetPath)" />
8 </PackageGroup> 8 </PackageGroup>
9 </Fragment> 9 </Fragment>
10</Wix> 10</Wix>
diff --git a/src/test/burn/TestData/DependencyTests/BundleM/BundleM.wixproj b/src/test/burn/TestData/DependencyTests/BundleM/BundleM.wixproj
new file mode 100644
index 00000000..3aee3643
--- /dev/null
+++ b/src/test/burn/TestData/DependencyTests/BundleM/BundleM.wixproj
@@ -0,0 +1,20 @@
1<!-- Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information. -->
2<Project Sdk="WixToolset.Sdk">
3 <PropertyGroup>
4 <OutputType>Bundle</OutputType>
5 <UpgradeCode>{D106D5F7-CA25-4AC4-8EE9-A9CF8C2C7941}</UpgradeCode>
6 </PropertyGroup>
7 <ItemGroup>
8 <Compile Include="..\..\Templates\Bundle.wxs" Link="Bundle.wxs" />
9 </ItemGroup>
10 <ItemGroup>
11 <ProjectReference Include="..\PackageAv1\PackageAv1.wixproj" />
12 <ProjectReference Include="..\PackageFv1\PackageFv1.wixproj" />
13 <ProjectReference Include="..\..\TestBA\TestBAWixlib\testbawixlib.wixproj" />
14 </ItemGroup>
15 <ItemGroup>
16 <PackageReference Include="WixToolset.Bal.wixext" />
17 <PackageReference Include="WixToolset.NetFx.wixext" />
18 <PackageReference Include="WixToolset.Util.wixext" />
19 </ItemGroup>
20</Project> \ No newline at end of file
diff --git a/src/test/burn/TestData/DependencyTests/BundleM/BundleM.wxs b/src/test/burn/TestData/DependencyTests/BundleM/BundleM.wxs
new file mode 100644
index 00000000..c34f190e
--- /dev/null
+++ b/src/test/burn/TestData/DependencyTests/BundleM/BundleM.wxs
@@ -0,0 +1,10 @@
1<!-- Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information. -->
2
3<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs" xmlns:util="http://wixtoolset.org/schemas/v4/wxs/util">
4 <Fragment>
5 <PackageGroup Id="BundlePackages">
6 <MsiPackage Id="PackageA" SourceFile="$(var.PackageAv1.TargetPath)" />
7 <MsiPackage Id="PackageF" SourceFile="$(var.PackageFv1.TargetPath)" />
8 </PackageGroup>
9 </Fragment>
10</Wix>
diff --git a/src/test/burn/TestData/DependencyTests/BundleNv1/BundleN.props b/src/test/burn/TestData/DependencyTests/BundleNv1/BundleN.props
new file mode 100644
index 00000000..c3e6f9fb
--- /dev/null
+++ b/src/test/burn/TestData/DependencyTests/BundleNv1/BundleN.props
@@ -0,0 +1,10 @@
1<!-- Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information. -->
2<Project>
3 <PropertyGroup>
4 <OutputType>Bundle</OutputType>
5 <UpgradeCode>{8F2B8413-CBA1-4284-BA4F-0005FE35E7B9}</UpgradeCode>
6 </PropertyGroup>
7 <ItemGroup>
8 <Compile Include="..\..\Templates\Bundle.wxs" Link="Bundle.wxs" />
9 </ItemGroup>
10</Project>
diff --git a/src/test/burn/TestData/DependencyTests/BundleNv1/BundleNv1.wixproj b/src/test/burn/TestData/DependencyTests/BundleNv1/BundleNv1.wixproj
new file mode 100644
index 00000000..3bcd8c0c
--- /dev/null
+++ b/src/test/burn/TestData/DependencyTests/BundleNv1/BundleNv1.wixproj
@@ -0,0 +1,13 @@
1<!-- Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information. -->
2<Project Sdk="WixToolset.Sdk">
3 <Import Project="BundleN.props" />
4 <ItemGroup>
5 <ProjectReference Include="..\PackageFv1\PackageFv1.wixproj" />
6 <ProjectReference Include="..\PackageGv1\PackageGv1.wixproj" />
7 <ProjectReference Include="..\..\TestBA\TestBAWixlib\testbawixlib.wixproj" />
8 </ItemGroup>
9 <ItemGroup>
10 <PackageReference Include="WixToolset.Bal.wixext" />
11 <PackageReference Include="WixToolset.NetFx.wixext" />
12 </ItemGroup>
13</Project> \ No newline at end of file
diff --git a/src/test/burn/TestData/DependencyTests/BundleNv1/BundleNv1.wxs b/src/test/burn/TestData/DependencyTests/BundleNv1/BundleNv1.wxs
new file mode 100644
index 00000000..19fd3bf8
--- /dev/null
+++ b/src/test/burn/TestData/DependencyTests/BundleNv1/BundleNv1.wxs
@@ -0,0 +1,11 @@
1<!-- Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information. -->
2
3
4<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
5 <Fragment>
6 <PackageGroup Id="BundlePackages">
7 <MsiPackage Id="PackageF" SourceFile="$(var.PackageFv1.TargetPath)" />
8 <MsiPackage Id="PackageG" SourceFile="$(var.PackageGv1.TargetPath)" />
9 </PackageGroup>
10 </Fragment>
11</Wix>
diff --git a/src/test/burn/TestData/DependencyTests/BundleNv1_0_1/BundleNv1_0_1.wixproj b/src/test/burn/TestData/DependencyTests/BundleNv1_0_1/BundleNv1_0_1.wixproj
new file mode 100644
index 00000000..68a0d0d3
--- /dev/null
+++ b/src/test/burn/TestData/DependencyTests/BundleNv1_0_1/BundleNv1_0_1.wixproj
@@ -0,0 +1,17 @@
1<!-- Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information. -->
2<Project Sdk="WixToolset.Sdk">
3 <Import Project="..\BundleNv1\BundleN.props" />
4 <PropertyGroup>
5 <Version>1.0.1.0</Version>
6 </PropertyGroup>
7 <ItemGroup>
8 <ProjectReference Include="..\PackageC\PackageC.wixproj" />
9 <ProjectReference Include="..\PackageFv1_0_1\PackageFv1_0_1.wixproj" />
10 <ProjectReference Include="..\PackageGv1_0_1\PackageGv1_0_1.wixproj" />
11 <ProjectReference Include="..\..\TestBA\TestBAWixlib\testbawixlib.wixproj" />
12 </ItemGroup>
13 <ItemGroup>
14 <PackageReference Include="WixToolset.Bal.wixext" />
15 <PackageReference Include="WixToolset.NetFx.wixext" />
16 </ItemGroup>
17</Project> \ No newline at end of file
diff --git a/src/test/burn/TestData/DependencyTests/BundleNv1_0_1/BundleNv1_0_1.wxs b/src/test/burn/TestData/DependencyTests/BundleNv1_0_1/BundleNv1_0_1.wxs
new file mode 100644
index 00000000..b913272f
--- /dev/null
+++ b/src/test/burn/TestData/DependencyTests/BundleNv1_0_1/BundleNv1_0_1.wxs
@@ -0,0 +1,12 @@
1<!-- Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information. -->
2
3
4<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
5 <Fragment>
6 <PackageGroup Id="BundlePackages">
7 <MsiPackage Id="PackageF" Name="PackageFv1.msi" SourceFile="$(var.PackageFv1_0_1.TargetPath)" />
8 <MsiPackage Id="PackageG" Name="PackageGv1.msi" SourceFile="$(var.PackageGv1_0_1.TargetPath)" />
9 <MsiPackage Id="PackageC" SourceFile="$(var.PackageC.TargetPath)" />
10 </PackageGroup>
11 </Fragment>
12</Wix>
diff --git a/src/test/burn/TestData/DependencyTests/BundleNv2/BundleNv2.wixproj b/src/test/burn/TestData/DependencyTests/BundleNv2/BundleNv2.wixproj
new file mode 100644
index 00000000..a66c39f8
--- /dev/null
+++ b/src/test/burn/TestData/DependencyTests/BundleNv2/BundleNv2.wixproj
@@ -0,0 +1,17 @@
1<!-- Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information. -->
2<Project Sdk="WixToolset.Sdk">
3 <Import Project="..\BundleNv1\BundleN.props" />
4 <PropertyGroup>
5 <Version>2.0.0.0</Version>
6 </PropertyGroup>
7 <ItemGroup>
8 <ProjectReference Include="..\PackageC\PackageC.wixproj" />
9 <ProjectReference Include="..\PackageFv2\PackageFv2.wixproj" />
10 <ProjectReference Include="..\PackageGv2\PackageGv2.wixproj" />
11 <ProjectReference Include="..\..\TestBA\TestBAWixlib\testbawixlib.wixproj" />
12 </ItemGroup>
13 <ItemGroup>
14 <PackageReference Include="WixToolset.Bal.wixext" />
15 <PackageReference Include="WixToolset.NetFx.wixext" />
16 </ItemGroup>
17</Project> \ No newline at end of file
diff --git a/src/test/burn/TestData/DependencyTests/BundleNv2/BundleNv2.wxs b/src/test/burn/TestData/DependencyTests/BundleNv2/BundleNv2.wxs
new file mode 100644
index 00000000..5727ca06
--- /dev/null
+++ b/src/test/burn/TestData/DependencyTests/BundleNv2/BundleNv2.wxs
@@ -0,0 +1,12 @@
1<!-- Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information. -->
2
3
4<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
5 <Fragment>
6 <PackageGroup Id="BundlePackages">
7 <MsiPackage Id="PackageF" SourceFile="$(var.PackageFv2.TargetPath)" />
8 <MsiPackage Id="PackageG" SourceFile="$(var.PackageGv2.TargetPath)" />
9 <MsiPackage Id="PackageC" SourceFile="$(var.PackageC.TargetPath)" />
10 </PackageGroup>
11 </Fragment>
12</Wix>
diff --git a/src/test/burn/TestData/DependencyTests/PackageC/PackageC.wixproj b/src/test/burn/TestData/DependencyTests/PackageC/PackageC.wixproj
index 4eb2d00b..fde6aa67 100644
--- a/src/test/burn/TestData/DependencyTests/PackageC/PackageC.wixproj
+++ b/src/test/burn/TestData/DependencyTests/PackageC/PackageC.wixproj
@@ -7,7 +7,6 @@
7 <Compile Include="..\..\Templates\Package.wxs" Link="Package.wxs" /> 7 <Compile Include="..\..\Templates\Package.wxs" Link="Package.wxs" />
8 </ItemGroup> 8 </ItemGroup>
9 <ItemGroup> 9 <ItemGroup>
10 <PackageReference Include="WixToolset.Dependency.wixext" />
11 <PackageReference Include="WixToolset.Util.wixext" /> 10 <PackageReference Include="WixToolset.Util.wixext" />
12 </ItemGroup> 11 </ItemGroup>
13</Project> \ No newline at end of file 12</Project> \ No newline at end of file
diff --git a/src/test/burn/TestData/DependencyTests/PackageF/PackageF.wixproj b/src/test/burn/TestData/DependencyTests/PackageFv1/PackageF.props
index 25b610ac..4ad7b3ce 100644
--- a/src/test/burn/TestData/DependencyTests/PackageF/PackageF.wixproj
+++ b/src/test/burn/TestData/DependencyTests/PackageFv1/PackageF.props
@@ -1,6 +1,7 @@
1<!-- Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information. --> 1<!-- Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information. -->
2<Project Sdk="WixToolset.Sdk"> 2<Project>
3 <PropertyGroup> 3 <PropertyGroup>
4 <PackageName>PackageF</PackageName>
4 <UpgradeCode>{069AECC6-84DC-4FA4-B506-CD3A9A76F2F4}</UpgradeCode> 5 <UpgradeCode>{069AECC6-84DC-4FA4-B506-CD3A9A76F2F4}</UpgradeCode>
5 </PropertyGroup> 6 </PropertyGroup>
6 <ItemGroup> 7 <ItemGroup>
diff --git a/src/test/burn/TestData/DependencyTests/PackageFv1/PackageFv1.props b/src/test/burn/TestData/DependencyTests/PackageFv1/PackageFv1.props
new file mode 100644
index 00000000..e273a60e
--- /dev/null
+++ b/src/test/burn/TestData/DependencyTests/PackageFv1/PackageFv1.props
@@ -0,0 +1,7 @@
1<!-- Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information. -->
2<Project>
3 <Import Project="PackageF.props" />
4 <PropertyGroup>
5 <ProductCode>{9FD1A4DA-B62B-48F2-851F-7CE01AC10009}</ProductCode>
6 </PropertyGroup>
7</Project> \ No newline at end of file
diff --git a/src/test/burn/TestData/DependencyTests/PackageFv1/PackageFv1.wixproj b/src/test/burn/TestData/DependencyTests/PackageFv1/PackageFv1.wixproj
new file mode 100644
index 00000000..9a472476
--- /dev/null
+++ b/src/test/burn/TestData/DependencyTests/PackageFv1/PackageFv1.wixproj
@@ -0,0 +1,4 @@
1<!-- Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information. -->
2<Project Sdk="WixToolset.Sdk">
3 <Import Project="PackageFv1.props" />
4</Project> \ No newline at end of file
diff --git a/src/test/burn/TestData/DependencyTests/PackageFv1_0_1/PackageFv1_0_1.wixproj b/src/test/burn/TestData/DependencyTests/PackageFv1_0_1/PackageFv1_0_1.wixproj
new file mode 100644
index 00000000..a92682bf
--- /dev/null
+++ b/src/test/burn/TestData/DependencyTests/PackageFv1_0_1/PackageFv1_0_1.wixproj
@@ -0,0 +1,7 @@
1<!-- Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information. -->
2<Project Sdk="WixToolset.Sdk">
3 <Import Project="..\PackageFv1\PackageFv1.props" />
4 <PropertyGroup>
5 <Version>1.0.1.0</Version>
6 </PropertyGroup>
7</Project> \ No newline at end of file
diff --git a/src/test/burn/TestData/DependencyTests/PackageFv2/PackageFv2.wixproj b/src/test/burn/TestData/DependencyTests/PackageFv2/PackageFv2.wixproj
new file mode 100644
index 00000000..f9ca3be0
--- /dev/null
+++ b/src/test/burn/TestData/DependencyTests/PackageFv2/PackageFv2.wixproj
@@ -0,0 +1,7 @@
1<!-- Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information. -->
2<Project Sdk="WixToolset.Sdk">
3 <Import Project="..\PackageFv1\PackageF.props" />
4 <PropertyGroup>
5 <Version>2.0.0.0</Version>
6 </PropertyGroup>
7</Project> \ No newline at end of file
diff --git a/src/test/burn/TestData/DependencyTests/PackageGv1/PackageG.props b/src/test/burn/TestData/DependencyTests/PackageGv1/PackageG.props
new file mode 100644
index 00000000..79b18136
--- /dev/null
+++ b/src/test/burn/TestData/DependencyTests/PackageGv1/PackageG.props
@@ -0,0 +1,10 @@
1<!-- Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information. -->
2<Project>
3 <PropertyGroup>
4 <PackageName>PackageG</PackageName>
5 <UpgradeCode>{CFBC162E-8D89-40A7-8E07-7B46E3B27C26}</UpgradeCode>
6 </PropertyGroup>
7 <ItemGroup>
8 <Compile Include="..\..\Templates\Package.wxs" Link="Package.wxs" />
9 </ItemGroup>
10</Project> \ No newline at end of file
diff --git a/src/test/burn/TestData/DependencyTests/PackageGv1/PackageGv1.props b/src/test/burn/TestData/DependencyTests/PackageGv1/PackageGv1.props
new file mode 100644
index 00000000..83b5992d
--- /dev/null
+++ b/src/test/burn/TestData/DependencyTests/PackageGv1/PackageGv1.props
@@ -0,0 +1,7 @@
1<!-- Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information. -->
2<Project>
3 <Import Project="PackageG.props" />
4 <PropertyGroup>
5 <ProductCode>{56169850-B98A-4D9B-AF5D-8974B6807FE9}</ProductCode>
6 </PropertyGroup>
7</Project> \ No newline at end of file
diff --git a/src/test/burn/TestData/DependencyTests/PackageGv1/PackageGv1.wixproj b/src/test/burn/TestData/DependencyTests/PackageGv1/PackageGv1.wixproj
new file mode 100644
index 00000000..7d5e9fab
--- /dev/null
+++ b/src/test/burn/TestData/DependencyTests/PackageGv1/PackageGv1.wixproj
@@ -0,0 +1,4 @@
1<!-- Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information. -->
2<Project Sdk="WixToolset.Sdk">
3 <Import Project="PackageGv1.props" />
4</Project> \ No newline at end of file
diff --git a/src/test/burn/TestData/DependencyTests/PackageGv1_0_1/PackageGv1_0_1.wixproj b/src/test/burn/TestData/DependencyTests/PackageGv1_0_1/PackageGv1_0_1.wixproj
new file mode 100644
index 00000000..3af8e1d0
--- /dev/null
+++ b/src/test/burn/TestData/DependencyTests/PackageGv1_0_1/PackageGv1_0_1.wixproj
@@ -0,0 +1,7 @@
1<!-- Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information. -->
2<Project Sdk="WixToolset.Sdk">
3 <Import Project="..\PackageGv1\PackageGv1.props" />
4 <PropertyGroup>
5 <Version>1.0.1.0</Version>
6 </PropertyGroup>
7</Project> \ No newline at end of file
diff --git a/src/test/burn/TestData/DependencyTests/PackageGv2/PackageGv2.wixproj b/src/test/burn/TestData/DependencyTests/PackageGv2/PackageGv2.wixproj
new file mode 100644
index 00000000..6ffe6e55
--- /dev/null
+++ b/src/test/burn/TestData/DependencyTests/PackageGv2/PackageGv2.wixproj
@@ -0,0 +1,7 @@
1<!-- Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information. -->
2<Project Sdk="WixToolset.Sdk">
3 <Import Project="..\PackageGv1\PackageG.props" />
4 <PropertyGroup>
5 <Version>2.0.0.0</Version>
6 </PropertyGroup>
7</Project> \ No newline at end of file
diff --git a/src/test/burn/WixTestTools/BundleVerifier.cs b/src/test/burn/WixTestTools/BundleVerifier.cs
index db14c228..e0edb081 100644
--- a/src/test/burn/WixTestTools/BundleVerifier.cs
+++ b/src/test/burn/WixTestTools/BundleVerifier.cs
@@ -14,6 +14,7 @@ namespace WixTestTools
14 14
15 public partial class BundleInstaller 15 public partial class BundleInstaller
16 { 16 {
17 public const string DependencyRegistryRoot = "Software\\Classes\\Installer\\Dependencies";
17 public const string FULL_BURN_POLICY_REGISTRY_PATH = "SOFTWARE\\WOW6432Node\\Policies\\WiX\\Burn"; 18 public const string FULL_BURN_POLICY_REGISTRY_PATH = "SOFTWARE\\WOW6432Node\\Policies\\WiX\\Burn";
18 public const string PACKAGE_CACHE_FOLDER_NAME = "Package Cache"; 19 public const string PACKAGE_CACHE_FOLDER_NAME = "Package Cache";
19 20
@@ -134,6 +135,22 @@ namespace WixTestTools
134 Assert.Equal(cached, Directory.Exists(cachePath)); 135 Assert.Equal(cached, Directory.Exists(cachePath));
135 } 136 }
136 137
138 public void VerifyPackageProviderRemoved(string packageId)
139 {
140 using var wixOutput = WixOutput.Read(this.BundlePdb);
141 var intermediate = Intermediate.Load(wixOutput);
142 var section = intermediate.Sections.Single();
143 var packageSymbol = section.Symbols.OfType<WixBundlePackageSymbol>().Single(p => p.Id.Id == packageId);
144 var providerSymbol = section.Symbols.OfType<WixDependencyProviderSymbol>().Single(p => p.ParentRef == packageId);
145 var registryRoot = packageSymbol.PerMachine == YesNoDefaultType.Yes ? Registry.LocalMachine : Registry.CurrentUser;
146 var subkeyPath = Path.Combine(DependencyRegistryRoot, providerSymbol.ProviderKey);
147 using var registryKey = registryRoot.OpenSubKey(subkeyPath);
148 if (registryKey != null)
149 {
150 WixAssert.StringEqual(null, subkeyPath);
151 }
152 }
153
137 public void VerifyExeTestRegistryRootDeleted(string name, bool x64 = false) 154 public void VerifyExeTestRegistryRootDeleted(string name, bool x64 = false)
138 { 155 {
139 using var testRegistryRoot = this.TestContext.GetTestRegistryRoot(x64, name); 156 using var testRegistryRoot = this.TestContext.GetTestRegistryRoot(x64, name);
diff --git a/src/test/burn/WixToolsetTest.BurnE2E/DependencyTests.cs b/src/test/burn/WixToolsetTest.BurnE2E/DependencyTests.cs
index e95e141c..e0b402ff 100644
--- a/src/test/burn/WixToolsetTest.BurnE2E/DependencyTests.cs
+++ b/src/test/burn/WixToolsetTest.BurnE2E/DependencyTests.cs
@@ -15,29 +15,29 @@ namespace WixToolsetTest.BurnE2E
15 [Fact] 15 [Fact]
16 public void CanKeepSameExactPackageAfterUpgradingBundle() 16 public void CanKeepSameExactPackageAfterUpgradingBundle()
17 { 17 {
18 var packageF = this.CreatePackageInstaller("PackageF"); 18 var packageFv1 = this.CreatePackageInstaller("PackageFv1");
19 var bundleKv1 = this.CreateBundleInstaller("BundleKv1"); 19 var bundleKv1 = this.CreateBundleInstaller("BundleKv1");
20 var bundleKv2 = this.CreateBundleInstaller("BundleKv2"); 20 var bundleKv2 = this.CreateBundleInstaller("BundleKv2");
21 21
22 packageF.VerifyInstalled(false); 22 packageFv1.VerifyInstalled(false);
23 23
24 bundleKv1.Install(); 24 bundleKv1.Install();
25 bundleKv1.VerifyRegisteredAndInPackageCache(); 25 bundleKv1.VerifyRegisteredAndInPackageCache();
26 26
27 packageF.VerifyInstalled(true); 27 packageFv1.VerifyInstalled(true);
28 28
29 bundleKv2.Install(); 29 bundleKv2.Install();
30 bundleKv2.VerifyRegisteredAndInPackageCache(); 30 bundleKv2.VerifyRegisteredAndInPackageCache();
31 bundleKv1.VerifyUnregisteredAndRemovedFromPackageCache(); 31 bundleKv1.VerifyUnregisteredAndRemovedFromPackageCache();
32 32
33 packageF.VerifyInstalled(true); 33 packageFv1.VerifyInstalled(true);
34 34
35 bundleKv2.VerifyPackageIsCached("PackageF"); 35 bundleKv2.VerifyPackageIsCached("PackageF");
36 36
37 bundleKv2.Uninstall(); 37 bundleKv2.Uninstall();
38 bundleKv2.VerifyUnregisteredAndRemovedFromPackageCache(); 38 bundleKv2.VerifyUnregisteredAndRemovedFromPackageCache();
39 39
40 packageF.VerifyInstalled(false); 40 packageFv1.VerifyInstalled(false);
41 } 41 }
42 42
43 [Fact (Skip = "https://github.com/wixtoolset/issues/issues/6401")] 43 [Fact (Skip = "https://github.com/wixtoolset/issues/issues/6401")]
@@ -539,6 +539,152 @@ namespace WixToolsetTest.BurnE2E
539 } 539 }
540 } 540 }
541 541
542 [Fact(Skip = "https://github.com/wixtoolset/issues/issues/3421")]
543 public void DoesntLoseDependenciesOnFailedMajorUpgradeBundleFromMajorUpdateMsi()
544 {
545 var packageAv1 = this.CreatePackageInstaller("PackageAv1");
546 var packageC = this.CreatePackageInstaller("PackageC");
547 var packageFv1 = this.CreatePackageInstaller("PackageFv1");
548 var packageFv2 = this.CreatePackageInstaller("PackageFv2");
549 var packageGv1 = this.CreatePackageInstaller("PackageGv1");
550 var packageGv2 = this.CreatePackageInstaller("PackageGv2");
551 var bundleM = this.CreateBundleInstaller("BundleM");
552 var bundleNv1 = this.CreateBundleInstaller("BundleNv1");
553 var bundleNv2 = this.CreateBundleInstaller("BundleNv2");
554 var testBAController = this.CreateTestBAController();
555
556 packageAv1.VerifyInstalled(false);
557 packageC.VerifyInstalled(false);
558 packageFv1.VerifyInstalled(false);
559 packageFv2.VerifyInstalled(false);
560 packageGv1.VerifyInstalled(false);
561 packageGv2.VerifyInstalled(false);
562
563 bundleM.Install();
564 bundleM.VerifyRegisteredAndInPackageCache();
565
566 packageAv1.VerifyInstalled(true);
567 packageFv1.VerifyInstalled(true);
568 packageFv2.VerifyInstalled(false);
569 packageGv1.VerifyInstalled(false);
570 packageGv2.VerifyInstalled(false);
571
572 bundleNv1.Install();
573 bundleNv1.VerifyRegisteredAndInPackageCache();
574
575 packageAv1.VerifyInstalled(true);
576 packageFv1.VerifyInstalled(true);
577 packageFv2.VerifyInstalled(false);
578 packageGv1.VerifyInstalled(true);
579 packageGv2.VerifyInstalled(false);
580
581 // Make PackageC fail.
582 testBAController.SetPackageCancelExecuteAtProgress("PackageC", 10);
583
584 bundleNv2.Install((int)MSIExec.MSIExecReturnCode.ERROR_INSTALL_USEREXIT);
585 bundleNv2.VerifyUnregisteredAndRemovedFromPackageCache();
586 bundleNv1.VerifyRegisteredAndInPackageCache();
587
588 packageAv1.VerifyInstalled(true);
589 packageC.VerifyInstalled(false);
590 packageFv1.VerifyInstalled(true);
591 packageFv2.VerifyInstalled(false);
592 packageGv1.VerifyInstalled(true);
593 packageGv2.VerifyInstalled(false);
594
595 bundleM.Uninstall();
596 bundleM.VerifyUnregisteredAndRemovedFromPackageCache();
597
598 packageAv1.VerifyInstalled(false);
599 packageFv1.VerifyInstalled(true);
600 packageFv2.VerifyInstalled(false);
601 packageGv1.VerifyInstalled(true);
602 packageGv2.VerifyInstalled(false);
603
604 bundleNv1.Uninstall();
605 bundleNv1.VerifyUnregisteredAndRemovedFromPackageCache();
606
607 packageAv1.VerifyInstalled(false);
608 packageFv1.VerifyInstalled(false);
609 packageFv2.VerifyInstalled(false);
610 packageGv1.VerifyInstalled(false);
611 packageGv2.VerifyInstalled(false);
612 }
613
614 [Fact(Skip = "https://github.com/wixtoolset/issues/issues/6510")]
615 public void DoesntLoseDependenciesOnFailedMajorUpgradeBundleFromMinorUpdateMsi()
616 {
617 var packageAv1 = this.CreatePackageInstaller("PackageAv1");
618 var packageC = this.CreatePackageInstaller("PackageC");
619 var packageFv1 = this.CreatePackageInstaller("PackageFv1");
620 var packageFv101 = this.CreatePackageInstaller("PackageFv1_0_1");
621 var packageGv1 = this.CreatePackageInstaller("PackageGv1");
622 var packageGv101 = this.CreatePackageInstaller("PackageGv1_0_1");
623 var bundleM = this.CreateBundleInstaller("BundleM");
624 var bundleNv1 = this.CreateBundleInstaller("BundleNv1");
625 var bundleNv101 = this.CreateBundleInstaller("BundleNv1_0_1");
626 var testBAController = this.CreateTestBAController();
627
628 packageAv1.VerifyInstalled(false);
629 packageC.VerifyInstalled(false);
630 packageFv1.VerifyInstalledWithVersion(false);
631 packageFv101.VerifyInstalledWithVersion(false);
632 packageGv1.VerifyInstalledWithVersion(false);
633 packageGv101.VerifyInstalledWithVersion(false);
634
635 bundleM.Install();
636 bundleM.VerifyRegisteredAndInPackageCache();
637
638 packageAv1.VerifyInstalled(true);
639 packageFv1.VerifyInstalledWithVersion(true);
640 packageFv101.VerifyInstalledWithVersion(false);
641 packageGv1.VerifyInstalledWithVersion(false);
642 packageGv101.VerifyInstalledWithVersion(false);
643
644 bundleNv1.Install();
645 bundleNv1.VerifyRegisteredAndInPackageCache();
646
647 packageAv1.VerifyInstalled(true);
648 packageFv1.VerifyInstalledWithVersion(true);
649 packageFv101.VerifyInstalledWithVersion(false);
650 packageGv1.VerifyInstalledWithVersion(true);
651 packageGv101.VerifyInstalledWithVersion(false);
652
653 // Make PackageC fail.
654 testBAController.SetPackageCancelExecuteAtProgress("PackageC", 10);
655
656 // Verify https://github.com/wixtoolset/issues/issues/6510 - Dependency provider removed on rollback even though package is not rolled back
657 bundleNv101.Install((int)MSIExec.MSIExecReturnCode.ERROR_INSTALL_USEREXIT);
658 bundleNv101.VerifyUnregisteredAndRemovedFromPackageCache();
659 bundleNv1.VerifyRegisteredAndInPackageCache();
660
661 // The expected values will change after implementing https://github.com/wixtoolset/issues/issues/6535 and https://github.com/wixtoolset/issues/issues/3421
662 packageAv1.VerifyInstalled(true);
663 packageC.VerifyInstalled(false);
664 packageFv1.VerifyInstalledWithVersion(false);
665 packageFv101.VerifyInstalledWithVersion(true);
666 packageGv1.VerifyInstalledWithVersion(false);
667 packageGv101.VerifyInstalledWithVersion(true);
668
669 bundleM.Uninstall();
670 bundleM.VerifyUnregisteredAndRemovedFromPackageCache();
671
672 packageAv1.VerifyInstalled(false);
673 packageFv1.VerifyInstalledWithVersion(false);
674 packageFv101.VerifyInstalledWithVersion(true);
675 packageGv1.VerifyInstalledWithVersion(false);
676 packageGv101.VerifyInstalledWithVersion(true);
677
678 bundleNv1.Uninstall();
679 bundleNv1.VerifyUnregisteredAndRemovedFromPackageCache();
680
681 packageAv1.VerifyInstalled(false);
682 packageFv1.VerifyInstalledWithVersion(false);
683 packageFv101.VerifyInstalledWithVersion(false);
684 packageGv1.VerifyInstalledWithVersion(false);
685 packageGv101.VerifyInstalledWithVersion(false);
686 }
687
542 [Fact] 688 [Fact]
543 public void DoesntRegisterDependencyOnPackageNotSelectedForInstall() 689 public void DoesntRegisterDependencyOnPackageNotSelectedForInstall()
544 { 690 {
@@ -711,6 +857,49 @@ namespace WixToolsetTest.BurnE2E
711 bundleA.VerifyExeTestRegistryRootDeleted(testRegistryValueExe); 857 bundleA.VerifyExeTestRegistryRootDeleted(testRegistryValueExe);
712 } 858 }
713 859
860 [Fact(Skip = "https://github.com/wixtoolset/issues/issues/3850")]
861 public void RemovesDependencyProviderFromUpgradedPackageDuringUninstall()
862 {
863 var packageC = this.CreatePackageInstaller("PackageC");
864 var packageFv1 = this.CreatePackageInstaller("PackageFv1");
865 var packageFv2 = this.CreatePackageInstaller("PackageFv2");
866 var packageGv1 = this.CreatePackageInstaller("PackageGv1");
867 var packageGv2 = this.CreatePackageInstaller("PackageGv2");
868 var bundleNv1 = this.CreateBundleInstaller("BundleNv1");
869 var bundleNv2 = this.CreateBundleInstaller("BundleNv2");
870
871 packageC.VerifyInstalled(false);
872 packageFv1.VerifyInstalled(false);
873 packageFv2.VerifyInstalled(false);
874 packageGv1.VerifyInstalled(false);
875 packageGv2.VerifyInstalled(false);
876
877 bundleNv1.Install();
878 bundleNv1.VerifyRegisteredAndInPackageCache();
879
880 packageC.VerifyInstalled(false);
881 packageFv1.VerifyInstalled(true);
882 packageFv2.VerifyInstalled(false);
883 packageGv1.VerifyInstalled(true);
884 packageGv2.VerifyInstalled(false);
885
886 // Verify https://github.com/wixtoolset/issues/issues/3850 - Dependency provider not removed on uninstall from upgrade
887 bundleNv2.Install();
888 bundleNv2.VerifyRegisteredAndInPackageCache();
889 bundleNv1.VerifyUnregisteredAndRemovedFromPackageCache();
890
891 packageC.VerifyInstalled(true);
892 packageFv1.VerifyInstalled(false);
893 packageFv2.VerifyInstalled(true);
894 packageGv1.VerifyInstalled(false);
895 packageGv2.VerifyInstalled(true);
896
897 bundleNv1.VerifyPackageIsCached("PackageF", false);
898 bundleNv1.VerifyPackageIsCached("PackageG", false);
899 bundleNv1.VerifyPackageProviderRemoved("PackageF");
900 bundleNv1.VerifyPackageProviderRemoved("PackageG");
901 }
902
714 [Fact] 903 [Fact]
715 public void SkipsCrossScopeDependencyRegistration() 904 public void SkipsCrossScopeDependencyRegistration()
716 { 905 {