From 53d2a297d69b91af24ecf4271a0bbd50a7660727 Mon Sep 17 00:00:00 2001 From: Warren James Date: Wed, 5 Mar 2025 14:46:37 -0500 Subject: [PATCH 1/3] test(NODE-6806): move benchmark tags into correct place --- packages/bson-bench/src/common.ts | 2 +- packages/bson-bench/src/task.ts | 17 +++++++++++------ packages/bson-bench/test/unit/task.test.ts | 6 ++++-- 3 files changed, 16 insertions(+), 9 deletions(-) diff --git a/packages/bson-bench/src/common.ts b/packages/bson-bench/src/common.ts index f14463b5..44e46618 100644 --- a/packages/bson-bench/src/common.ts +++ b/packages/bson-bench/src/common.ts @@ -175,12 +175,12 @@ export type PerfSendMetricType = export type PerfSendResult = { info: { test_name: string; - tags?: string[]; args: Record; }; metrics: { name: string; value: number; + metadata: { tags?: string[] }; type?: PerfSendMetricType; version?: number; }[]; diff --git a/packages/bson-bench/src/task.ts b/packages/bson-bench/src/task.ts index ea33ff62..96435f03 100644 --- a/packages/bson-bench/src/task.ts +++ b/packages/bson-bench/src/task.ts @@ -108,10 +108,10 @@ export class Task { }; const optionsWithNumericFields = convertOptions(this.benchmark.options); + const metadata = { tags: this.benchmark.tags }; const perfSendResults: PerfSendResult = { info: { test_name: this.testName, - tags: this.benchmark.tags, args: { warmup: this.benchmark.warmup, iterations: this.benchmark.iterations, @@ -122,27 +122,32 @@ export class Task { { name: 'mean_megabytes_per_second', type: 'MEAN', - value: meanThroughputMBps + value: meanThroughputMBps, + metadata }, { name: 'median_megabytes_per_second', type: 'MEDIAN', - value: medianThroughputMBps + value: medianThroughputMBps, + metadata }, { name: 'min_megabytes_per_second', type: 'MIN', - value: minThroughputMBps + value: minThroughputMBps, + metadata }, { name: 'max_megabytes_per_second', type: 'MAX', - value: maxThroughputMBps + value: maxThroughputMBps, + metadata }, { name: 'stddev_megabytes_per_second', type: 'STANDARD_DEVIATION', - value: throughputMBpsStddev + value: throughputMBpsStddev, + metadata } ] }; diff --git a/packages/bson-bench/test/unit/task.test.ts b/packages/bson-bench/test/unit/task.test.ts index cd2d6a7b..633af5cb 100644 --- a/packages/bson-bench/test/unit/task.test.ts +++ b/packages/bson-bench/test/unit/task.test.ts @@ -151,8 +151,10 @@ describe('Task', function () { expect(results.info).to.haveOwnProperty('args'); }); - it('returns the tags in the info.tags field', function () { - expect(results.info.tags).to.deep.equal(['test', 'test2']); + it('returns the tags in the info.metrics.metadata field', function () { + for (const m of results.metrics) { + expect(m.metadata.tags).to.deep.equal(['test', 'test2']); + } }); it('returns options provided in constructor in the info.args field', function () { From 2fe30a8f1e44acdca24e3597b086d2b4c9c105df Mon Sep 17 00:00:00 2001 From: Warren James Date: Wed, 5 Mar 2025 14:47:57 -0500 Subject: [PATCH 2/3] add improvement_direction to type --- packages/bson-bench/src/common.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/bson-bench/src/common.ts b/packages/bson-bench/src/common.ts index 44e46618..fb288638 100644 --- a/packages/bson-bench/src/common.ts +++ b/packages/bson-bench/src/common.ts @@ -180,7 +180,7 @@ export type PerfSendResult = { metrics: { name: string; value: number; - metadata: { tags?: string[] }; + metadata: { tags?: string[]; improvement_direction?: 'up' | 'down' }; type?: PerfSendMetricType; version?: number; }[]; From 9723a385adc6c276144abbb922bc18c19064e003 Mon Sep 17 00:00:00 2001 From: Warren James Date: Wed, 5 Mar 2025 15:19:27 -0500 Subject: [PATCH 3/3] skip testing with bson@5.0.0 --- packages/bson-bench/test/unit/task.test.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/bson-bench/test/unit/task.test.ts b/packages/bson-bench/test/unit/task.test.ts index 633af5cb..12fc1da6 100644 --- a/packages/bson-bench/test/unit/task.test.ts +++ b/packages/bson-bench/test/unit/task.test.ts @@ -51,6 +51,7 @@ describe('Task', function () { let task; beforeEach(function () { + if (test.library === 'bson@5.0.0') this.skip(); task = new Task(test); });