Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
78 changes: 31 additions & 47 deletions private/my-local-model-schema/test/functional/rpcv2cbor.spec.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
// smithy-typescript generated code
import { HttpResponse } from "@smithy/types";
import { afterAll, expect, test as it } from "vitest";

import { GetNumbersCommand } from "../../src/commands/GetNumbersCommand";
Expand Down Expand Up @@ -303,13 +304,18 @@ it("HttpLabelCommandExample:Response", async () => {
it("GetNumbersRequestExample:SerdeBenchmark:Request", async () => {
const client = new XYZServiceClient({
...clientParams,
requestHandler: new RequestSerializationTestHandler(),
});

const command = new GetNumbersCommand(
{
} as any,
);
const protocol = client.config.protocol;
const [, namespace, _name, traits, input, output] = command.schema as any;
const $schema = {namespace, name: _name, traits, input, output} as any;
const $input = command.input as any;
const $context = client.config as any;

const name = "GetNumbersRequestExample:SerdeBenchmark:Request";
const timings = [] as number[];
const testStart = performance.now();
Expand All @@ -318,21 +324,11 @@ it("GetNumbersRequestExample:SerdeBenchmark:Request", async () => {

while (++i) {
const preSerialize = performance.now();
try {
await client.send(command);
fail("Expected an EXPECTED_REQUEST_SERIALIZATION_ERROR to be thrown");
return;
} catch (err) {
if (!(err instanceof EXPECTED_REQUEST_SERIALIZATION_ERROR)) {
fail(err);
return;
}
const r = err.request;
};
await (protocol.serializeRequest as any)($schema, $input, $context);
const postSerialize = performance.now();
if (i >= WARMUP_ITERATIONS) {
// allow warmup
timings.push(postSerialize * 1_000_000 - preSerialize * 1_000_000);
timings.push(postSerialize * 1_000_000 - preSerialize * 1_000_000);
}

if (timings.length >= BENCHMARK_ITERATIONS) {
Expand Down Expand Up @@ -379,54 +375,42 @@ it("EndpointResolvedHeadersApplied:Request", async () => {
});

it("GetNumbersResponseExample:SerdeBenchmark:Response", async () => {
const params: any = {};
const command = new GetNumbersCommand(params);

const client = new XYZServiceClient({
...clientParams,
requestHandler: new ResponseDeserializationTestHandler(
true,
200,
{
"smithy-protocol": "rpc-v2-cbor",
}
),
});

const params: any = {};
const command = new GetNumbersCommand(params);
const [, namespace, _name, traits, input, output] = command.schema as any;
const $schema = {namespace, name: _name, traits, input, output} as any;
const $context = client.config as any;
const protocol = client.config.protocol as any;

const name = "GetNumbersResponseExample:SerdeBenchmark:Response";
const timings = [] as number[];
const numeric = (a: number, b: number) => a - b;
let i = 0;

client.middlewareStack.addRelativeTo(
(next: any) => async (args: any) => {
const preDeserialize = performance.now();
const r = await next(args);
const postDeserialize = performance.now();
if (i >= WARMUP_ITERATIONS) {
timings.push(postDeserialize * 1_000_000 - preDeserialize * 1_000_000);
}
return r;
},
{
name: "deserializerBenchmarkMiddleware",
toMiddleware: "deserializerMiddleware",
relation: "before",
override: true,
}
);

const benchmarkStart = performance.now();

while (++i) {
let r: any;
try {
r = await client.send(command);
} catch (err) {
fail("Expected a valid response to be returned, got " + err);
return;
const $httpResponse = new HttpResponse({
statusCode: 200,
headers: {
"smithy-protocol": "rpc-v2-cbor",
},
body: undefined,
});
const preDeserialize = performance.now();
await (protocol.deserializeResponse as any)($schema, $context, $httpResponse);
const postDeserialize = performance.now();
if (i >= WARMUP_ITERATIONS) {
timings.push(postDeserialize * 1_000_000 - preDeserialize * 1_000_000);
}
if (i >= WARMUP_ITERATIONS + BENCHMARK_ITERATIONS) {

if (timings.length >= BENCHMARK_ITERATIONS) {
timings.length = BENCHMARK_ITERATIONS;
break;
} else if (benchmarkStart + 30_000 < performance.now()) {
break;
Expand Down
2 changes: 1 addition & 1 deletion private/my-local-model/package.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "xyz",
"description": "xyz client",
"version": "3.24.1",
"version": "3.24.2",
"scripts": {
"build": "concurrently 'npm:build:cjs' 'npm:build:es' 'npm:build:types'",
"build:cjs": "tsc -p tsconfig.cjs.json",
Expand Down
78 changes: 31 additions & 47 deletions private/my-local-model/test/functional/rpcv2cbor.spec.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
// smithy-typescript generated code
import { HttpResponse } from "@smithy/types";
import { afterAll, expect, test as it } from "vitest";

import { GetNumbersCommand } from "../../src/commands/GetNumbersCommand";
Expand Down Expand Up @@ -303,13 +304,18 @@
it("GetNumbersRequestExample:SerdeBenchmark:Request", async () => {
const client = new XYZServiceClient({
...clientParams,
requestHandler: new RequestSerializationTestHandler(),
});

const command = new GetNumbersCommand(
{
} as any,
);
const protocol = client.config.protocol;
const [, namespace, _name, traits, input, output] = command.schema as any;

Check failure on line 314 in private/my-local-model/test/functional/rpcv2cbor.spec.ts

View workflow job for this annotation

GitHub Actions / TypeScript Test 26

private/my-local-model/test/functional/rpcv2cbor.spec.ts > GetNumbersRequestExample:SerdeBenchmark:Request

TypeError: undefined is not iterable (cannot read property Symbol(Symbol.iterator)) ❯ private/my-local-model/test/functional/rpcv2cbor.spec.ts:314:55

Check failure on line 314 in private/my-local-model/test/functional/rpcv2cbor.spec.ts

View workflow job for this annotation

GitHub Actions / TypeScript Test 26

private/my-local-model/test/functional/rpcv2cbor.spec.ts > GetNumbersRequestExample:SerdeBenchmark:Request

TypeError: undefined is not iterable (cannot read property Symbol(Symbol.iterator)) ❯ private/my-local-model/test/functional/rpcv2cbor.spec.ts:314:55

Check failure on line 314 in private/my-local-model/test/functional/rpcv2cbor.spec.ts

View workflow job for this annotation

GitHub Actions / TypeScript Test 26

private/my-local-model/test/functional/rpcv2cbor.spec.ts > GetNumbersRequestExample:SerdeBenchmark:Request

TypeError: undefined is not iterable (cannot read property Symbol(Symbol.iterator)) ❯ private/my-local-model/test/functional/rpcv2cbor.spec.ts:314:55

Check failure on line 314 in private/my-local-model/test/functional/rpcv2cbor.spec.ts

View workflow job for this annotation

GitHub Actions / TypeScript Test 22

private/my-local-model/test/functional/rpcv2cbor.spec.ts > GetNumbersRequestExample:SerdeBenchmark:Request

TypeError: undefined is not iterable (cannot read property Symbol(Symbol.iterator)) ❯ private/my-local-model/test/functional/rpcv2cbor.spec.ts:314:55

Check failure on line 314 in private/my-local-model/test/functional/rpcv2cbor.spec.ts

View workflow job for this annotation

GitHub Actions / TypeScript Test 22

private/my-local-model/test/functional/rpcv2cbor.spec.ts > GetNumbersRequestExample:SerdeBenchmark:Request

TypeError: undefined is not iterable (cannot read property Symbol(Symbol.iterator)) ❯ private/my-local-model/test/functional/rpcv2cbor.spec.ts:314:55

Check failure on line 314 in private/my-local-model/test/functional/rpcv2cbor.spec.ts

View workflow job for this annotation

GitHub Actions / TypeScript Test 22

private/my-local-model/test/functional/rpcv2cbor.spec.ts > GetNumbersRequestExample:SerdeBenchmark:Request

TypeError: undefined is not iterable (cannot read property Symbol(Symbol.iterator)) ❯ private/my-local-model/test/functional/rpcv2cbor.spec.ts:314:55

Check failure on line 314 in private/my-local-model/test/functional/rpcv2cbor.spec.ts

View workflow job for this annotation

GitHub Actions / TypeScript Test 24

private/my-local-model/test/functional/rpcv2cbor.spec.ts > GetNumbersRequestExample:SerdeBenchmark:Request

TypeError: undefined is not iterable (cannot read property Symbol(Symbol.iterator)) ❯ private/my-local-model/test/functional/rpcv2cbor.spec.ts:314:55

Check failure on line 314 in private/my-local-model/test/functional/rpcv2cbor.spec.ts

View workflow job for this annotation

GitHub Actions / TypeScript Test 24

private/my-local-model/test/functional/rpcv2cbor.spec.ts > GetNumbersRequestExample:SerdeBenchmark:Request

TypeError: undefined is not iterable (cannot read property Symbol(Symbol.iterator)) ❯ private/my-local-model/test/functional/rpcv2cbor.spec.ts:314:55

Check failure on line 314 in private/my-local-model/test/functional/rpcv2cbor.spec.ts

View workflow job for this annotation

GitHub Actions / TypeScript Test 24

private/my-local-model/test/functional/rpcv2cbor.spec.ts > GetNumbersRequestExample:SerdeBenchmark:Request

TypeError: undefined is not iterable (cannot read property Symbol(Symbol.iterator)) ❯ private/my-local-model/test/functional/rpcv2cbor.spec.ts:314:55

Check failure on line 314 in private/my-local-model/test/functional/rpcv2cbor.spec.ts

View workflow job for this annotation

GitHub Actions / TypeScript Test 18

private/my-local-model/test/functional/rpcv2cbor.spec.ts > GetNumbersRequestExample:SerdeBenchmark:Request

TypeError: undefined is not iterable (cannot read property Symbol(Symbol.iterator)) ❯ private/my-local-model/test/functional/rpcv2cbor.spec.ts:314:55

Check failure on line 314 in private/my-local-model/test/functional/rpcv2cbor.spec.ts

View workflow job for this annotation

GitHub Actions / TypeScript Test 18

private/my-local-model/test/functional/rpcv2cbor.spec.ts > GetNumbersRequestExample:SerdeBenchmark:Request

TypeError: undefined is not iterable (cannot read property Symbol(Symbol.iterator)) ❯ private/my-local-model/test/functional/rpcv2cbor.spec.ts:314:55

Check failure on line 314 in private/my-local-model/test/functional/rpcv2cbor.spec.ts

View workflow job for this annotation

GitHub Actions / TypeScript Test 18

private/my-local-model/test/functional/rpcv2cbor.spec.ts > GetNumbersRequestExample:SerdeBenchmark:Request

TypeError: undefined is not iterable (cannot read property Symbol(Symbol.iterator)) ❯ private/my-local-model/test/functional/rpcv2cbor.spec.ts:314:55

Check failure on line 314 in private/my-local-model/test/functional/rpcv2cbor.spec.ts

View workflow job for this annotation

GitHub Actions / TypeScript Test 20

private/my-local-model/test/functional/rpcv2cbor.spec.ts > GetNumbersRequestExample:SerdeBenchmark:Request

TypeError: undefined is not iterable (cannot read property Symbol(Symbol.iterator)) ❯ private/my-local-model/test/functional/rpcv2cbor.spec.ts:314:55

Check failure on line 314 in private/my-local-model/test/functional/rpcv2cbor.spec.ts

View workflow job for this annotation

GitHub Actions / TypeScript Test 20

private/my-local-model/test/functional/rpcv2cbor.spec.ts > GetNumbersRequestExample:SerdeBenchmark:Request

TypeError: undefined is not iterable (cannot read property Symbol(Symbol.iterator)) ❯ private/my-local-model/test/functional/rpcv2cbor.spec.ts:314:55

Check failure on line 314 in private/my-local-model/test/functional/rpcv2cbor.spec.ts

View workflow job for this annotation

GitHub Actions / TypeScript Test 20

private/my-local-model/test/functional/rpcv2cbor.spec.ts > GetNumbersRequestExample:SerdeBenchmark:Request

TypeError: undefined is not iterable (cannot read property Symbol(Symbol.iterator)) ❯ private/my-local-model/test/functional/rpcv2cbor.spec.ts:314:55
const $schema = {namespace, name: _name, traits, input, output} as any;
const $input = command.input as any;
const $context = client.config as any;

const name = "GetNumbersRequestExample:SerdeBenchmark:Request";
const timings = [] as number[];
const testStart = performance.now();
Expand All @@ -318,21 +324,11 @@

while (++i) {
const preSerialize = performance.now();
try {
await client.send(command);
fail("Expected an EXPECTED_REQUEST_SERIALIZATION_ERROR to be thrown");
return;
} catch (err) {
if (!(err instanceof EXPECTED_REQUEST_SERIALIZATION_ERROR)) {
fail(err);
return;
}
const r = err.request;
};
await (protocol.serializeRequest as any)($schema, $input, $context);
const postSerialize = performance.now();
if (i >= WARMUP_ITERATIONS) {
// allow warmup
timings.push(postSerialize * 1_000_000 - preSerialize * 1_000_000);
timings.push(postSerialize * 1_000_000 - preSerialize * 1_000_000);
}

if (timings.length >= BENCHMARK_ITERATIONS) {
Expand Down Expand Up @@ -379,54 +375,42 @@
});

it("GetNumbersResponseExample:SerdeBenchmark:Response", async () => {
const params: any = {};
const command = new GetNumbersCommand(params);

const client = new XYZServiceClient({
...clientParams,
requestHandler: new ResponseDeserializationTestHandler(
true,
200,
{
"smithy-protocol": "rpc-v2-cbor",
}
),
});

const params: any = {};
const command = new GetNumbersCommand(params);
const [, namespace, _name, traits, input, output] = command.schema as any;

Check failure on line 385 in private/my-local-model/test/functional/rpcv2cbor.spec.ts

View workflow job for this annotation

GitHub Actions / TypeScript Test 26

private/my-local-model/test/functional/rpcv2cbor.spec.ts > GetNumbersResponseExample:SerdeBenchmark:Response

TypeError: undefined is not iterable (cannot read property Symbol(Symbol.iterator)) ❯ private/my-local-model/test/functional/rpcv2cbor.spec.ts:385:55

Check failure on line 385 in private/my-local-model/test/functional/rpcv2cbor.spec.ts

View workflow job for this annotation

GitHub Actions / TypeScript Test 26

private/my-local-model/test/functional/rpcv2cbor.spec.ts > GetNumbersResponseExample:SerdeBenchmark:Response

TypeError: undefined is not iterable (cannot read property Symbol(Symbol.iterator)) ❯ private/my-local-model/test/functional/rpcv2cbor.spec.ts:385:55

Check failure on line 385 in private/my-local-model/test/functional/rpcv2cbor.spec.ts

View workflow job for this annotation

GitHub Actions / TypeScript Test 26

private/my-local-model/test/functional/rpcv2cbor.spec.ts > GetNumbersResponseExample:SerdeBenchmark:Response

TypeError: undefined is not iterable (cannot read property Symbol(Symbol.iterator)) ❯ private/my-local-model/test/functional/rpcv2cbor.spec.ts:385:55

Check failure on line 385 in private/my-local-model/test/functional/rpcv2cbor.spec.ts

View workflow job for this annotation

GitHub Actions / TypeScript Test 22

private/my-local-model/test/functional/rpcv2cbor.spec.ts > GetNumbersResponseExample:SerdeBenchmark:Response

TypeError: undefined is not iterable (cannot read property Symbol(Symbol.iterator)) ❯ private/my-local-model/test/functional/rpcv2cbor.spec.ts:385:55

Check failure on line 385 in private/my-local-model/test/functional/rpcv2cbor.spec.ts

View workflow job for this annotation

GitHub Actions / TypeScript Test 22

private/my-local-model/test/functional/rpcv2cbor.spec.ts > GetNumbersResponseExample:SerdeBenchmark:Response

TypeError: undefined is not iterable (cannot read property Symbol(Symbol.iterator)) ❯ private/my-local-model/test/functional/rpcv2cbor.spec.ts:385:55

Check failure on line 385 in private/my-local-model/test/functional/rpcv2cbor.spec.ts

View workflow job for this annotation

GitHub Actions / TypeScript Test 22

private/my-local-model/test/functional/rpcv2cbor.spec.ts > GetNumbersResponseExample:SerdeBenchmark:Response

TypeError: undefined is not iterable (cannot read property Symbol(Symbol.iterator)) ❯ private/my-local-model/test/functional/rpcv2cbor.spec.ts:385:55

Check failure on line 385 in private/my-local-model/test/functional/rpcv2cbor.spec.ts

View workflow job for this annotation

GitHub Actions / TypeScript Test 24

private/my-local-model/test/functional/rpcv2cbor.spec.ts > GetNumbersResponseExample:SerdeBenchmark:Response

TypeError: undefined is not iterable (cannot read property Symbol(Symbol.iterator)) ❯ private/my-local-model/test/functional/rpcv2cbor.spec.ts:385:55

Check failure on line 385 in private/my-local-model/test/functional/rpcv2cbor.spec.ts

View workflow job for this annotation

GitHub Actions / TypeScript Test 24

private/my-local-model/test/functional/rpcv2cbor.spec.ts > GetNumbersResponseExample:SerdeBenchmark:Response

TypeError: undefined is not iterable (cannot read property Symbol(Symbol.iterator)) ❯ private/my-local-model/test/functional/rpcv2cbor.spec.ts:385:55

Check failure on line 385 in private/my-local-model/test/functional/rpcv2cbor.spec.ts

View workflow job for this annotation

GitHub Actions / TypeScript Test 24

private/my-local-model/test/functional/rpcv2cbor.spec.ts > GetNumbersResponseExample:SerdeBenchmark:Response

TypeError: undefined is not iterable (cannot read property Symbol(Symbol.iterator)) ❯ private/my-local-model/test/functional/rpcv2cbor.spec.ts:385:55

Check failure on line 385 in private/my-local-model/test/functional/rpcv2cbor.spec.ts

View workflow job for this annotation

GitHub Actions / TypeScript Test 18

private/my-local-model/test/functional/rpcv2cbor.spec.ts > GetNumbersResponseExample:SerdeBenchmark:Response

TypeError: undefined is not iterable (cannot read property Symbol(Symbol.iterator)) ❯ private/my-local-model/test/functional/rpcv2cbor.spec.ts:385:55

Check failure on line 385 in private/my-local-model/test/functional/rpcv2cbor.spec.ts

View workflow job for this annotation

GitHub Actions / TypeScript Test 18

private/my-local-model/test/functional/rpcv2cbor.spec.ts > GetNumbersResponseExample:SerdeBenchmark:Response

TypeError: undefined is not iterable (cannot read property Symbol(Symbol.iterator)) ❯ private/my-local-model/test/functional/rpcv2cbor.spec.ts:385:55

Check failure on line 385 in private/my-local-model/test/functional/rpcv2cbor.spec.ts

View workflow job for this annotation

GitHub Actions / TypeScript Test 18

private/my-local-model/test/functional/rpcv2cbor.spec.ts > GetNumbersResponseExample:SerdeBenchmark:Response

TypeError: undefined is not iterable (cannot read property Symbol(Symbol.iterator)) ❯ private/my-local-model/test/functional/rpcv2cbor.spec.ts:385:55

Check failure on line 385 in private/my-local-model/test/functional/rpcv2cbor.spec.ts

View workflow job for this annotation

GitHub Actions / TypeScript Test 20

private/my-local-model/test/functional/rpcv2cbor.spec.ts > GetNumbersResponseExample:SerdeBenchmark:Response

TypeError: undefined is not iterable (cannot read property Symbol(Symbol.iterator)) ❯ private/my-local-model/test/functional/rpcv2cbor.spec.ts:385:55

Check failure on line 385 in private/my-local-model/test/functional/rpcv2cbor.spec.ts

View workflow job for this annotation

GitHub Actions / TypeScript Test 20

private/my-local-model/test/functional/rpcv2cbor.spec.ts > GetNumbersResponseExample:SerdeBenchmark:Response

TypeError: undefined is not iterable (cannot read property Symbol(Symbol.iterator)) ❯ private/my-local-model/test/functional/rpcv2cbor.spec.ts:385:55

Check failure on line 385 in private/my-local-model/test/functional/rpcv2cbor.spec.ts

View workflow job for this annotation

GitHub Actions / TypeScript Test 20

private/my-local-model/test/functional/rpcv2cbor.spec.ts > GetNumbersResponseExample:SerdeBenchmark:Response

TypeError: undefined is not iterable (cannot read property Symbol(Symbol.iterator)) ❯ private/my-local-model/test/functional/rpcv2cbor.spec.ts:385:55
const $schema = {namespace, name: _name, traits, input, output} as any;
const $context = client.config as any;
const protocol = client.config.protocol as any;

const name = "GetNumbersResponseExample:SerdeBenchmark:Response";
const timings = [] as number[];
const numeric = (a: number, b: number) => a - b;
let i = 0;

client.middlewareStack.addRelativeTo(
(next: any) => async (args: any) => {
const preDeserialize = performance.now();
const r = await next(args);
const postDeserialize = performance.now();
if (i >= WARMUP_ITERATIONS) {
timings.push(postDeserialize * 1_000_000 - preDeserialize * 1_000_000);
}
return r;
},
{
name: "deserializerBenchmarkMiddleware",
toMiddleware: "deserializerMiddleware",
relation: "before",
override: true,
}
);

const benchmarkStart = performance.now();

while (++i) {
let r: any;
try {
r = await client.send(command);
} catch (err) {
fail("Expected a valid response to be returned, got " + err);
return;
const $httpResponse = new HttpResponse({
statusCode: 200,
headers: {
"smithy-protocol": "rpc-v2-cbor",
},
body: undefined,
});
const preDeserialize = performance.now();
await (protocol.deserializeResponse as any)($schema, $context, $httpResponse);
const postDeserialize = performance.now();
if (i >= WARMUP_ITERATIONS) {
timings.push(postDeserialize * 1_000_000 - preDeserialize * 1_000_000);
}
if (i >= WARMUP_ITERATIONS + BENCHMARK_ITERATIONS) {

if (timings.length >= BENCHMARK_ITERATIONS) {
timings.length = BENCHMARK_ITERATIONS;
break;
} else if (benchmarkStart + 30_000 < performance.now()) {
break;
Expand Down
Loading
Loading