Skip to content

Commit a9de6b8

Browse files
committed
chore: test isolation and info
1 parent 90cc399 commit a9de6b8

File tree

3 files changed

+78
-21
lines changed

3 files changed

+78
-21
lines changed

src/cmap/connect.ts

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -386,16 +386,15 @@ export async function makeSocket(options: MakeConnectionOptions): Promise<Stream
386386
if (existingSocket) {
387387
resolve(socket);
388388
} else {
389-
const connectEvent = useTLS ? 'secureConnect' : 'connect';
390389
const start = performance.now();
390+
const connectEvent = useTLS ? 'secureConnect' : 'connect';
391391
socket
392392
.once(connectEvent, () => resolve(socket))
393393
.once('error', error => reject(connectionFailureError('error', error)))
394394
.once('timeout', () => {
395-
const end = performance.now();
396-
return reject(
395+
reject(
397396
new MongoNetworkTimeoutError(
398-
`socket.connect() timed out! connectTimeoutMS=${connectTimeoutMS}ms, socket.setTimeout fired after ${end - start}ms.`
397+
`Socket '${connectEvent}' timed out after ${(performance.now() - start) | 0}ms (connectTimeoutMS: ${connectTimeoutMS})`
399398
)
400399
);
401400
})

test/benchmarks/driverBench/common.js

Lines changed: 51 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,50 @@ const fs = require('fs');
44
const path = require('path');
55
const { Readable } = require('stream');
66
const { pipeline } = require('stream/promises');
7-
const { MongoClient } = require('../../..');
8-
const { GridFSBucket } = require('../../..');
9-
// eslint-disable-next-line no-restricted-modules
10-
const { MONGODB_ERROR_CODES } = require('../../../lib/error');
7+
const child_process = require('child_process');
8+
9+
const MONGODB_DRIVER_PATH = (() => {
10+
let driverPath = process.env.MONGODB_DRIVER_PATH;
11+
if (!driverPath?.length) {
12+
driverPath = path.resolve(__dirname, '../../..');
13+
}
14+
return driverPath;
15+
})();
16+
17+
const { MongoClient, GridFSBucket } = require(MONGODB_DRIVER_PATH);
18+
19+
const { version: MONGODB_DRIVER_VERSION } = require(path.join(MONGODB_DRIVER_PATH, 'package.json'));
20+
21+
const MONGODB_DRIVER_REVISION = (() => {
22+
try {
23+
return child_process
24+
.execSync('git rev-parse --short HEAD', {
25+
cwd: MONGODB_DRIVER_PATH,
26+
encoding: 'utf8'
27+
})
28+
.trim();
29+
} catch {
30+
return 'unknown revision';
31+
}
32+
})();
33+
34+
const MONGODB_BSON_PATH = path.join(MONGODB_DRIVER_PATH, 'node_modules', 'bson');
35+
const { version: MONGODB_BSON_VERSION } = require(path.join(MONGODB_BSON_PATH, 'package.json'));
36+
const MONGODB_BSON_REVISION = (() => {
37+
if (!fs.existsSync(path.join(MONGODB_BSON_PATH, '.git'))) {
38+
return 'installed from npm';
39+
}
40+
try {
41+
return child_process
42+
.execSync('git rev-parse --short HEAD', {
43+
cwd: path.join(MONGODB_BSON_PATH),
44+
encoding: 'utf8'
45+
})
46+
.trim();
47+
} catch {
48+
return 'unknown revision';
49+
}
50+
})();
1151

1252
const DB_NAME = 'perftest';
1353
const COLLECTION_NAME = 'corpus';
@@ -67,7 +107,7 @@ function initCollection() {
67107

68108
function dropCollection() {
69109
return this.collection.drop().catch(e => {
70-
if (e.code !== MONGODB_ERROR_CODES.NamespaceNotFound) {
110+
if (e.code !== 26 /* NamespaceNotFound */) {
71111
throw e;
72112
}
73113
});
@@ -117,6 +157,12 @@ async function writeSingleByteFileToBucket() {
117157
module.exports = {
118158
MONGODB_URI,
119159
MONGODB_CLIENT_OPTIONS,
160+
MONGODB_DRIVER_PATH,
161+
MONGODB_DRIVER_VERSION,
162+
MONGODB_DRIVER_REVISION,
163+
MONGODB_BSON_PATH,
164+
MONGODB_BSON_VERSION,
165+
MONGODB_BSON_REVISION,
120166
makeClient,
121167
connectClient,
122168
disconnectClient,

test/benchmarks/driverBench/index.js

Lines changed: 24 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
const MongoBench = require('../mongoBench');
44
const os = require('node:os');
5+
const util = require('node:util');
56
const process = require('node:process');
67

78
const Runner = MongoBench.Runner;
@@ -11,9 +12,17 @@ let bsonType = 'js-bson';
1112

1213
const { writeFile } = require('fs/promises');
1314
const {
14-
makeParallelBenchmarks /* makeSingleBench, makeMultiBench*/
15+
makeParallelBenchmarks /* makeSingleBench, makeMultiBench */
1516
} = require('../mongoBench/suites');
16-
const { MONGODB_CLIENT_OPTIONS } = require('./common');
17+
const {
18+
MONGODB_CLIENT_OPTIONS,
19+
MONGODB_DRIVER_PATH,
20+
MONGODB_DRIVER_VERSION,
21+
MONGODB_DRIVER_REVISION,
22+
MONGODB_BSON_PATH,
23+
MONGODB_BSON_VERSION,
24+
MONGODB_BSON_REVISION
25+
} = require('./common');
1726

1827
const hw = os.cpus();
1928
const ram = os.totalmem() / 1024 ** 3;
@@ -26,7 +35,10 @@ const systemInfo = () =>
2635
`- arch: ${os.arch()}`,
2736
`- os: ${process.platform} (${os.release()})`,
2837
`- ram: ${platform.ram}`,
29-
`- node: ${process.version}\n`
38+
`- node: ${process.version}`,
39+
`- driver: ${MONGODB_DRIVER_VERSION} (${MONGODB_DRIVER_REVISION}): ${MONGODB_DRIVER_PATH}`,
40+
` - options ${util.inspect(MONGODB_CLIENT_OPTIONS)}`,
41+
`- bson: ${MONGODB_BSON_VERSION} (${MONGODB_BSON_REVISION}): (${MONGODB_BSON_PATH})\n`
3042
].join('\n');
3143
console.log(systemInfo());
3244

@@ -57,18 +69,18 @@ benchmarkRunner
5769
]);
5870

5971
const readBench = average([
60-
microBench.singleBench.findOne,
61-
microBench.multiBench.findManyAndEmptyCursor,
62-
microBench.multiBench.gridFsDownload,
72+
// microBench.singleBench.findOne,
73+
// microBench.multiBench.findManyAndEmptyCursor,
74+
// microBench.multiBench.gridFsDownload,
6375
microBench.parallel.gridfsMultiFileDownload,
6476
microBench.parallel.ldjsonMultiFileExport
6577
]);
6678
const writeBench = average([
67-
microBench.singleBench.smallDocInsertOne,
68-
microBench.singleBench.largeDocInsertOne,
69-
microBench.multiBench.smallDocBulkInsert,
70-
microBench.multiBench.largeDocBulkInsert,
71-
microBench.multiBench.gridFsUpload,
79+
// microBench.singleBench.smallDocInsertOne,
80+
// microBench.singleBench.largeDocInsertOne,
81+
// microBench.multiBench.smallDocBulkInsert,
82+
// microBench.multiBench.largeDocBulkInsert,
83+
// microBench.multiBench.gridFsUpload,
7284
microBench.parallel.ldjsonMultiFileUpload,
7385
microBench.parallel.gridfsMultiFileUpload
7486
]);
@@ -111,6 +123,6 @@ benchmarkRunner
111123
return writeFile('results.json', results);
112124
})
113125
.catch(err => {
114-
console.error('failure: ', err.name, err.message);
126+
console.error('failure: ', err.name, err.message, err.stack);
115127
process.exit(1);
116128
});

0 commit comments

Comments
 (0)