Skip to content
This repository was archived by the owner on Dec 18, 2018. It is now read-only.

Commit a1bfe6b

Browse files
committed
Feedback
1 parent 6333f36 commit a1bfe6b

File tree

5 files changed

+87
-85
lines changed

5 files changed

+87
-85
lines changed

src/Microsoft.AspNetCore.Server.Kestrel/BadHttpRequestException.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ internal static BadHttpRequestException GetException(RequestRejectionReason reas
4444
ex = new BadHttpRequestException("Malformed request: invalid headers.", StatusCodes.Status400BadRequest);
4545
break;
4646
case RequestRejectionReason.MultipleContentLengths:
47-
ex = new BadHttpRequestException("Multiple content length headers.", StatusCodes.Status400BadRequest);
47+
ex = new BadHttpRequestException("Multiple Content-Length headers.", StatusCodes.Status400BadRequest);
4848
break;
4949
case RequestRejectionReason.UnexpectedEndOfRequestContent:
5050
ex = new BadHttpRequestException("Unexpected end of request content.", StatusCodes.Status400BadRequest);

src/Microsoft.AspNetCore.Server.Kestrel/Internal/Http/MessageBody.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -325,7 +325,7 @@ protected override void OnConsumedBytes(int count)
325325
{
326326
if (count > 0)
327327
{
328-
throw new InvalidDataException("Consuming non-existant data");
328+
throw new InvalidDataException("Consuming non-existent data");
329329
}
330330
}
331331
}

test/Microsoft.AspNetCore.Server.KestrelTests/BadHttpRequestTests.cs

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -202,14 +202,16 @@ public async Task BadRequestIfMethodRequiresLengthButNoContentLengthInHttp10Requ
202202
}
203203
}
204204

205-
[Fact]
206-
public async Task BadRequestIfContentLengthInvalid()
205+
[Theory]
206+
[InlineData("NaN")]
207+
[InlineData("-1")]
208+
public async Task BadRequestIfContentLengthInvalid(string contentLength)
207209
{
208210
using (var server = new TestServer(context => { return Task.FromResult(0); }))
209211
{
210212
using (var connection = server.CreateConnection())
211213
{
212-
await connection.Send("GET / HTTP/1.1\r\nContent-Length: NaN\r\n\r\n");
214+
await connection.Send($"GET / HTTP/1.1\r\nContent-Length: {contentLength}\r\n\r\n");
213215
await ReceiveBadRequestResponse(connection, "400 Bad Request", server.Context.DateHeaderValue);
214216
}
215217
}

test/Microsoft.AspNetCore.Server.KestrelTests/FrameResponseHeadersTests.cs

Lines changed: 0 additions & 80 deletions
Original file line numberDiff line numberDiff line change
@@ -153,86 +153,6 @@ public void ThrowsWhenClearingHeadersAfterReadOnlyIsSet()
153153
Assert.Throws<InvalidOperationException>(() => dictionary.Clear());
154154
}
155155

156-
[Fact]
157-
public void CorrectContentLengthsOutput()
158-
{
159-
using(var pool = new MemoryPool())
160-
{
161-
var block = pool.Lease();
162-
try
163-
{
164-
for (var i = 0u; i <= 9u; i++)
165-
{
166-
block.Reset();
167-
var iter = new MemoryPoolIterator(block);
168-
iter.CopyFromNumeric(i);
169-
170-
Assert.Equal(block.Array[block.Start], (byte)(i + '0'));
171-
Assert.Equal(block.End, block.Start + 1);
172-
Assert.Equal(iter.Index, block.End);
173-
}
174-
for (var i = 10u; i <= 99u; i++)
175-
{
176-
block.Reset();
177-
var iter = new MemoryPoolIterator(block);
178-
iter.CopyFromNumeric(i);
179-
180-
Assert.Equal(block.Array[block.Start], (byte)((i / 10) + '0'));
181-
Assert.Equal(block.Array[block.Start + 1], (byte)((i % 10) + '0'));
182-
183-
Assert.Equal(block.End, block.Start + 2);
184-
Assert.Equal(iter.Index, block.End);
185-
}
186-
for (var i = 100u; i <= 999u; i++)
187-
{
188-
block.Reset();
189-
var iter = new MemoryPoolIterator(block);
190-
iter.CopyFromNumeric(i);
191-
192-
Assert.Equal(block.Array[block.Start], (byte)((i / 100) + '0'));
193-
Assert.Equal(block.Array[block.Start + 1], (byte)(((i % 100) / 10) + '0'));
194-
Assert.Equal(block.Array[block.Start + 2], (byte)((i % 10) + '0'));
195-
196-
Assert.Equal(block.End, block.Start + 3);
197-
Assert.Equal(iter.Index, block.End);
198-
}
199-
for (var i = 1000u; i <= 9999u; i++)
200-
{
201-
block.Reset();
202-
var iter = new MemoryPoolIterator(block);
203-
iter.CopyFromNumeric(i);
204-
205-
Assert.Equal(block.Array[block.Start], (byte)((i / 1000) + '0'));
206-
Assert.Equal(block.Array[block.Start + 1], (byte)(((i % 1000) / 100) + '0'));
207-
Assert.Equal(block.Array[block.Start + 2], (byte)(((i % 100) / 10) + '0'));
208-
Assert.Equal(block.Array[block.Start + 3], (byte)((i % 10) + '0'));
209-
210-
Assert.Equal(block.End, block.Start + 4);
211-
Assert.Equal(iter.Index, block.End);
212-
}
213-
{
214-
block.Reset();
215-
var iter = new MemoryPoolIterator(block);
216-
iter.CopyFromNumeric(ulong.MaxValue);
217-
218-
var outputBytes = Encoding.ASCII.GetBytes(ulong.MaxValue.ToString("0"));
219-
220-
for (var i = 0; i < outputBytes.Length; i++)
221-
{
222-
Assert.Equal(block.Array[block.Start + i], outputBytes[i]);
223-
}
224-
225-
Assert.Equal(block.End, block.Start + outputBytes.Length);
226-
Assert.Equal(iter.Index, block.End);
227-
}
228-
}
229-
finally
230-
{
231-
pool.Return(block);
232-
}
233-
}
234-
}
235-
236156
[Theory]
237157
[MemberData(nameof(BadContentLengths))]
238158
public void ThrowsWhenAddingContentLengthWithNonNumericValue(string contentLength)

test/Microsoft.AspNetCore.Server.KestrelTests/MemoryPoolIteratorTests.cs

Lines changed: 80 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1214,6 +1214,86 @@ public void TestGetAsciiStringEscaped(string input, string expected, int maxChar
12141214
}
12151215
}
12161216

1217+
[Fact]
1218+
public void CorrectContentLengthsOutput()
1219+
{
1220+
using (var pool = new MemoryPool())
1221+
{
1222+
var block = pool.Lease();
1223+
try
1224+
{
1225+
for (var i = 0u; i <= 9u; i++)
1226+
{
1227+
block.Reset();
1228+
var iter = new MemoryPoolIterator(block);
1229+
iter.CopyFromNumeric(i);
1230+
1231+
Assert.Equal(block.Array[block.Start], (byte)(i + '0'));
1232+
Assert.Equal(block.End, block.Start + 1);
1233+
Assert.Equal(iter.Index, block.End);
1234+
}
1235+
for (var i = 10u; i <= 99u; i++)
1236+
{
1237+
block.Reset();
1238+
var iter = new MemoryPoolIterator(block);
1239+
iter.CopyFromNumeric(i);
1240+
1241+
Assert.Equal(block.Array[block.Start], (byte)((i / 10) + '0'));
1242+
Assert.Equal(block.Array[block.Start + 1], (byte)((i % 10) + '0'));
1243+
1244+
Assert.Equal(block.End, block.Start + 2);
1245+
Assert.Equal(iter.Index, block.End);
1246+
}
1247+
for (var i = 100u; i <= 999u; i++)
1248+
{
1249+
block.Reset();
1250+
var iter = new MemoryPoolIterator(block);
1251+
iter.CopyFromNumeric(i);
1252+
1253+
Assert.Equal(block.Array[block.Start], (byte)((i / 100) + '0'));
1254+
Assert.Equal(block.Array[block.Start + 1], (byte)(((i % 100) / 10) + '0'));
1255+
Assert.Equal(block.Array[block.Start + 2], (byte)((i % 10) + '0'));
1256+
1257+
Assert.Equal(block.End, block.Start + 3);
1258+
Assert.Equal(iter.Index, block.End);
1259+
}
1260+
for (var i = 1000u; i <= 9999u; i++)
1261+
{
1262+
block.Reset();
1263+
var iter = new MemoryPoolIterator(block);
1264+
iter.CopyFromNumeric(i);
1265+
1266+
Assert.Equal(block.Array[block.Start], (byte)((i / 1000) + '0'));
1267+
Assert.Equal(block.Array[block.Start + 1], (byte)(((i % 1000) / 100) + '0'));
1268+
Assert.Equal(block.Array[block.Start + 2], (byte)(((i % 100) / 10) + '0'));
1269+
Assert.Equal(block.Array[block.Start + 3], (byte)((i % 10) + '0'));
1270+
1271+
Assert.Equal(block.End, block.Start + 4);
1272+
Assert.Equal(iter.Index, block.End);
1273+
}
1274+
{
1275+
block.Reset();
1276+
var iter = new MemoryPoolIterator(block);
1277+
iter.CopyFromNumeric(ulong.MaxValue);
1278+
1279+
var outputBytes = Encoding.ASCII.GetBytes(ulong.MaxValue.ToString("0"));
1280+
1281+
for (var i = 0; i < outputBytes.Length; i++)
1282+
{
1283+
Assert.Equal(block.Array[block.Start + i], outputBytes[i]);
1284+
}
1285+
1286+
Assert.Equal(block.End, block.Start + outputBytes.Length);
1287+
Assert.Equal(iter.Index, block.End);
1288+
}
1289+
}
1290+
finally
1291+
{
1292+
pool.Return(block);
1293+
}
1294+
}
1295+
}
1296+
12171297
private delegate bool GetKnownString(MemoryPoolIterator iter, out string result);
12181298

12191299
private void TestKnownStringsInterning(string input, string expected, GetKnownString action)

0 commit comments

Comments
 (0)