[tests] Adjust BuildingSameSolutionTwice_ShouldNotRunACToolTwice to work on an M1 machine. (#10954)
This test verifies that the build log prints: "execution started with arguments: actool --errors --warnings --notices --output-format xml1 --output-partial-info-plist " However, for M1 machines, we don't call actool directly, we go through 'arch' instead, and this line is printed: Tool arch execution started with arguments: -arch arm64e /usr/bin/xcrun actool --errors --warnings --notices --output-format xml1 --output-partial-info-plist ... So adjust the test to cope with both of these behaviors.
This commit is contained in:
Родитель
07fb20a6de
Коммит
5fd95007fd
|
@ -688,7 +688,12 @@ namespace Xamarin.MMP.Tests
|
||||||
[Test]
|
[Test]
|
||||||
public void BuildingSameSolutionTwice_ShouldNotRunACToolTwice ()
|
public void BuildingSameSolutionTwice_ShouldNotRunACToolTwice ()
|
||||||
{
|
{
|
||||||
const string actool = " execution started with arguments: actool --errors --warnings --notices --output-format xml1 --output-partial-info-plist ";
|
Func<string, bool> executedActool = (line) => {
|
||||||
|
if (!line.Contains (" execution started with arguments"))
|
||||||
|
return false;
|
||||||
|
return line.Contains ("actool --errors --warnings --notices --output-format xml1 --output-partial-info-plist ");
|
||||||
|
};
|
||||||
|
|
||||||
RunMMPTest (tmpDir => {
|
RunMMPTest (tmpDir => {
|
||||||
TI.UnifiedTestConfig test = new TI.UnifiedTestConfig (tmpDir) {
|
TI.UnifiedTestConfig test = new TI.UnifiedTestConfig (tmpDir) {
|
||||||
AssetIcons = true
|
AssetIcons = true
|
||||||
|
@ -697,18 +702,15 @@ namespace Xamarin.MMP.Tests
|
||||||
string project = TI.GenerateUnifiedExecutableProject (test);
|
string project = TI.GenerateUnifiedExecutableProject (test);
|
||||||
|
|
||||||
var buildResult = TI.BuildProject (project);
|
var buildResult = TI.BuildProject (project);
|
||||||
var buildOutput = buildResult.BuildOutput;
|
Assert.True (buildResult.BuildOutputLines.Any (executedActool), $"Initial build should run actool");
|
||||||
Assert.True (buildOutput.Contains (actool), $"Initial build should run actool");
|
|
||||||
|
|
||||||
buildResult = TI.BuildProject (project);
|
buildResult = TI.BuildProject (project);
|
||||||
buildOutput = buildResult.BuildOutput;
|
Assert.False (buildResult.BuildOutputLines.Any (executedActool), $"Second build should not run actool");
|
||||||
Assert.False (buildOutput.Contains (actool), $"Second build should not run actool");
|
|
||||||
|
|
||||||
TI.RunAndAssert ("touch", new [] { Path.Combine (tmpDir, "Assets.xcassets/AppIcon.appiconset/AppIcon-256@2x.png") }, "touch icon");
|
TI.RunAndAssert ("touch", new [] { Path.Combine (tmpDir, "Assets.xcassets/AppIcon.appiconset/AppIcon-256@2x.png") }, "touch icon");
|
||||||
|
|
||||||
buildResult = TI.BuildProject (project);
|
buildResult = TI.BuildProject (project);
|
||||||
buildOutput = buildResult.BuildOutput;
|
Assert.True (buildResult.BuildOutputLines.Any (executedActool), $"Build after touching icon must run actool");
|
||||||
Assert.True (buildOutput.Contains (actool), $"Build after touching icon must run actool");
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Загрузка…
Ссылка в новой задаче