Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/dotnet/aspnetcore.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJavier Calvarro Nelson <jacalvar@microsoft.com>2019-07-08 19:21:44 +0300
committerJavier Calvarro Nelson <jacalvar@microsoft.com>2019-07-08 19:21:44 +0300
commite13ed66df2d1dc4fe3fc8d788f2ae953be53faa1 (patch)
tree92577fcef8e308fde72357ec505e15328b439aa4
parente4b378416493a118f8e74e28856b37b8777e0d17 (diff)
-rw-r--r--src/Components/test/E2ETest/ServerExecutionTests/InteropReliabilityTests.cs24
-rw-r--r--src/Components/test/testassets/BasicTestApp/ServerReliability/ReliabilityComponent.razor13
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);
+ }
}