Skip to content

Commit af6b824

Browse files
sagulatitargos
sagulati
authored andcommitted
test: fix unreliable test-fs-stat-bigint
Remove side-effects between testcases by creating a new file everytime. Fixes: #21948 PR-URL: #21949 Reviewed-By: Rich Trott <[email protected]> Reviewed-By: Anna Henningsen <[email protected]> Reviewed-By: Luigi Pinca <[email protected]>
1 parent 793a5bb commit af6b824

File tree

1 file changed

+29
-15
lines changed

1 file changed

+29
-15
lines changed

test/parallel/test-fs-stat-bigint.js

+29-15
Original file line numberDiff line numberDiff line change
@@ -10,13 +10,12 @@ const { isDate } = require('util').types;
1010

1111
tmpdir.refresh();
1212

13-
const fn = path.join(tmpdir.path, 'test-file');
14-
fs.writeFileSync(fn, 'test');
13+
let testIndex = 0;
1514

16-
let link;
17-
if (!common.isWindows) {
18-
link = path.join(tmpdir.path, 'symbolic-link');
19-
fs.symlinkSync(fn, link);
15+
function getFilename() {
16+
const filename = path.join(tmpdir.path, `test-file-${++testIndex}`);
17+
fs.writeFileSync(filename, 'test');
18+
return filename;
2019
}
2120

2221
function verifyStats(bigintStats, numStats) {
@@ -74,34 +73,43 @@ function verifyStats(bigintStats, numStats) {
7473
}
7574

7675
{
77-
const bigintStats = fs.statSync(fn, { bigint: true });
78-
const numStats = fs.statSync(fn);
76+
const filename = getFilename();
77+
const bigintStats = fs.statSync(filename, { bigint: true });
78+
const numStats = fs.statSync(filename);
7979
verifyStats(bigintStats, numStats);
8080
}
8181

8282
if (!common.isWindows) {
83+
const filename = getFilename();
84+
const link = `${filename}-link`;
85+
fs.symlinkSync(filename, link);
8386
const bigintStats = fs.lstatSync(link, { bigint: true });
8487
const numStats = fs.lstatSync(link);
8588
verifyStats(bigintStats, numStats);
8689
}
8790

8891
{
89-
const fd = fs.openSync(fn, 'r');
92+
const filename = getFilename();
93+
const fd = fs.openSync(filename, 'r');
9094
const bigintStats = fs.fstatSync(fd, { bigint: true });
9195
const numStats = fs.fstatSync(fd);
9296
verifyStats(bigintStats, numStats);
9397
fs.closeSync(fd);
9498
}
9599

96100
{
97-
fs.stat(fn, { bigint: true }, (err, bigintStats) => {
98-
fs.stat(fn, (err, numStats) => {
101+
const filename = getFilename();
102+
fs.stat(filename, { bigint: true }, (err, bigintStats) => {
103+
fs.stat(filename, (err, numStats) => {
99104
verifyStats(bigintStats, numStats);
100105
});
101106
});
102107
}
103108

104109
if (!common.isWindows) {
110+
const filename = getFilename();
111+
const link = `${filename}-link`;
112+
fs.symlinkSync(filename, link);
105113
fs.lstat(link, { bigint: true }, (err, bigintStats) => {
106114
fs.lstat(link, (err, numStats) => {
107115
verifyStats(bigintStats, numStats);
@@ -110,7 +118,8 @@ if (!common.isWindows) {
110118
}
111119

112120
{
113-
const fd = fs.openSync(fn, 'r');
121+
const filename = getFilename();
122+
const fd = fs.openSync(filename, 'r');
114123
fs.fstat(fd, { bigint: true }, (err, bigintStats) => {
115124
fs.fstat(fd, (err, numStats) => {
116125
verifyStats(bigintStats, numStats);
@@ -120,21 +129,26 @@ if (!common.isWindows) {
120129
}
121130

122131
(async function() {
123-
const bigintStats = await promiseFs.stat(fn, { bigint: true });
124-
const numStats = await promiseFs.stat(fn);
132+
const filename = getFilename();
133+
const bigintStats = await promiseFs.stat(filename, { bigint: true });
134+
const numStats = await promiseFs.stat(filename);
125135
verifyStats(bigintStats, numStats);
126136
})();
127137

128138
if (!common.isWindows) {
129139
(async function() {
140+
const filename = getFilename();
141+
const link = `${filename}-link`;
142+
fs.symlinkSync(filename, link);
130143
const bigintStats = await promiseFs.lstat(link, { bigint: true });
131144
const numStats = await promiseFs.lstat(link);
132145
verifyStats(bigintStats, numStats);
133146
})();
134147
}
135148

136149
(async function() {
137-
const handle = await promiseFs.open(fn, 'r');
150+
const filename = getFilename();
151+
const handle = await promiseFs.open(filename, 'r');
138152
const bigintStats = await handle.stat({ bigint: true });
139153
const numStats = await handle.stat();
140154
verifyStats(bigintStats, numStats);

0 commit comments

Comments
 (0)