Skip to content

Commit 8162ac9

Browse files
authored
[wasm] Avoid unnecessary relinking when publishing a blazor project for AOT (#82748)
* [wasm] Wasm.Build.Tests: Add blazor+aot run test * cleanup * [wasm] Wasm.Build.Tests: Use $(_IsPublishing) to avoid unncessary .. relinking during "Build", when publishing. `Publish` target triggers `Build` target to run. When publishing, we don't want to run relinking step during the `Build`, as it will be run for `Publish` anyway. Earlier there wasn't a good way to differentiate the two cases of `build` when building, and `build` when publishing, but now the sdk sets `$(_IsPublishing)=true`, which can be used here. * fix blazor tests * Wasm.Build.Tests: Add support for running published blazor projects `dotnet run` uses the regular build output. Published blazor app, like when using AOT, needs to be run more "manually" by starting a web server in the publish folder. This is accomplished here by using the new xharness command `wasm webserver`. * Detect runtime assertions in blazor runs * Update test to track changes * cleanup * Disable BlazorPublishRunTest because of #82481 * Update test to track changes * Update xharness dependency Updating 'Microsoft.DotNet.XHarness.CLI': '1.0.0-prerelease.23117.1' => '1.0.0-prerelease.23151.1' (from build '20230301.1' of 'https://github.com/dotnet/xharness') Updating 'Microsoft.DotNet.XHarness.TestRunners.Common': '1.0.0-prerelease.23117.1' => '1.0.0-prerelease.23151.1' (from build '20230301.1' of 'https://github.com/dotnet/xharness') Updating 'Microsoft.DotNet.XHarness.TestRunners.Xunit': '1.0.0-prerelease.23117.1' => '1.0.0-prerelease.23151.1' (from build '20230301.1' of 'https://github.com/dotnet/xharness')
1 parent b8a4f02 commit 8162ac9

13 files changed

+130
-60
lines changed

.config/dotnet-tools.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
]
1616
},
1717
"microsoft.dotnet.xharness.cli": {
18-
"version": "1.0.0-prerelease.23117.1",
18+
"version": "1.0.0-prerelease.23151.1",
1919
"commands": [
2020
"xharness"
2121
]

eng/Version.Details.xml

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -284,17 +284,17 @@
284284
<Uri>https://github.com/dotnet/runtime</Uri>
285285
<Sha>252018c3d3fffdb592413cf61d5b80cf751e0a59</Sha>
286286
</Dependency>
287-
<Dependency Name="Microsoft.DotNet.XHarness.TestRunners.Common" Version="1.0.0-prerelease.23117.1">
287+
<Dependency Name="Microsoft.DotNet.XHarness.TestRunners.Common" Version="1.0.0-prerelease.23151.1">
288288
<Uri>https://github.com/dotnet/xharness</Uri>
289-
<Sha>8d789cbeecb6c89bf470fdc7727a8f501724fc8a</Sha>
289+
<Sha>05d4d5fc8634fa68ec53a9a3b31271797f4a0c7c</Sha>
290290
</Dependency>
291-
<Dependency Name="Microsoft.DotNet.XHarness.TestRunners.Xunit" Version="1.0.0-prerelease.23117.1">
291+
<Dependency Name="Microsoft.DotNet.XHarness.TestRunners.Xunit" Version="1.0.0-prerelease.23151.1">
292292
<Uri>https://github.com/dotnet/xharness</Uri>
293-
<Sha>8d789cbeecb6c89bf470fdc7727a8f501724fc8a</Sha>
293+
<Sha>05d4d5fc8634fa68ec53a9a3b31271797f4a0c7c</Sha>
294294
</Dependency>
295-
<Dependency Name="Microsoft.DotNet.XHarness.CLI" Version="1.0.0-prerelease.23117.1">
295+
<Dependency Name="Microsoft.DotNet.XHarness.CLI" Version="1.0.0-prerelease.23151.1">
296296
<Uri>https://github.com/dotnet/xharness</Uri>
297-
<Sha>8d789cbeecb6c89bf470fdc7727a8f501724fc8a</Sha>
297+
<Sha>05d4d5fc8634fa68ec53a9a3b31271797f4a0c7c</Sha>
298298
</Dependency>
299299
<Dependency Name="Microsoft.DotNet.PackageTesting" Version="8.0.0-beta.23123.2">
300300
<Uri>https://github.com/dotnet/arcade</Uri>

eng/Versions.props

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -185,9 +185,9 @@
185185
<!-- Testing -->
186186
<MicrosoftNETCoreCoreDisToolsVersion>1.1.0</MicrosoftNETCoreCoreDisToolsVersion>
187187
<MicrosoftNETTestSdkVersion>17.4.0-preview-20220707-01</MicrosoftNETTestSdkVersion>
188-
<MicrosoftDotNetXHarnessTestRunnersCommonVersion>1.0.0-prerelease.23117.1</MicrosoftDotNetXHarnessTestRunnersCommonVersion>
189-
<MicrosoftDotNetXHarnessTestRunnersXunitVersion>1.0.0-prerelease.23117.1</MicrosoftDotNetXHarnessTestRunnersXunitVersion>
190-
<MicrosoftDotNetXHarnessCLIVersion>1.0.0-prerelease.23117.1</MicrosoftDotNetXHarnessCLIVersion>
188+
<MicrosoftDotNetXHarnessTestRunnersCommonVersion>1.0.0-prerelease.23151.1</MicrosoftDotNetXHarnessTestRunnersCommonVersion>
189+
<MicrosoftDotNetXHarnessTestRunnersXunitVersion>1.0.0-prerelease.23151.1</MicrosoftDotNetXHarnessTestRunnersXunitVersion>
190+
<MicrosoftDotNetXHarnessCLIVersion>1.0.0-prerelease.23151.1</MicrosoftDotNetXHarnessCLIVersion>
191191
<MicrosoftDotNetHotReloadUtilsGeneratorBuildToolVersion>1.1.0-alpha.0.23113.1</MicrosoftDotNetHotReloadUtilsGeneratorBuildToolVersion>
192192
<XUnitVersion>2.4.2</XUnitVersion>
193193
<XUnitAnalyzersVersion>1.0.0</XUnitAnalyzersVersion>

src/mono/wasm/Wasm.Build.Tests/Blazor/BuildPublishTests.cs

Lines changed: 67 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -32,11 +32,11 @@ public void DefaultTemplate_WithoutWorkload(string config)
3232
CreateBlazorWasmTemplateProject(id);
3333

3434
// Build
35-
BuildInternal(id, config, publish: false);
35+
BlazorBuildInternal(id, config, publish: false);
3636
AssertBlazorBootJson(config, isPublish: false);
3737

3838
// Publish
39-
BuildInternal(id, config, publish: true);
39+
BlazorBuildInternal(id, config, publish: true);
4040
AssertBlazorBootJson(config, isPublish: true);
4141
}
4242

@@ -52,11 +52,11 @@ public void DefaultTemplate_NoAOT_WithWorkload(string config)
5252
if (config == "Release")
5353
{
5454
// relinking in publish for Release config
55-
BlazorPublish(new BlazorBuildOptions(id, config, NativeFilesType.Relinked));
55+
BlazorPublish(new BlazorBuildOptions(id, config, NativeFilesType.Relinked, ExpectRelinkDirWhenPublishing: true));
5656
}
5757
else
5858
{
59-
BlazorPublish(new BlazorBuildOptions(id, config, NativeFilesType.FromRuntimePack));
59+
BlazorPublish(new BlazorBuildOptions(id, config, NativeFilesType.FromRuntimePack, ExpectRelinkDirWhenPublishing: true));
6060
}
6161
}
6262

@@ -82,12 +82,23 @@ public void DefaultTemplate_NoAOT_WithWorkload(string config)
8282
//}
8383

8484
[Theory]
85-
[InlineData("Debug")]
86-
[InlineData("Release")]
87-
public async Task WithDllImportInMainAssembly(string config)
85+
[InlineData("Debug", /*build*/true, /*publish*/false)]
86+
[InlineData("Debug", /*build*/false, /*publish*/true)]
87+
[InlineData("Debug", /*build*/true, /*publish*/true)]
88+
[InlineData("Release", /*build*/true, /*publish*/false)]
89+
[InlineData("Release", /*build*/false, /*publish*/true)]
90+
[InlineData("Release", /*build*/true, /*publish*/true)]
91+
public async Task WithDllImportInMainAssembly(string config, bool build, bool publish)
8892
{
8993
// Based on https://github.com/dotnet/runtime/issues/59255
90-
string id = $"blz_dllimp_{config}";
94+
string id = $"blz_dllimp_{config}_";
95+
if (build && publish)
96+
id += "build_then_publish";
97+
else if (build)
98+
id += "build";
99+
else
100+
id += "publish";
101+
91102
string projectFile = CreateProjectWithNativeReference(id);
92103
string nativeSource = @"
93104
#include <stdio.h>
@@ -118,18 +129,29 @@ public static class MyDllImports
118129
outputText = $"{result}";
119130
""");
120131

121-
BlazorBuild(new BlazorBuildOptions(id, config, NativeFilesType.Relinked));
122-
CheckNativeFileLinked(forPublish: false);
132+
if (build)
133+
{
134+
BlazorBuild(new BlazorBuildOptions(id, config, NativeFilesType.Relinked));
135+
CheckNativeFileLinked(forPublish: false);
136+
}
137+
138+
if (publish)
139+
{
140+
BlazorPublish(new BlazorBuildOptions(id, config, NativeFilesType.Relinked, ExpectRelinkDirWhenPublishing: build));
141+
CheckNativeFileLinked(forPublish: true);
142+
}
123143

124-
BlazorPublish(new BlazorBuildOptions(id, config, NativeFilesType.Relinked));
125-
CheckNativeFileLinked(forPublish: true);
144+
if (publish)
145+
await BlazorRunForPublishWithWebServer(config, TestDllImport);
146+
else
147+
await BlazorRunForBuildWithDotnetRun(config, TestDllImport);
126148

127-
await BlazorRun(config, async (page) =>
149+
async Task TestDllImport(IPage page)
128150
{
129151
await page.Locator("text=\"cpp_add\"").ClickAsync();
130152
var txt = await page.Locator("p[role='test']").InnerHTMLAsync();
131153
Assert.Equal("Output: 22", txt);
132-
});
154+
}
133155

134156
void CheckNativeFileLinked(bool forPublish)
135157
{
@@ -181,7 +203,7 @@ public void BugRegression_60479_WithRazorClassLib()
181203
BlazorBuild(new BlazorBuildOptions(id, config, NativeFilesType.FromRuntimePack));
182204

183205
// will relink
184-
BlazorPublish(new BlazorBuildOptions(id, config, NativeFilesType.Relinked));
206+
BlazorPublish(new BlazorBuildOptions(id, config, NativeFilesType.Relinked, ExpectRelinkDirWhenPublishing: true));
185207

186208
// publish/wwwroot/_framework/blazor.boot.json
187209
string frameworkDir = FindBlazorBinFrameworkDir(config, forPublish: true);
@@ -197,4 +219,34 @@ public void BugRegression_60479_WithRazorClassLib()
197219

198220
Assert.Contains("RazorClassLibrary.dll", lazyVal.EnumerateObject().Select(jp => jp.Name));
199221
}
222+
223+
[ConditionalTheory(typeof(BuildTestBase), nameof(IsUsingWorkloads))]
224+
[InlineData("Debug")]
225+
[InlineData("Release")]
226+
public async Task BlazorBuildRunTest(string config)
227+
{
228+
string id = $"blazor_{config}_{Path.GetRandomFileName()}";
229+
string projectFile = CreateWasmTemplateProject(id, "blazorwasm");
230+
231+
BlazorBuild(new BlazorBuildOptions(id, config, NativeFilesType.FromRuntimePack));
232+
await BlazorRunForBuildWithDotnetRun(config);
233+
}
234+
235+
[ActiveIssue("https://github.com/dotnet/runtime/issues/82481")]
236+
[ConditionalTheory(typeof(BuildTestBase), nameof(IsUsingWorkloads))]
237+
[InlineData("Debug", false)]
238+
[InlineData("Debug", true)]
239+
[InlineData("Release", false)]
240+
[InlineData("Release", true)]
241+
public async Task BlazorPublishRunTest(string config, bool aot)
242+
{
243+
string id = $"blazor_{config}_{Path.GetRandomFileName()}";
244+
string projectFile = CreateWasmTemplateProject(id, "blazorwasm");
245+
if (aot)
246+
AddItemsPropertiesToProject(projectFile, "<RunAOTCompilation>true</RunAOTCompilation>");
247+
248+
BlazorPublish(new BlazorBuildOptions(id, config, aot ? NativeFilesType.AOT : NativeFilesType.Relinked));
249+
await BlazorRunForPublishWithWebServer(config);
250+
}
251+
200252
}

src/mono/wasm/Wasm.Build.Tests/Blazor/MiscTests.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ public void NativeBuild_WithDeployOnBuild_UsedByVS(string config, bool nativeRel
3535
AddItemsPropertiesToProject(projectFile, extraProperties: extraProperties);
3636

3737
// build with -p:DeployOnBuild=true, and that will trigger a publish
38-
(CommandResult res, _) = BuildInternal(id, config, publish: false, setWasmDevel: false, "-p:DeployOnBuild=true");
38+
(CommandResult res, _) = BlazorBuildInternal(id, config, publish: false, setWasmDevel: false, "-p:DeployOnBuild=true");
3939

4040
var expectedFileType = nativeRelink ? NativeFilesType.Relinked : NativeFilesType.AOT;
4141

@@ -83,7 +83,7 @@ public void DefaultTemplate_AOT_InProjectFile(string config)
8383
BlazorBuild(new BlazorBuildOptions(id, config, NativeFilesType.FromRuntimePack));
8484

8585
// will aot
86-
BlazorPublish(new BlazorBuildOptions(id, config, NativeFilesType.AOT));
86+
BlazorPublish(new BlazorBuildOptions(id, config, NativeFilesType.AOT, ExpectRelinkDirWhenPublishing: true));
8787

8888
// build again
8989
BlazorBuild(new BlazorBuildOptions(id, config, NativeFilesType.FromRuntimePack));

src/mono/wasm/Wasm.Build.Tests/Blazor/NativeRefTests.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ public void WithNativeReference_AOTInProjectFile(string config)
3232

3333
BlazorBuild(new BlazorBuildOptions(id, config, NativeFilesType.Relinked));
3434

35-
BlazorPublish(new BlazorBuildOptions(id, config, NativeFilesType.AOT));
35+
BlazorPublish(new BlazorBuildOptions(id, config, NativeFilesType.AOT, ExpectRelinkDirWhenPublishing: true));
3636

3737
// will relink
3838
BlazorBuild(new BlazorBuildOptions(id, config, NativeFilesType.Relinked));
@@ -53,10 +53,10 @@ public void WithNativeReference_AOTOnCommandLine(string config)
5353

5454
BlazorBuild(new BlazorBuildOptions(id, config, NativeFilesType.Relinked));
5555

56-
BlazorPublish(new BlazorBuildOptions(id, config, NativeFilesType.AOT), "-p:RunAOTCompilation=true");
56+
BlazorPublish(new BlazorBuildOptions(id, config, NativeFilesType.AOT, ExpectRelinkDirWhenPublishing: true), "-p:RunAOTCompilation=true");
5757

5858
// no aot!
59-
BlazorPublish(new BlazorBuildOptions(id, config, NativeFilesType.Relinked));
59+
BlazorPublish(new BlazorBuildOptions(id, config, NativeFilesType.Relinked, ExpectRelinkDirWhenPublishing: true));
6060
}
6161
}
6262

src/mono/wasm/Wasm.Build.Tests/BrowserRunner.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ public async Task<IPage> RunAsync(ToolCommand cmd, string args, bool headless =
7777
throw new Exception($"Process ended before the url was found");
7878
}
7979
if (!urlAvailable.Task.IsCompleted)
80-
throw new Exception("Timed out waiting for the app host url");
80+
throw new Exception("Timed out waiting for the web server url");
8181

8282
var url = new Uri(urlAvailable.Task.Result);
8383
Playwright = await Microsoft.Playwright.Playwright.CreateAsync();

src/mono/wasm/Wasm.Build.Tests/BuildPublishTests.cs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,6 @@ public void BuildThenPublishNoAOT(BuildArgs buildArgs, RunHost host, string id)
4141
Publish: false
4242
));
4343

44-
4544
Run();
4645

4746
if (!_buildContext.TryGetBuildFor(buildArgs, out BuildProduct? product))

src/mono/wasm/Wasm.Build.Tests/BuildTestBase.cs

Lines changed: 36 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -544,7 +544,7 @@ public string CreateBlazorWasmTemplateProject(string id)
544544
if (options.WarnAsError)
545545
extraArgs = extraArgs.Append("/warnaserror").ToArray();
546546

547-
var res = BuildInternal(options.Id, options.Config, publish: false, setWasmDevel: false, extraArgs);
547+
var res = BlazorBuildInternal(options.Id, options.Config, publish: false, setWasmDevel: false, extraArgs);
548548
_testOutput.WriteLine($"BlazorBuild, options.tfm: {options.TargetFramework}");
549549
AssertDotNetNativeFiles(options.ExpectedFileType, options.Config, forPublish: false, targetFramework: options.TargetFramework);
550550
AssertBlazorBundle(options.Config,
@@ -557,7 +557,7 @@ public string CreateBlazorWasmTemplateProject(string id)
557557

558558
protected (CommandResult, string) BlazorPublish(BlazorBuildOptions options, params string[] extraArgs)
559559
{
560-
var res = BuildInternal(options.Id, options.Config, publish: true, setWasmDevel: false, extraArgs);
560+
var res = BlazorBuildInternal(options.Id, options.Config, publish: true, setWasmDevel: false, extraArgs);
561561
AssertDotNetNativeFiles(options.ExpectedFileType, options.Config, forPublish: true, targetFramework: options.TargetFramework);
562562
AssertBlazorBundle(options.Config,
563563
isPublish: true,
@@ -572,11 +572,20 @@ public string CreateBlazorWasmTemplateProject(string id)
572572

573573
// make sure this assembly gets skipped
574574
Assert.DoesNotContain("Microsoft.JSInterop.WebAssembly.dll -> Microsoft.JSInterop.WebAssembly.dll.bc", res.Item1.Output);
575+
575576
}
577+
578+
string objBuildDir = Path.Combine(_projectDir!, "obj", options.Config, options.TargetFramework, "wasm", "for-build");
579+
// Check that we linked only for publish
580+
if (options.ExpectRelinkDirWhenPublishing)
581+
Assert.True(Directory.Exists(objBuildDir), $"Could not find expected {objBuildDir}, which gets created when relinking during Build. This is liokely a test authoring error");
582+
else
583+
Assert.False(Directory.Exists(objBuildDir), $"Found unexpected {objBuildDir}, which gets created when relinking during Build");
584+
576585
return res;
577586
}
578587

579-
protected (CommandResult, string) BuildInternal(string id, string config, bool publish=false, bool setWasmDevel=true, params string[] extraArgs)
588+
protected (CommandResult, string) BlazorBuildInternal(string id, string config, bool publish=false, bool setWasmDevel=true, params string[] extraArgs)
580589
{
581590
string label = publish ? "publish" : "build";
582591
_testOutput.WriteLine($"{Environment.NewLine}** {label} **{Environment.NewLine}");
@@ -922,13 +931,26 @@ public void BlazorAddRazorButton(string buttonText, string customCode, string me
922931
File.WriteAllText(counterRazorPath, oldContent + additionalCode);
923932
}
924933

925-
public async Task BlazorRun(string config, Func<IPage, Task>? test=null, string extraArgs="--no-build")
934+
// Keeping these methods with explicit Build/Publish in the name
935+
// so in the test code it is evident which is being run!
936+
public Task BlazorRunForBuildWithDotnetRun(string config, Func<IPage, Task>? test=null, string extraArgs="--no-build")
937+
=> BlazorRunTest($"run -c {config} {extraArgs}", _projectDir!, test);
938+
939+
public Task BlazorRunForPublishWithWebServer(string config, Func<IPage, Task>? test=null, string extraArgs="")
940+
=> BlazorRunTest($"{s_xharnessRunnerCommand} wasm webserver --app=. --web-server-use-default-files {extraArgs}",
941+
Path.GetFullPath(Path.Combine(FindBlazorBinFrameworkDir(config, forPublish: true), "..")),
942+
test);
943+
944+
public async Task BlazorRunTest(string runArgs,
945+
string workingDirectory,
946+
Func<IPage, Task>? test = null,
947+
bool detectRuntimeFailures = true)
926948
{
927949
using var runCommand = new RunCommand(s_buildEnv, _testOutput)
928-
.WithWorkingDirectory(_projectDir!);
950+
.WithWorkingDirectory(workingDirectory);
929951

930952
await using var runner = new BrowserRunner(_testOutput);
931-
var page = await runner.RunAsync(runCommand, $"run -c {config} {extraArgs}", onConsoleMessage: OnConsoleMessage);
953+
var page = await runner.RunAsync(runCommand, runArgs, onConsoleMessage: OnConsoleMessage);
932954

933955
await page.Locator("text=Counter").ClickAsync();
934956
var txt = await page.Locator("p[role='status']").InnerHTMLAsync();
@@ -946,6 +968,12 @@ void OnConsoleMessage(IConsoleMessage msg)
946968
if (EnvironmentVariables.ShowBuildOutput)
947969
Console.WriteLine($"[{msg.Type}] {msg.Text}");
948970
_testOutput.WriteLine($"[{msg.Type}] {msg.Text}");
971+
972+
if (detectRuntimeFailures)
973+
{
974+
if (msg.Text.Contains("[MONO] * Assertion") || msg.Text.Contains("Error: [MONO] "))
975+
throw new XunitException($"Detected a runtime failure at line: {msg.Text}");
976+
}
949977
}
950978
}
951979

@@ -1210,7 +1238,8 @@ public record BlazorBuildOptions
12101238
string Config,
12111239
NativeFilesType ExpectedFileType,
12121240
string TargetFramework = BuildTestBase.DefaultTargetFrameworkForBlazor,
1213-
bool WarnAsError = true
1241+
bool WarnAsError = true,
1242+
bool ExpectRelinkDirWhenPublishing=false
12141243
);
12151244

12161245
public enum GlobalizationMode

src/mono/wasm/Wasm.Build.Tests/CleanTests.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -73,15 +73,15 @@ private void Blazor_BuildNativeNonNative_ThenCleanTest(string config, bool first
7373
AddItemsPropertiesToProject(projectFile, extraProperties: extraProperties);
7474

7575
bool relink = firstBuildNative;
76-
BuildInternal(id, config, publish: false,
76+
BlazorBuildInternal(id, config, publish: false,
7777
extraArgs: relink ? "-p:WasmBuildNative=true" : string.Empty);
7878

7979
string relinkDir = Path.Combine(_projectDir!, "obj", config, DefaultTargetFrameworkForBlazor, "wasm", "for-build");
8080
if (relink)
8181
Assert.True(Directory.Exists(relinkDir), $"Could not find expected relink dir: {relinkDir}");
8282

8383
relink = !firstBuildNative;
84-
BuildInternal(id, config, publish: false,
84+
BlazorBuildInternal(id, config, publish: false,
8585
extraArgs: relink ? "-p:WasmBuildNative=true" : string.Empty);
8686

8787
if (relink)

src/mono/wasm/Wasm.Build.Tests/WasmNativeDefaultsTests.cs

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,9 @@ public void Defaults(string config, string extraProperties, bool aot, bool build
4040
{
4141
string output = CheckWasmNativeDefaultValue("native_defaults_publish", config, extraProperties, aot, dotnetWasmFromRuntimePack: !publishValue);
4242

43-
Assert.Contains($"** WasmBuildNative: '{buildValue.ToString().ToLower()}', WasmBuildingForNestedPublish: ''", output);
43+
// for build
44+
Assert.DoesNotContain($"** WasmBuildNative: '{buildValue.ToString().ToLower()}', WasmBuildingForNestedPublish: ''", output);
45+
// for publish
4446
Assert.Contains($"** WasmBuildNative: '{publishValue.ToString().ToLower()}', WasmBuildingForNestedPublish: 'true'", output);
4547
Assert.Contains("Stopping the build", output);
4648
}
@@ -61,7 +63,9 @@ public void WithNativeReference(string config, string extraProperties, bool buil
6163
dotnetWasmFromRuntimePack: !publishValue,
6264
extraItems: nativeRefItem);
6365

64-
Assert.Contains($"** WasmBuildNative: '{buildValue.ToString().ToLower()}', WasmBuildingForNestedPublish: ''", output);
66+
// for build
67+
Assert.DoesNotContain($"** WasmBuildNative: '{buildValue.ToString().ToLower()}', WasmBuildingForNestedPublish: ''", output);
68+
// for publish
6569
Assert.Contains($"** WasmBuildNative: '{publishValue.ToString().ToLower()}', WasmBuildingForNestedPublish: 'true'", output);
6670
Assert.Contains("Stopping the build", output);
6771
}

0 commit comments

Comments
 (0)