diff --git a/src/mono/browser/build/WasmApp.InTree.props b/src/mono/browser/build/WasmApp.InTree.props index 2fef6aa17d9993..efc1866d4eaf26 100644 --- a/src/mono/browser/build/WasmApp.InTree.props +++ b/src/mono/browser/build/WasmApp.InTree.props @@ -1,8 +1,6 @@ - true - $(MSBuildThisFileDirectory) $([MSBuild]::NormalizeDirectory($(MonoProjectRoot), 'wasm', 'build')) @@ -11,7 +9,7 @@ <_WebAssemblySdkToolsDirectory Condition="'$(_WebAssemblySdkToolsDirectory)' == ''">$(ArtifactsBinDir)\Microsoft.NET.Sdk.WebAssembly.Pack.Tasks\$(RuntimeConfiguration)\ - + diff --git a/src/mono/browser/build/WasmApp.InTree.targets b/src/mono/browser/build/WasmApp.InTree.targets index fd7704093652c9..a58fe3fb2abf7d 100644 --- a/src/mono/browser/build/WasmApp.InTree.targets +++ b/src/mono/browser/build/WasmApp.InTree.targets @@ -3,7 +3,7 @@ - + diff --git a/src/mono/wasm/Wasm.Build.Tests/BuildTestBase.cs b/src/mono/wasm/Wasm.Build.Tests/BuildTestBase.cs index 64b7c72447a5fb..f797a826c5a8c9 100644 --- a/src/mono/wasm/Wasm.Build.Tests/BuildTestBase.cs +++ b/src/mono/wasm/Wasm.Build.Tests/BuildTestBase.cs @@ -244,17 +244,20 @@ protected void InitProjectDir(string dir, bool addNuGetSourceForLocalPackages = if (UseWBTOverridePackTargets) File.Copy(BuildEnvironment.WasmOverridePacksTargetsPath, Path.Combine(dir, Path.GetFileName(BuildEnvironment.WasmOverridePacksTargetsPath)), overwrite: true); - string targetNuGetConfigPath = Path.Combine(dir, "nuget.config"); - if (addNuGetSourceForLocalPackages) + if (!EnvironmentVariables.UseInTree) { - File.WriteAllText(targetNuGetConfigPath, - GetNuGetConfigWithLocalPackagesPath( - GetNuGetConfigPath(), - s_buildEnv.BuiltNuGetsPath)); - } - else - { - File.Copy(GetNuGetConfigPath(), targetNuGetConfigPath); + string targetNuGetConfigPath = Path.Combine(dir, "nuget.config"); + if (addNuGetSourceForLocalPackages) + { + File.WriteAllText(targetNuGetConfigPath, + GetNuGetConfigWithLocalPackagesPath( + GetNuGetConfigPath(), + s_buildEnv.BuiltNuGetsPath)); + } + else + { + File.Copy(GetNuGetConfigPath(), targetNuGetConfigPath); + } } } diff --git a/src/mono/wasm/Wasm.Build.Tests/Common/EnvironmentVariables.cs b/src/mono/wasm/Wasm.Build.Tests/Common/EnvironmentVariables.cs index c1a932aed44b92..bd4df86b8af788 100644 --- a/src/mono/wasm/Wasm.Build.Tests/Common/EnvironmentVariables.cs +++ b/src/mono/wasm/Wasm.Build.Tests/Common/EnvironmentVariables.cs @@ -27,5 +27,6 @@ internal static class EnvironmentVariables internal static readonly string? SdkDirName = Environment.GetEnvironmentVariable("SDK_DIR_NAME"); internal static readonly string? WasiSdkPath = Environment.GetEnvironmentVariable("WASI_SDK_PATH"); internal static readonly bool WorkloadsTestPreviousVersions = Environment.GetEnvironmentVariable("WORKLOADS_TEST_PREVIOUS_VERSIONS") is "true"; + internal static readonly bool UseInTree = Environment.GetEnvironmentVariable("TEST_USING_IN_TREE") == "true"; } } diff --git a/src/mono/wasm/Wasm.Build.Tests/Templates/WasmTemplateTestsBase.cs b/src/mono/wasm/Wasm.Build.Tests/Templates/WasmTemplateTestsBase.cs index 31b38d420d405a..631e590519d035 100644 --- a/src/mono/wasm/Wasm.Build.Tests/Templates/WasmTemplateTestsBase.cs +++ b/src/mono/wasm/Wasm.Build.Tests/Templates/WasmTemplateTestsBase.cs @@ -124,10 +124,29 @@ protected ProjectInfo CopyTestAsset( """; } + if (EnvironmentVariables.UseInTree) + { + s_buildEnv.EnvVars["WBTImportInTree"] = "true"; + } + UpdateProjectFile(projectFilePath, runAnalyzers, extraProperties, extraItems, insertAtEnd); return new ProjectInfo(asset.Name, projectFilePath, logPath, nugetDir); } + protected void CopyTestOutputToProject(TestAsset targetAsset) + { + TestAsset sourceAsset = TestAsset.WasmBasicTestApp; + var testOutputFilePath = Path.Combine(BuildEnvironment.TestAssetsPath, sourceAsset.Name, sourceAsset.RunnableProjectSubPath, "Common", "TestOutput.cs"); + + var destinationFilePath = _projectDir; + if (!string.IsNullOrEmpty(targetAsset.RunnableProjectSubPath)) + destinationFilePath = Path.Combine(destinationFilePath, targetAsset.RunnableProjectSubPath); + + destinationFilePath = Path.Combine(destinationFilePath, "TestOutput.cs"); + + File.Copy(testOutputFilePath, destinationFilePath, overwrite: true); + } + private void UpdateProjectFile(string projectFilePath, bool runAnalyzers, string extraProperties, string extraItems, string insertAtEnd) { extraProperties += "true"; @@ -328,7 +347,7 @@ await BrowserRunTest($"run -c {runOptions.Configuration} --no-build", _projectDi RunHost.WebServer => await BrowserRunTest($"{s_xharnessRunnerCommand} wasm webserver --app=. --web-server-use-default-files", string.IsNullOrEmpty(runOptions.CustomBundleDir) ? - Path.GetFullPath(Path.Combine(GetBinFrameworkDir(runOptions.Configuration, forPublish: true), "..")) : + Path.GetFullPath(Path.Combine(GetBinFrameworkDir(runOptions.Configuration, forPublish: true, _provider.DefaultTargetFramework), "..")) : runOptions.CustomBundleDir, runOptions), diff --git a/src/mono/wasm/Wasm.Build.Tests/Wasm.Build.Tests.csproj b/src/mono/wasm/Wasm.Build.Tests/Wasm.Build.Tests.csproj index 812ad3661831bd..62d0f741fa883b 100644 --- a/src/mono/wasm/Wasm.Build.Tests/Wasm.Build.Tests.csproj +++ b/src/mono/wasm/Wasm.Build.Tests/Wasm.Build.Tests.csproj @@ -11,7 +11,7 @@ false - true + true false true @@ -109,6 +109,9 @@ + + + @@ -136,6 +139,10 @@ + + + + diff --git a/src/mono/wasm/Wasm.Build.Tests/data/Local.Directory.Build.props b/src/mono/wasm/Wasm.Build.Tests/data/Local.Directory.Build.props index 058246e4086204..13f2109ec22c93 100644 --- a/src/mono/wasm/Wasm.Build.Tests/data/Local.Directory.Build.props +++ b/src/mono/wasm/Wasm.Build.Tests/data/Local.Directory.Build.props @@ -1 +1,11 @@ - + + + + + + bin\$(Configuration) + + + + + diff --git a/src/mono/wasm/Wasm.Build.Tests/data/Local.Directory.Build.targets b/src/mono/wasm/Wasm.Build.Tests/data/Local.Directory.Build.targets index 6f9b3ab9ef9994..d79513000d79da 100644 --- a/src/mono/wasm/Wasm.Build.Tests/data/Local.Directory.Build.targets +++ b/src/mono/wasm/Wasm.Build.Tests/data/Local.Directory.Build.targets @@ -1,5 +1,12 @@ + + + + + + + diff --git a/src/mono/wasm/Wasm.Build.Tests/data/RunScriptTemplate.cmd b/src/mono/wasm/Wasm.Build.Tests/data/RunScriptTemplate.cmd index 608b2c6c1ea37e..751baf04e32142 100644 --- a/src/mono/wasm/Wasm.Build.Tests/data/RunScriptTemplate.cmd +++ b/src/mono/wasm/Wasm.Build.Tests/data/RunScriptTemplate.cmd @@ -67,12 +67,14 @@ if [%WASM_BUNDLER_FRIENDLY_BOOT_CONFIG%] == [true] ( set USE_JAVASCRIPT_BUNDLER_FOR_TESTS=false ) -if [%HELIX_CORRELATION_PAYLOAD%] NEQ [] ( - robocopy /mt /np /nfl /NDL /nc /e %BASE_DIR%\%SDK_DIR_NAME% %EXECUTION_DIR%\%SDK_DIR_NAME% - set _SDK_DIR=%EXECUTION_DIR%\%SDK_DIR_NAME% -) else ( - set _SDK_DIR=%BASE_DIR%\%SDK_DIR_NAME% -) +if [%SDK_FOR_WORKLOAD_TESTING_PATH%] == [] ( + if [%HELIX_CORRELATION_PAYLOAD%] NEQ [] ( + robocopy /mt /np /nfl /NDL /nc /e %BASE_DIR%\%SDK_DIR_NAME% %EXECUTION_DIR%\%SDK_DIR_NAME% + set _SDK_DIR=%EXECUTION_DIR%\%SDK_DIR_NAME% + ) else ( + set _SDK_DIR=%BASE_DIR%\%SDK_DIR_NAME% + ) -set "SDK_FOR_WORKLOAD_TESTING_PATH=%_SDK_DIR%" + set "SDK_FOR_WORKLOAD_TESTING_PATH=%_SDK_DIR%" +) EXIT /b 0 diff --git a/src/mono/wasm/Wasm.Build.Tests/data/RunScriptTemplate.sh b/src/mono/wasm/Wasm.Build.Tests/data/RunScriptTemplate.sh index cee1769b006639..11c7dfe1a81fe9 100644 --- a/src/mono/wasm/Wasm.Build.Tests/data/RunScriptTemplate.sh +++ b/src/mono/wasm/Wasm.Build.Tests/data/RunScriptTemplate.sh @@ -51,15 +51,17 @@ function set_env_vars() export USE_JAVASCRIPT_BUNDLER_FOR_TESTS=false fi - local _SDK_DIR= - if [[ -n "$HELIX_WORKITEM_UPLOAD_ROOT" ]]; then - cp -r $BASE_DIR/$SDK_DIR_NAME $EXECUTION_DIR - _SDK_DIR=$EXECUTION_DIR/$SDK_DIR_NAME - else - _SDK_DIR=$BASE_DIR/$SDK_DIR_NAME + if [ "x$SDK_FOR_WORKLOAD_TESTING_PATH" = "x" ]; then + local _SDK_DIR= + if [[ -n "$HELIX_WORKITEM_UPLOAD_ROOT" ]]; then + cp -r $BASE_DIR/$SDK_DIR_NAME $EXECUTION_DIR + _SDK_DIR=$EXECUTION_DIR/$SDK_DIR_NAME + else + _SDK_DIR=$BASE_DIR/$SDK_DIR_NAME + fi + + export SDK_FOR_WORKLOAD_TESTING_PATH=$_SDK_DIR fi - - export SDK_FOR_WORKLOAD_TESTING_PATH=$_SDK_DIR } export TEST_LOG_PATH=${XHARNESS_OUT}/logs