diff --git a/util/Xamarin.Build.Download/source/Xamarin.Build.Download.Tests/Test.cs b/util/Xamarin.Build.Download/source/Xamarin.Build.Download.Tests/Test.cs index b144c56ef..a5a9caa91 100644 --- a/util/Xamarin.Build.Download/source/Xamarin.Build.Download.Tests/Test.cs +++ b/util/Xamarin.Build.Download/source/Xamarin.Build.Download.Tests/Test.cs @@ -5,6 +5,7 @@ using System.IO; using System.IO.Compression; using System.Linq; +using System.Reflection; using System.Xml; using System.Xml.Linq; using Microsoft.Build.Construction; @@ -157,6 +158,27 @@ public void TestTgzDownload () Assert.True (File.Exists (Path.Combine (unpackDir, "GoogleSymbolUtilities-1.0.3", "Libraries", "libGSDK_Overload.a"))); } + [Fact] + public void Test7ZipExtractionIsNonInteractive () + { + var method = typeof (Xamarin.Build.Download.XamarinDownloadArchives).GetMethod ( + "Build7ZipExtractionArgs", + BindingFlags.NonPublic | BindingFlags.Static); + Assert.True (method != null, "Could not find XamarinDownloadArchives.Build7ZipExtractionArgs via reflection."); + var sevenZipPath = Path.Combine (TempDir, "7z.exe"); + File.WriteAllText (sevenZipPath, string.Empty); + + var args = method.Invoke (null, new object [] { + "archive.tgz", + TempDir, + sevenZipPath, + false, + null, + }); + + Assert.Contains ("-y", args.ToString ()); + } + [Fact] public void TestUncompressedNamedDownload () { diff --git a/util/Xamarin.Build.Download/source/Xamarin.Build.Download/Xamarin.Build.Download.csproj b/util/Xamarin.Build.Download/source/Xamarin.Build.Download/Xamarin.Build.Download.csproj index 5b959c40c..30d91c6e2 100644 --- a/util/Xamarin.Build.Download/source/Xamarin.Build.Download/Xamarin.Build.Download.csproj +++ b/util/Xamarin.Build.Download/source/Xamarin.Build.Download/Xamarin.Build.Download.csproj @@ -9,7 +9,7 @@ Xamarin.Build.Download Xamarin Build-time Download Support - 0.11.4 + 0.11.5 Microsoft Microsoft https://go.microsoft.com/fwlink/?linkid=865061 diff --git a/util/Xamarin.Build.Download/source/Xamarin.Build.Download/XamarinDownloadArchives.cs b/util/Xamarin.Build.Download/source/Xamarin.Build.Download/XamarinDownloadArchives.cs index 9a00a0b51..5ff2b8dc7 100644 --- a/util/Xamarin.Build.Download/source/Xamarin.Build.Download/XamarinDownloadArchives.cs +++ b/util/Xamarin.Build.Download/source/Xamarin.Build.Download/XamarinDownloadArchives.cs @@ -319,6 +319,9 @@ static ProcessArgumentBuilder Build7ZipExtractionArgs (string file, string conte if (ignoreTarSymLinks) args.Add ("-snl-"); + // Never let 7-Zip wait for input from a non-interactive MSBuild task. + // https://7-zip.opensource.jp/chm/cmdline/switches/yes.htm + args.Add ("-y"); args.AddQuoted ("-o" + contentDir); args.AddQuoted (file); return args;