mirror of
https://github.com/denoland/deno.git
synced 2025-08-03 18:38:33 +00:00
perf(runtime): short-circuit queue_async_op
for Poll::Ready (#15773)
This commit is contained in:
parent
c0a684c14e
commit
d2a408f452
15 changed files with 295 additions and 167 deletions
|
@ -1202,47 +1202,44 @@ Deno.test({}, function fetchWritableRespProps() {
|
|||
assertEquals(new_.headers.get("x-deno"), "foo");
|
||||
});
|
||||
|
||||
function returnHostHeaderServer(addr: string): Deno.Listener {
|
||||
const [hostname, port] = addr.split(":");
|
||||
const listener = Deno.listen({
|
||||
hostname,
|
||||
port: Number(port),
|
||||
}) as Deno.Listener;
|
||||
|
||||
listener.accept().then(async (conn: Deno.Conn) => {
|
||||
const httpConn = Deno.serveHttp(conn);
|
||||
|
||||
await httpConn.nextRequest()
|
||||
.then(async (requestEvent: Deno.RequestEvent | null) => {
|
||||
const hostHeader = requestEvent?.request.headers.get("Host");
|
||||
const headersToReturn = hostHeader ? { "Host": hostHeader } : undefined;
|
||||
|
||||
await requestEvent?.respondWith(
|
||||
new Response("", {
|
||||
status: 200,
|
||||
headers: headersToReturn,
|
||||
}),
|
||||
);
|
||||
});
|
||||
|
||||
httpConn.close();
|
||||
});
|
||||
|
||||
return listener;
|
||||
}
|
||||
|
||||
Deno.test(
|
||||
{ permissions: { net: true } },
|
||||
async function fetchFilterOutCustomHostHeader(): Promise<
|
||||
void
|
||||
> {
|
||||
const addr = "127.0.0.1:4511";
|
||||
const listener = returnHostHeaderServer(addr);
|
||||
const [hostname, port] = addr.split(":");
|
||||
const listener = Deno.listen({
|
||||
hostname,
|
||||
port: Number(port),
|
||||
}) as Deno.Listener;
|
||||
|
||||
let httpConn: Deno.HttpConn;
|
||||
listener.accept().then(async (conn: Deno.Conn) => {
|
||||
httpConn = Deno.serveHttp(conn);
|
||||
|
||||
await httpConn.nextRequest()
|
||||
.then(async (requestEvent: Deno.RequestEvent | null) => {
|
||||
const hostHeader = requestEvent?.request.headers.get("Host");
|
||||
const headersToReturn = hostHeader
|
||||
? { "Host": hostHeader }
|
||||
: undefined;
|
||||
|
||||
await requestEvent?.respondWith(
|
||||
new Response("", {
|
||||
status: 200,
|
||||
headers: headersToReturn,
|
||||
}),
|
||||
);
|
||||
});
|
||||
});
|
||||
|
||||
const response = await fetch(`http://${addr}/`, {
|
||||
headers: { "Host": "example.com" },
|
||||
});
|
||||
await response.text();
|
||||
listener.close();
|
||||
httpConn!.close();
|
||||
|
||||
assertEquals(response.headers.get("Host"), addr);
|
||||
},
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue