diff --git a/src/mono/wasm/Wasm.Build.Tests/TestAppScenarios/AppTestBase.cs b/src/mono/wasm/Wasm.Build.Tests/TestAppScenarios/AppTestBase.cs index 444d70228b08fa..dc6fb9b490e7f3 100644 --- a/src/mono/wasm/Wasm.Build.Tests/TestAppScenarios/AppTestBase.cs +++ b/src/mono/wasm/Wasm.Build.Tests/TestAppScenarios/AppTestBase.cs @@ -30,6 +30,10 @@ protected void CopyTestAsset(string assetName, string generatedProjectNamePrefix LogPath = Path.Combine(s_buildEnv.LogRootPath, Id); Utils.DirectoryCopy(Path.Combine(BuildEnvironment.TestAssetsPath, assetName), Path.Combine(_projectDir!)); + + // WasmBasicTestApp consists of App + Library projects + if (assetName == "WasmBasicTestApp") + _projectDir = Path.Combine(_projectDir!, "App"); } protected void BuildProject(string configuration) diff --git a/src/mono/wasm/Wasm.Build.Tests/TestAppScenarios/LazyLoadingTests.cs b/src/mono/wasm/Wasm.Build.Tests/TestAppScenarios/LazyLoadingTests.cs index d2219e9f9e50da..8f37a47e18860a 100644 --- a/src/mono/wasm/Wasm.Build.Tests/TestAppScenarios/LazyLoadingTests.cs +++ b/src/mono/wasm/Wasm.Build.Tests/TestAppScenarios/LazyLoadingTests.cs @@ -42,6 +42,6 @@ public async Task FailOnMissingLazyAssembly() BrowserQueryString: new Dictionary { ["loadRequiredAssembly"] = "false" }, ExpectedExitCode: 1 )); - Assert.True(result.ConsoleOutput.Any(m => m.Contains("Could not load file or assembly") && m.Contains("System.Text.Json")), "The lazy loading test didn't emit expected error message"); + Assert.True(result.ConsoleOutput.Any(m => m.Contains("Could not load file or assembly") && m.Contains("Json")), "The lazy loading test didn't emit expected error message"); } } diff --git a/src/mono/wasm/runtime/lazyLoading.ts b/src/mono/wasm/runtime/lazyLoading.ts index 59c153a9d62365..55bcfd67101e8c 100644 --- a/src/mono/wasm/runtime/lazyLoading.ts +++ b/src/mono/wasm/runtime/lazyLoading.ts @@ -21,7 +21,7 @@ export async function loadLazyAssembly(assemblyNameToLoad: string): Promise f.includes(assemblyNameToLoad))) { + if (loaderHelpers.loadedAssemblies.includes(assemblyNameToLoad)) { return false; } diff --git a/src/mono/wasm/runtime/loader/assets.ts b/src/mono/wasm/runtime/loader/assets.ts index 02e05b1f8a9622..8730988193ffd0 100644 --- a/src/mono/wasm/runtime/loader/assets.ts +++ b/src/mono/wasm/runtime/loader/assets.ts @@ -598,7 +598,7 @@ function download_resource(asset: AssetEntryInternal): LoadingResource { totalResources.add(asset.name!); response.response.then(() => { if (asset.behavior == "assembly") { - loaderHelpers.loadedAssemblies.push(asset.resolvedUrl!); + loaderHelpers.loadedAssemblies.push(asset.name); } resourcesLoaded++; diff --git a/src/mono/wasm/testassets/WasmBasicTestApp/AppSettingsTest.cs b/src/mono/wasm/testassets/WasmBasicTestApp/App/AppSettingsTest.cs similarity index 100% rename from src/mono/wasm/testassets/WasmBasicTestApp/AppSettingsTest.cs rename to src/mono/wasm/testassets/WasmBasicTestApp/App/AppSettingsTest.cs diff --git a/src/mono/wasm/testassets/WasmBasicTestApp/Common/Program.cs b/src/mono/wasm/testassets/WasmBasicTestApp/App/Common/Program.cs similarity index 100% rename from src/mono/wasm/testassets/WasmBasicTestApp/Common/Program.cs rename to src/mono/wasm/testassets/WasmBasicTestApp/App/Common/Program.cs diff --git a/src/mono/wasm/testassets/WasmBasicTestApp/Common/TestOutput.cs b/src/mono/wasm/testassets/WasmBasicTestApp/App/Common/TestOutput.cs similarity index 100% rename from src/mono/wasm/testassets/WasmBasicTestApp/Common/TestOutput.cs rename to src/mono/wasm/testassets/WasmBasicTestApp/App/Common/TestOutput.cs diff --git a/src/mono/wasm/testassets/WasmBasicTestApp/LazyLoadingTest.cs b/src/mono/wasm/testassets/WasmBasicTestApp/App/LazyLoadingTest.cs similarity index 91% rename from src/mono/wasm/testassets/WasmBasicTestApp/LazyLoadingTest.cs rename to src/mono/wasm/testassets/WasmBasicTestApp/App/LazyLoadingTest.cs index 0d68b1216816c3..5aba6b1ee48a0f 100644 --- a/src/mono/wasm/testassets/WasmBasicTestApp/LazyLoadingTest.cs +++ b/src/mono/wasm/testassets/WasmBasicTestApp/App/LazyLoadingTest.cs @@ -1,6 +1,7 @@ // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. +using Library; using System; using System.Text.Json; using System.Runtime.InteropServices.JavaScript; @@ -15,6 +16,4 @@ public static void Run() var text = JsonSerializer.Serialize(new Person("John", "Doe")); TestOutput.WriteLine(text); } - - public record Person(string FirstName, string LastName); } diff --git a/src/mono/wasm/testassets/WasmBasicTestApp/LibraryInitializerTest.cs b/src/mono/wasm/testassets/WasmBasicTestApp/App/LibraryInitializerTest.cs similarity index 100% rename from src/mono/wasm/testassets/WasmBasicTestApp/LibraryInitializerTest.cs rename to src/mono/wasm/testassets/WasmBasicTestApp/App/LibraryInitializerTest.cs diff --git a/src/mono/wasm/testassets/WasmBasicTestApp/Properties/AssemblyInfo.cs b/src/mono/wasm/testassets/WasmBasicTestApp/App/Properties/AssemblyInfo.cs similarity index 100% rename from src/mono/wasm/testassets/WasmBasicTestApp/Properties/AssemblyInfo.cs rename to src/mono/wasm/testassets/WasmBasicTestApp/App/Properties/AssemblyInfo.cs diff --git a/src/mono/wasm/testassets/WasmBasicTestApp/SatelliteAssembliesTest.cs b/src/mono/wasm/testassets/WasmBasicTestApp/App/SatelliteAssembliesTest.cs similarity index 100% rename from src/mono/wasm/testassets/WasmBasicTestApp/SatelliteAssembliesTest.cs rename to src/mono/wasm/testassets/WasmBasicTestApp/App/SatelliteAssembliesTest.cs diff --git a/src/mono/wasm/testassets/WasmBasicTestApp/WasmBasicTestApp.csproj b/src/mono/wasm/testassets/WasmBasicTestApp/App/WasmBasicTestApp.csproj similarity index 70% rename from src/mono/wasm/testassets/WasmBasicTestApp/WasmBasicTestApp.csproj rename to src/mono/wasm/testassets/WasmBasicTestApp/App/WasmBasicTestApp.csproj index 761ac6354ce861..a3b9364d4fce80 100644 --- a/src/mono/wasm/testassets/WasmBasicTestApp/WasmBasicTestApp.csproj +++ b/src/mono/wasm/testassets/WasmBasicTestApp/App/WasmBasicTestApp.csproj @@ -8,6 +8,10 @@ - + + + + + diff --git a/src/mono/wasm/testassets/WasmBasicTestApp/runtimeconfig.template.json b/src/mono/wasm/testassets/WasmBasicTestApp/App/runtimeconfig.template.json similarity index 100% rename from src/mono/wasm/testassets/WasmBasicTestApp/runtimeconfig.template.json rename to src/mono/wasm/testassets/WasmBasicTestApp/App/runtimeconfig.template.json diff --git a/src/mono/wasm/testassets/WasmBasicTestApp/words.es-ES.resx b/src/mono/wasm/testassets/WasmBasicTestApp/App/words.es-ES.resx similarity index 100% rename from src/mono/wasm/testassets/WasmBasicTestApp/words.es-ES.resx rename to src/mono/wasm/testassets/WasmBasicTestApp/App/words.es-ES.resx diff --git a/src/mono/wasm/testassets/WasmBasicTestApp/words.resx b/src/mono/wasm/testassets/WasmBasicTestApp/App/words.resx similarity index 100% rename from src/mono/wasm/testassets/WasmBasicTestApp/words.resx rename to src/mono/wasm/testassets/WasmBasicTestApp/App/words.resx diff --git a/src/mono/wasm/testassets/WasmBasicTestApp/wwwroot/WasmBasicTestApp.lib.module.js b/src/mono/wasm/testassets/WasmBasicTestApp/App/wwwroot/WasmBasicTestApp.lib.module.js similarity index 100% rename from src/mono/wasm/testassets/WasmBasicTestApp/wwwroot/WasmBasicTestApp.lib.module.js rename to src/mono/wasm/testassets/WasmBasicTestApp/App/wwwroot/WasmBasicTestApp.lib.module.js diff --git a/src/mono/wasm/testassets/WasmBasicTestApp/wwwroot/appsettings.Development.json b/src/mono/wasm/testassets/WasmBasicTestApp/App/wwwroot/appsettings.Development.json similarity index 100% rename from src/mono/wasm/testassets/WasmBasicTestApp/wwwroot/appsettings.Development.json rename to src/mono/wasm/testassets/WasmBasicTestApp/App/wwwroot/appsettings.Development.json diff --git a/src/mono/wasm/testassets/WasmBasicTestApp/wwwroot/appsettings.Production.json b/src/mono/wasm/testassets/WasmBasicTestApp/App/wwwroot/appsettings.Production.json similarity index 100% rename from src/mono/wasm/testassets/WasmBasicTestApp/wwwroot/appsettings.Production.json rename to src/mono/wasm/testassets/WasmBasicTestApp/App/wwwroot/appsettings.Production.json diff --git a/src/mono/wasm/testassets/WasmBasicTestApp/wwwroot/appsettings.json b/src/mono/wasm/testassets/WasmBasicTestApp/App/wwwroot/appsettings.json similarity index 100% rename from src/mono/wasm/testassets/WasmBasicTestApp/wwwroot/appsettings.json rename to src/mono/wasm/testassets/WasmBasicTestApp/App/wwwroot/appsettings.json diff --git a/src/mono/wasm/testassets/WasmBasicTestApp/wwwroot/index.html b/src/mono/wasm/testassets/WasmBasicTestApp/App/wwwroot/index.html similarity index 100% rename from src/mono/wasm/testassets/WasmBasicTestApp/wwwroot/index.html rename to src/mono/wasm/testassets/WasmBasicTestApp/App/wwwroot/index.html diff --git a/src/mono/wasm/testassets/WasmBasicTestApp/wwwroot/main.js b/src/mono/wasm/testassets/WasmBasicTestApp/App/wwwroot/main.js similarity index 97% rename from src/mono/wasm/testassets/WasmBasicTestApp/wwwroot/main.js rename to src/mono/wasm/testassets/WasmBasicTestApp/App/wwwroot/main.js index 8d537cbdfb4041..076f37a62a6d87 100644 --- a/src/mono/wasm/testassets/WasmBasicTestApp/wwwroot/main.js +++ b/src/mono/wasm/testassets/WasmBasicTestApp/App/wwwroot/main.js @@ -79,7 +79,7 @@ try { break; case "LazyLoadingTest": if (params.get("loadRequiredAssembly") !== "false") { - await INTERNAL.loadLazyAssembly(`System.Text.Json${assemblyExtension}`); + await INTERNAL.loadLazyAssembly(`Json${assemblyExtension}`); } exports.LazyLoadingTest.Run(); exit(0); diff --git a/src/mono/wasm/testassets/WasmBasicTestApp/Library/Json.cs b/src/mono/wasm/testassets/WasmBasicTestApp/Library/Json.cs new file mode 100644 index 00000000000000..cd496b96a3fc9e --- /dev/null +++ b/src/mono/wasm/testassets/WasmBasicTestApp/Library/Json.cs @@ -0,0 +1,11 @@ +using System.Text.Json; +using System.Text.Json.Serialization; + +namespace Library; + +public record Person(string FirstName, string LastName); + +[JsonSerializable(typeof(Person))] +public partial class PersonJsonSerializerContext : JsonSerializerContext +{ +} \ No newline at end of file diff --git a/src/mono/wasm/testassets/WasmBasicTestApp/Library/Json.csproj b/src/mono/wasm/testassets/WasmBasicTestApp/Library/Json.csproj new file mode 100644 index 00000000000000..87c4a405521efe --- /dev/null +++ b/src/mono/wasm/testassets/WasmBasicTestApp/Library/Json.csproj @@ -0,0 +1,8 @@ + + + + net8.0 + Library + true + +