* [wasm] Print browser console messages to the test output to catch blazor issues
* WBT: Remove unused AppRefDir arguments
* Re-enable the tests without the blazor-run parts
* fix build
[Theory]
[InlineData("Debug")]
[InlineData("Release")]
- [ActiveIssue("https://github.com/dotnet/runtime/issues/79514")]
- public async Task WithDllImportInMainAssembly(string config)
+ public void WithDllImportInMainAssembly(string config)
{
// Based on https://github.com/dotnet/runtime/issues/59255
string id = $"blz_dllimp_{config}";
BlazorPublish(new BlazorBuildOptions(id, config, NativeFilesType.Relinked));
CheckNativeFileLinked(forPublish: true);
- await BlazorRun(config, async (page) => {
- await page.Locator("text=\"cpp_add\"").ClickAsync();
- var txt = await page.Locator("p[role='test']").InnerHTMLAsync();
- Assert.Equal("Output: 22", txt);
- });
+ // [ActiveIssue("https://github.com/dotnet/runtime/issues/79514")]
+ //await BlazorRun(config, async (page) => {
+ //await page.Locator("text=\"cpp_add\"").ClickAsync();
+ //var txt = await page.Locator("p[role='test']").InnerHTMLAsync();
+ //Assert.Equal("Output: 22", txt);
+ //});
void CheckNativeFileLinked(bool forPublish)
{
public BrowserRunner(ITestOutputHelper testOutput) => _testOutput = testOutput;
// FIXME: options
- public async Task<IPage> RunAsync(ToolCommand cmd, string args, bool headless = true)
+ public async Task<IPage> RunAsync(ToolCommand cmd, string args, bool headless = true, Action<IConsoleMessage>? onConsoleMessage = null)
{
TaskCompletionSource<string> urlAvailable = new();
Action<string?> outputHandler = msg =>
});
IPage page = await Browser.NewPageAsync();
+ if (onConsoleMessage is not null)
+ page.Console += (_, msg) => onConsoleMessage(msg);
await page.GotoAsync(urlAvailable.Task.Result);
RunTask = runTask;
return page;
s_runtimePackVersions[$"net{verStr}.0"] = versionValue;
}
+ DefaultBuildArgs = string.Empty;
WorkloadPacksDir = Path.Combine(sdkForWorkloadPath, "packs");
EnvVars = new Dictionary<string, string>();
bool workloadInstalled = EnvironmentVariables.SdkHasWorkloadInstalled != null && EnvironmentVariables.SdkHasWorkloadInstalled == "true";
{
DirectoryBuildPropsContents = s_directoryBuildPropsForWorkloads;
DirectoryBuildTargetsContents = s_directoryBuildTargetsForWorkloads;
-
- var appRefDir = EnvironmentVariables.AppRefDir;
- if (string.IsNullOrEmpty(appRefDir))
- throw new Exception($"Cannot test with workloads without AppRefDir environment variable being set");
-
- DefaultBuildArgs = $" /p:AppRefDir={appRefDir}";
IsWorkload = true;
}
else
{
- var appRefDir = EnvironmentVariables.AppRefDir;
- if (string.IsNullOrEmpty(appRefDir))
- throw new Exception($"Cannot test with workloads without AppRefDir environment variable being set");
-
- DefaultBuildArgs = $" /p:AppRefDir={appRefDir}";
DirectoryBuildPropsContents = s_directoryBuildPropsForLocal;
DirectoryBuildTargetsContents = s_directoryBuildTargetsForLocal;
}
.WithWorkingDirectory(_projectDir!);
await using var runner = new BrowserRunner(_testOutput);
- var page = await runner.RunAsync(runCommand, $"run -c {config} {extraArgs}");
+ var page = await runner.RunAsync(runCommand, $"run -c {config} {extraArgs}", onConsoleMessage: OnConsoleMessage);
await page.Locator("text=Counter").ClickAsync();
var txt = await page.Locator("p[role='status']").InnerHTMLAsync();
if (test is not null)
await test(page);
+
+ void OnConsoleMessage(IConsoleMessage msg)
+ {
+ if (EnvironmentVariables.ShowBuildOutput)
+ Console.WriteLine($"[{msg.Type}] {msg.Text}");
+ _testOutput.WriteLine($"[{msg.Type}] {msg.Text}");
+ }
}
public static (int exitCode, string buildOutput) RunProcess(string path,
internal static readonly string? SdkForWorkloadTestingPath = Environment.GetEnvironmentVariable("SDK_FOR_WORKLOAD_TESTING_PATH");
internal static readonly string? SdkHasWorkloadInstalled = Environment.GetEnvironmentVariable("SDK_HAS_WORKLOAD_INSTALLED");
internal static readonly string? WorkloadPacksVersion = Environment.GetEnvironmentVariable("WORKLOAD_PACKS_VER");
- internal static readonly string? AppRefDir = Environment.GetEnvironmentVariable("AppRefDir");
internal static readonly string? TestLogPath = Environment.GetEnvironmentVariable("TEST_LOG_PATH");
internal static readonly string? SkipProjectCleanup = Environment.GetEnvironmentVariable("SKIP_PROJECT_CLEANUP");
internal static readonly string? XHarnessCliPath = Environment.GetEnvironmentVariable("XHARNESS_CLI_PATH");
set "PATH=%_SDK_DIR%;%PATH%"
set "SDK_FOR_WORKLOAD_TESTING_PATH=%_SDK_DIR%"
-set "AppRefDir=%BASE_DIR%\microsoft.netcore.app.ref"
EXIT /b 0
export PATH=$_SDK_DIR:$PATH
export SDK_FOR_WORKLOAD_TESTING_PATH=$_SDK_DIR
- export AppRefDir=$BASE_DIR/microsoft.netcore.app.ref
}
export TEST_LOG_PATH=${XHARNESS_OUT}/logs