|
1 | 1 | 'use strict';
|
2 | 2 |
|
3 | 3 | const path = require('path');
|
4 |
| -const { pathToFileURL, fileURLToPath } = require('url'); |
| 4 | +const { pathToFileURL } = require('url'); |
5 | 5 | const common = require('../common');
|
6 | 6 | const assert = require('assert');
|
7 | 7 | const bench = common.createBenchmark(main, {
|
8 | 8 | n: [1000],
|
| 9 | + valuesToRead: [ |
| 10 | + 'dirname-and-filename', |
| 11 | + 'dirname', |
| 12 | + 'filename', |
| 13 | + ], |
9 | 14 | });
|
10 | 15 |
|
11 |
| -const file = pathToFileURL( |
12 |
| - path.resolve(__filename, '../../fixtures/esm-dir-file.mjs'), |
13 |
| -); |
14 |
| -async function load(array, n) { |
| 16 | +const fixtureDir = path.resolve(__filename, '../../fixtures'); |
| 17 | +const fixtureDirURL = pathToFileURL(fixtureDir); |
| 18 | +async function load(array, n, valuesToRead) { |
15 | 19 | for (let i = 0; i < n; i++) {
|
16 |
| - array[i] = await import(`${file}?i=${i}`); |
| 20 | + array[i] = await import(`${fixtureDirURL}/import-meta-${valuesToRead}.mjs?i=${i}`); |
17 | 21 | }
|
18 | 22 | return array;
|
19 | 23 | }
|
20 | 24 |
|
21 |
| -function main({ n }) { |
| 25 | +function main({ n, valuesToRead }) { |
22 | 26 | const array = [];
|
23 | 27 | for (let i = 0; i < n; ++i) {
|
24 | 28 | array.push({ dirname: '', filename: '', i: 0 });
|
25 | 29 | }
|
26 | 30 |
|
27 | 31 | bench.start();
|
28 |
| - load(array, n).then((arr) => { |
| 32 | + load(array, n, valuesToRead).then((arr) => { |
29 | 33 | bench.end(n);
|
30 |
| - assert.strictEqual(arr[n - 1].filename, fileURLToPath(file)); |
| 34 | + if (valuesToRead.includes('dirname')) assert.strictEqual(arr[n - 1].dirname, fixtureDir); |
| 35 | + if (valuesToRead.includes('filename')) assert.strictEqual(arr[n - 1].filename, path.join(fixtureDir, `import-meta-${valuesToRead}.mjs`)); |
31 | 36 | });
|
32 | 37 | }
|
0 commit comments