Skip to content

Commit

Permalink
Detect runtime assertions in blazor runs
Browse files Browse the repository at this point in the history
  • Loading branch information
radical committed Mar 1, 2023
1 parent 8950797 commit e5c4c0d
Showing 1 changed file with 12 additions and 2 deletions.
14 changes: 12 additions & 2 deletions src/mono/wasm/Wasm.Build.Tests/BuildTestBase.cs
Original file line number Diff line number Diff line change
Expand Up @@ -932,16 +932,20 @@ public void BlazorAddRazorButton(string buttonText, string customCode, string me
File.WriteAllText(counterRazorPath, oldContent + additionalCode);
}

// Keeping these methods with explicit Build/Publish in the name
// so in the test code it is evident which is being run!
public Task BlazorRunForBuildWithDotnetRun(string config, Func<IPage, Task>? test=null, string extraArgs="--no-build")
=> BlazorRunTest($"run -c {config} {extraArgs}", _projectDir!, test);


public Task BlazorRunForPublishWithWebServer(string config, Func<IPage, Task>? test=null, string extraArgs="")
=> BlazorRunTest($"{s_xharnessRunnerCommand} wasm webserver --app=. --web-server-use-default-files {extraArgs}",
Path.GetFullPath(Path.Combine(FindBlazorBinFrameworkDir(config, forPublish: true), "..")),
test);

public async Task BlazorRunTest(string runArgs, string workingDirectory, Func<IPage, Task>? test=null)
public async Task BlazorRunTest(string runArgs,
string workingDirectory,
Func<IPage, Task>? test = null,
bool detectRuntimeFailures = true)
{
using var runCommand = new RunCommand(s_buildEnv, _testOutput)
.WithWorkingDirectory(workingDirectory);
Expand All @@ -965,6 +969,12 @@ void OnConsoleMessage(IConsoleMessage msg)
if (EnvironmentVariables.ShowBuildOutput)
Console.WriteLine($"[{msg.Type}] {msg.Text}");
_testOutput.WriteLine($"[{msg.Type}] {msg.Text}");

if (detectRuntimeFailures)
{
if (msg.Text.Contains("[MONO] * Assertion") || msg.Text.Contains("Error: [MONO] "))
throw new XunitException($"Detected a runtime failure at line: {msg.Text}");
}
}
}

Expand Down

0 comments on commit e5c4c0d

Please sign in to comment.