Skip to content

Commit

Permalink
[browser] Trim globalization code (#93473)
Browse files Browse the repository at this point in the history
* Correct trimming errors.

* Feedback

* Fix WBT

* Allow trimming Settings class on Unix.

* Feature switches setting matter, not properties. Improve the approach to WBT fix.

* Users set properties, not features, so this is what we should test.

* Revert.

* `DebuggerSupport` is false by default

* `EventSourceSupport` is trimmed when not enabled.

* Fix `WasmTestOnBrowser` scenario lib tests.

* Fixing another batch of lib failures.

* Fix `System.Runtime` tests + partial feedback.

* @radical's feedback

* Moving common properties to manifest.
  • Loading branch information
ilonatommy committed Oct 26, 2023
1 parent 2f6f3c5 commit 1556b12
Show file tree
Hide file tree
Showing 8 changed files with 39 additions and 27 deletions.
3 changes: 3 additions & 0 deletions eng/testing/tests.browser.targets
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,9 @@
<GetNuGetsToBuildForWorkloadTestingDependsOn>_GetRuntimePackNuGetsToBuild;_GetNugetsForAOT;$(GetNuGetsToBuildForWorkloadTestingDependsOn)</GetNuGetsToBuildForWorkloadTestingDependsOn>
<_BundleAOTTestWasmAppForHelixDependsOn>$(_BundleAOTTestWasmAppForHelixDependsOn);PrepareForWasmBuildApp;_PrepareForAOTOnHelix</_BundleAOTTestWasmAppForHelixDependsOn>
<WasmEnableLegacyJsInterop Condition="'$(WasmEnableLegacyJsInterop)' == ''">true</WasmEnableLegacyJsInterop>
<UseSystemResourceKeys Condition="'$(UseSystemResourceKeys)' == ''">false</UseSystemResourceKeys>
<EventSourceSupport Condition="'$(EventSourceSupport)' == ''">true</EventSourceSupport>
<NullabilityInfoContextSupport Condition="'$(NullabilityInfoContextSupport)' == ''">true</NullabilityInfoContextSupport>
</PropertyGroup>

<!-- We expect WASM users to indicate they would like to have bigger download size by adding WasmIncludeFullIcuData, -->
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@
<Import Project="$([MSBuild]::GetPathOfFileAbove(Directory.Build.props))" />

<ItemGroup>
<TestConsoleAppSourceFiles Include="EventSourcePropertyValueTest.cs" />
<TestConsoleAppSourceFiles Include="EventSourceManifestTest.cs" />
<TestConsoleAppSourceFiles Include="EventSourcePropertyValueTest.cs" EnabledProperties="EventSourceSupport" />
<TestConsoleAppSourceFiles Include="EventSourceManifestTest.cs" EnabledProperties="EventSourceSupport" />
</ItemGroup>

<Import Project="$([MSBuild]::GetPathOfFileAbove(Directory.Build.targets))" />
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,10 @@
<linker>
<assembly fullname="System.Private.CoreLib">
<type fullname="System.Globalization.GlobalizationMode">
<method signature="System.Boolean get_Hybrid()" body="stub" value="true" feature="System.Globalization.Hybrid" featurevalue="false" />
<method signature="System.Boolean get_Hybrid()" body="stub" value="false" feature="System.Globalization.Hybrid" featurevalue="false" />
</type>
<type fullname="System.Globalization.GlobalizationMode">
<method signature="System.Boolean get_Hybrid()" body="stub" value="true" feature="System.Globalization.Hybrid" featurevalue="true" />
</type>
</assembly>
</linker>
Original file line number Diff line number Diff line change
Expand Up @@ -6,22 +6,26 @@
<TestConsoleAppSourceFiles Include="AppDomainGetThreadWindowsPrincipalTest.cs">
<SkipOnTestRuntimes>osx-x64;linux-x64;browser-wasm</SkipOnTestRuntimes>
</TestConsoleAppSourceFiles>
<TestConsoleAppSourceFiles Include="DebuggerTypeProxyAttributeTests.cs" />
<TestConsoleAppSourceFiles Include="DebuggerVisualizerAttributeTests.cs" />
<TestConsoleAppSourceFiles Include="DebuggerTypeProxyAttributeTests.cs" >
<EnabledProperties>DebuggerSupport</EnabledProperties>
</TestConsoleAppSourceFiles>
<TestConsoleAppSourceFiles Include="DebuggerVisualizerAttributeTests.cs" >
<EnabledProperties>DebuggerSupport</EnabledProperties>
</TestConsoleAppSourceFiles>
<TestConsoleAppSourceFiles Include="DefaultValueAttributeCtorTest.cs" />
<TestConsoleAppSourceFiles Include="GenericArraySortHelperTest.cs" />
<TestConsoleAppSourceFiles Include="InheritedAttributeTests.cs" />
<TestConsoleAppSourceFiles Include="InterfacesOnArrays.cs" />
<TestConsoleAppSourceFiles Include="InvariantGlobalizationFalse.cs">
<DisabledFeatureSwitches>System.Globalization.Invariant</DisabledFeatureSwitches>
<EnabledFeatureSwitches>System.Globalization.Hybrid</EnabledFeatureSwitches>
<DisabledProperties>InvariantGlobalization</DisabledProperties>
<EnabledProperties>HybridGlobalization</EnabledProperties>
</TestConsoleAppSourceFiles>
<TestConsoleAppSourceFiles Include="InvariantGlobalizationFalse.cs">
<DisabledFeatureSwitches>System.Globalization.Invariant</DisabledFeatureSwitches>
<DisabledProperties>InvariantGlobalization</DisabledProperties>
</TestConsoleAppSourceFiles>
<TestConsoleAppSourceFiles Include="InvariantGlobalizationTrue.cs">
<DisabledFeatureSwitches>System.Globalization.Hybrid</DisabledFeatureSwitches>
<EnabledFeatureSwitches>System.Globalization.Invariant;System.Globalization.PredefinedCulturesOnly</EnabledFeatureSwitches>
<DisabledProperties>HybridGlobalization</DisabledProperties>
<EnabledProperties>InvariantGlobalization;PredefinedCulturesOnly</EnabledProperties>
</TestConsoleAppSourceFiles>
<TestConsoleAppSourceFiles Include="StackFrameHelperTest.cs">
<!-- There is a bug with the linker where it is corrupting the pdbs while trimming
Expand All @@ -39,16 +43,16 @@
<TestConsoleAppSourceFiles Include="VerifyResourcesGetTrimmedTest.cs">
<!-- Setting the Trimming feature switch to make sure that the Resources get trimmed by the trimmer
as this test will ensure exceptions are using Resource keys -->
<EnabledFeatureSwitches>System.Resources.UseSystemResourceKeys</EnabledFeatureSwitches>
<EnabledProperties>UseSystemResourceKeys</EnabledProperties>
</TestConsoleAppSourceFiles>
<TestConsoleAppSourceFiles Include="TypeBuilderComDisabled.cs">
<DisabledFeatureSwitches>System.Runtime.InteropServices.BuiltInComInterop.IsSupported</DisabledFeatureSwitches>
<DisabledProperties>BuiltInComInteropSupport</DisabledProperties>
</TestConsoleAppSourceFiles>
<TestConsoleAppSourceFiles Include="NullabilityInfoContextSupportFalse.cs">
<DisabledFeatureSwitches>System.Reflection.NullabilityInfoContext.IsSupported</DisabledFeatureSwitches>
<DisabledProperties>NullabilityInfoContextSupport</DisabledProperties>
</TestConsoleAppSourceFiles>
<TestConsoleAppSourceFiles Include="NullabilityInfoContextSupportTrue.cs">
<EnabledFeatureSwitches>System.Reflection.NullabilityInfoContext.IsSupported</EnabledFeatureSwitches>
<EnabledProperties>NullabilityInfoContextSupport</EnabledProperties>
</TestConsoleAppSourceFiles>
</ItemGroup>
<ItemGroup Condition="'$(TargetsWindows)' == 'true'">
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -63,16 +63,7 @@ Copyright (c) .NET Foundation. All rights reserved.
<CopyLocalLockFileAssemblies>true</CopyLocalLockFileAssemblies>

<!-- Runtime feature defaults to trim unnecessary code -->
<InvariantGlobalization Condition="'$(InvariantGlobalization)' == ''">false</InvariantGlobalization>
<InvariantTimezone Condition="'$(BlazorEnableTimeZoneSupport)' == 'false'">true</InvariantTimezone>
<InvariantTimezone Condition="'$(InvariantTimezone)' == ''">false</InvariantTimezone>
<EventSourceSupport Condition="'$(EventSourceSupport)' == ''">false</EventSourceSupport>
<UseSystemResourceKeys Condition="'$(UseSystemResourceKeys)' == ''">true</UseSystemResourceKeys>
<EnableUnsafeUTF7Encoding Condition="'$(EnableUnsafeUTF7Encoding)' == ''">false</EnableUnsafeUTF7Encoding>
<HttpActivityPropagationSupport Condition="'$(HttpActivityPropagationSupport)' == ''">false</HttpActivityPropagationSupport>
<NullabilityInfoContextSupport Condition="'$(NullabilityInfoContextSupport)' == ''">false</NullabilityInfoContextSupport>
<_AggressiveAttributeTrimming Condition="'$(_AggressiveAttributeTrimming)' == ''">true</_AggressiveAttributeTrimming>
<DebuggerSupport Condition="'$(DebuggerSupport)' == '' and '$(Configuration)' != 'Debug'">false</DebuggerSupport>
<BlazorCacheBootResources Condition="'$(BlazorCacheBootResources)' == ''">true</BlazorCacheBootResources>
<WasmFingerprintDotnetJs Condition="'$(WasmFingerprintDotnetJs)' == ''">false</WasmFingerprintDotnetJs>

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,18 @@
<WasmNativeWorkloadAvailable Condition="'$(TargetsNet6)' == 'true'">$(WasmNativeWorkload)</WasmNativeWorkloadAvailable>
<WasmNativeWorkloadAvailable Condition="'$(WasmNativeWorkloadAvailable)' == '' or '$(WasmNativeWorkload)' == 'false'">false</WasmNativeWorkloadAvailable>
<WasmNativeWorkload>$(WasmNativeWorkloadAvailable)</WasmNativeWorkload>

<!-- Runtime feature defaults to trim unnecessary code -->
<InvariantTimezone Condition="'$(InvariantTimezone)' == ''">false</InvariantTimezone>
<HybridGlobalization Condition="'$(HybridGlobalization)' == ''">false</HybridGlobalization>
<InvariantGlobalization Condition="'$(InvariantGlobalization)' == ''">false</InvariantGlobalization>
<EventSourceSupport Condition="'$(EventSourceSupport)' == ''">false</EventSourceSupport>
<UseSystemResourceKeys Condition="'$(UseSystemResourceKeys)' == ''">true</UseSystemResourceKeys>
<EnableUnsafeUTF7Encoding Condition="'$(EnableUnsafeUTF7Encoding)' == ''">false</EnableUnsafeUTF7Encoding>
<HttpActivityPropagationSupport Condition="'$(HttpActivityPropagationSupport)' == ''">false</HttpActivityPropagationSupport>
<NullabilityInfoContextSupport Condition="'$(NullabilityInfoContextSupport)' == ''">false</NullabilityInfoContextSupport>
<_AggressiveAttributeTrimming Condition="'$(_AggressiveAttributeTrimming)' == ''">true</_AggressiveAttributeTrimming>
<DebuggerSupport Condition="'$(DebuggerSupport)' == '' and '$(Configuration)' != 'Debug'">false</DebuggerSupport>
</PropertyGroup>

<PropertyGroup Condition="'$(RuntimeIdentifier)' == 'browser-wasm' and '$(TargetFrameworkIdentifier)' == '.NETCoreApp'">
Expand Down
6 changes: 3 additions & 3 deletions src/mono/wasm/Wasm.Build.Tests/IcuTestsBase.cs
Original file line number Diff line number Diff line change
Expand Up @@ -108,9 +108,9 @@ protected void TestIcuShards(BuildArgs buildArgs, string shardName, string teste
bool dotnetWasmFromRuntimePack = !(buildArgs.AOT || buildArgs.Config == "Release");

buildArgs = buildArgs with { ProjectName = projectName };
string extraProperties = onlyPredefinedCultures ?
$"<WasmIcuDataFileName>{shardName}</WasmIcuDataFileName><PredefinedCulturesOnly>true</PredefinedCulturesOnly>" :
$"<WasmIcuDataFileName>{shardName}</WasmIcuDataFileName>";
string extraProperties = $"<WasmIcuDataFileName>{shardName}</WasmIcuDataFileName><UseSystemResourceKeys>false</UseSystemResourceKeys>";
if (onlyPredefinedCultures)
extraProperties = $"{extraProperties}<PredefinedCulturesOnly>true</PredefinedCulturesOnly>";
buildArgs = ExpandBuildArgs(buildArgs, extraProperties: extraProperties);

string programText = GetProgramText(testedLocales, onlyPredefinedCultures);
Expand Down
1 change: 0 additions & 1 deletion src/mono/wasm/build/WasmApp.targets
Original file line number Diff line number Diff line change
Expand Up @@ -154,7 +154,6 @@
<WasmStripILAfterAOT Condition="'$(WasmStripILAfterAOT)' == ''">false</WasmStripILAfterAOT>

<WasmRuntimeAssetsLocation Condition="'$(WasmRuntimeAssetsLocation)' == ''">_framework</WasmRuntimeAssetsLocation>
<BlazorCacheBootResources Condition="'$(BlazorCacheBootResources)' == ''">true</BlazorCacheBootResources>
</PropertyGroup>

<ItemGroup>
Expand Down

0 comments on commit 1556b12

Please sign in to comment.