Livt packages
Livt.Web
Version 1.0.0
Bounded HTTP routing, request parsing, response encoding, and Ethernet application composition for Livt.
Published files (63)
- CounterContent.lvt
- HttpApplicationTest.lvt
- HttpHandlerTest.lvt
- HttpHeaderRangeData.lvt
- HttpHeaderRangeTest.lvt
- HttpNetworkEndpointTest.lvt
- HttpPathTest.lvt
- HttpRequestBoundsTest.lvt
- HttpRequestParserTest.lvt
- HttpRequestTestData.lvt
- HttpResponseEncoderTest.lvt
- HttpResponseTestData.lvt
- HttpRoutingTest.lvt
- HttpTcpSequenceTest.lvt
- RoutingBytes.lvt
- RoutingCounter.lvt
tests/http/HttpRequestBoundsTest.lvt
namespace Livt.Web.Tests.Http
using Livt.Net
using Livt.Web.Http
@Test
component HttpRequestBoundsTest
{
data: HttpRequestTestData
bytes: HttpRequestParser<HttpRequestTestData, 18, 4, 1>
target: HttpRequestParser<HttpRequestTestData, 128, 4, 1>
new()
{
data = new HttpRequestTestData()
bytes = new HttpRequestParser<HttpRequestTestData, 18, 4, 1>(data)
target = new HttpRequestParser<HttpRequestTestData, 128, 4, 1>(data)
}
fn Select(which: int)
{
bytes.Invalidate()
target.Invalidate()
data.Select(which)
}
@Test
fn ByteBoundBeforeSourceRead()
{
this.Select(0)
assert bytes.TryParse() == HttpRequestResult.Ready
this.Select(0)
data.Limit(19)
assert bytes.TryParse() == HttpRequestResult.TooLarge
assert data.GetReads() == 0
this.Select(0)
data.Limit(-1)
assert bytes.TryParse() == HttpRequestResult.ReadFailure
assert data.GetReads() == 0
}
@Test
fn ExactTargetAndHeaderBounds()
{
this.Select(40)
assert target.TryParse() == HttpRequestResult.Ready
this.Select(41)
assert target.TryParse() == HttpRequestResult.TooLarge
this.Select(42)
assert target.TryParse() == HttpRequestResult.Ready
this.Select(43)
assert target.TryParse() == HttpRequestResult.TooLarge
}
}