diff options
author | Javier Calvarro Nelson <jacalvar@microsoft.com> | 2019-07-08 19:21:44 +0300 |
---|---|---|
committer | Javier Calvarro Nelson <jacalvar@microsoft.com> | 2019-07-08 19:21:44 +0300 |
commit | e13ed66df2d1dc4fe3fc8d788f2ae953be53faa1 (patch) | |
tree | 92577fcef8e308fde72357ec505e15328b439aa4 | |
parent | e4b378416493a118f8e74e28856b37b8777e0d17 (diff) |
Memory testsjaviercn/reliability-tests
-rw-r--r-- | src/Components/test/E2ETest/ServerExecutionTests/InteropReliabilityTests.cs | 24 | ||||
-rw-r--r-- | src/Components/test/testassets/BasicTestApp/ServerReliability/ReliabilityComponent.razor | 13 |
2 files changed, 35 insertions, 2 deletions
diff --git a/src/Components/test/E2ETest/ServerExecutionTests/InteropReliabilityTests.cs b/src/Components/test/E2ETest/ServerExecutionTests/InteropReliabilityTests.cs index 31aa31afa7..36796bd407 100644 --- a/src/Components/test/E2ETest/ServerExecutionTests/InteropReliabilityTests.cs +++ b/src/Components/test/E2ETest/ServerExecutionTests/InteropReliabilityTests.cs @@ -284,6 +284,30 @@ namespace Microsoft.AspNetCore.Components.E2ETests.ServerExecutionTests } [Fact] + public async Task CannotGrowMemoryIndefinitely() + { + // Arrange + var client = new BlazorClient(); + client.ConfirmRenderBatch = false; + var batchCount = 0; + client.RenderBatchReceived += (int rid, int bid, byte[] data) => batchCount++; + + var rootUri = _serverFixture.RootUri; + var initialRender = client.PrepareForNextBatch(); + Assert.True(await client.ConnectAsync(new Uri(rootUri, "/subdir"), prerendered: false), "Couldn't connect to the app"); + await initialRender; + + var selectComponentRender = client.PrepareForNextBatch(); + await client.SelectAsync("test-selector-select", "BasicTestApp.ReliabilityComponent"); + await selectComponentRender; + + for (int i = 0; i < 1_000_000; i++) + { + await ValidateClientKeepsWorking(client, () => batchCount); + } + } + + [Fact] public async Task CannotInvokeJSInvokableMethodsWithInvalidArgumentsPayload() { // Arrange diff --git a/src/Components/test/testassets/BasicTestApp/ServerReliability/ReliabilityComponent.razor b/src/Components/test/testassets/BasicTestApp/ServerReliability/ReliabilityComponent.razor index 6dd793b231..242604634e 100644 --- a/src/Components/test/testassets/BasicTestApp/ServerReliability/ReliabilityComponent.razor +++ b/src/Components/test/testassets/BasicTestApp/ServerReliability/ReliabilityComponent.razor @@ -9,10 +9,13 @@ <button id="thecounter" @onclick="@IncrementCount">Click me</button> -@code -{ +<p>Expensive field to compute = @ComputeExpensiveField()</p> + +@code { int currentCount = 0; string error = ""; + byte[] dataHolder = new byte[1024 * 1024]; + RandomNumberGenerator rnd = RandomNumberGenerator.Create(); void IncrementCount() { @@ -32,4 +35,10 @@ error = e.Message; } } + + public string ComputeExpensiveField() + { + rnd.GetBytes(dataHolder); + return Convert.ToBase64String(dataHolder); + } } |