mirror of
https://github.com/nodejs/node.git
synced 2026-10-14 10:26:26 -04:00
test: fix unreliable test-fs-stat-bigint
Remove side-effects between testcases by creating a new file everytime. Fixes: https://github.com/nodejs/node/issues/21948 PR-URL: https://github.com/nodejs/node/pull/21949 Reviewed-By: Rich Trott <rtrott@gmail.com> Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
This commit is contained in:
1 parent
838001d4b3
commit
4d94bb2b1f
1 file changed
+29
-15
@@ -10,13 +10,12 @@ const { isDate } = require('util').types;
|
||||
|
||||
tmpdir.refresh();
|
||||
|
||||
const fn = path.join(tmpdir.path, 'test-file');
|
||||
fs.writeFileSync(fn, 'test');
|
||||
let testIndex = 0;
|
||||
|
||||
let link;
|
||||
if (!common.isWindows) {
|
||||
link = path.join(tmpdir.path, 'symbolic-link');
|
||||
fs.symlinkSync(fn, link);
|
||||
function getFilename() {
|
||||
const filename = path.join(tmpdir.path, `test-file-${++testIndex}`);
|
||||
fs.writeFileSync(filename, 'test');
|
||||
return filename;
|
||||
}
|
||||
|
||||
function verifyStats(bigintStats, numStats) {
|
||||
@@ -74,19 +73,24 @@ function verifyStats(bigintStats, numStats) {
|
||||
}
|
||||
|
||||
{
|
||||
const bigintStats = fs.statSync(fn, { bigint: true });
|
||||
const numStats = fs.statSync(fn);
|
||||
const filename = getFilename();
|
||||
const bigintStats = fs.statSync(filename, { bigint: true });
|
||||
const numStats = fs.statSync(filename);
|
||||
verifyStats(bigintStats, numStats);
|
||||
}
|
||||
|
||||
if (!common.isWindows) {
|
||||
const filename = getFilename();
|
||||
const link = `${filename}-link`;
|
||||
fs.symlinkSync(filename, link);
|
||||
const bigintStats = fs.lstatSync(link, { bigint: true });
|
||||
const numStats = fs.lstatSync(link);
|
||||
verifyStats(bigintStats, numStats);
|
||||
}
|
||||
|
||||
{
|
||||
const fd = fs.openSync(fn, 'r');
|
||||
const filename = getFilename();
|
||||
const fd = fs.openSync(filename, 'r');
|
||||
const bigintStats = fs.fstatSync(fd, { bigint: true });
|
||||
const numStats = fs.fstatSync(fd);
|
||||
verifyStats(bigintStats, numStats);
|
||||
@@ -94,14 +98,18 @@ if (!common.isWindows) {
|
||||
}
|
||||
|
||||
{
|
||||
fs.stat(fn, { bigint: true }, (err, bigintStats) => {
|
||||
fs.stat(fn, (err, numStats) => {
|
||||
const filename = getFilename();
|
||||
fs.stat(filename, { bigint: true }, (err, bigintStats) => {
|
||||
fs.stat(filename, (err, numStats) => {
|
||||
verifyStats(bigintStats, numStats);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
if (!common.isWindows) {
|
||||
const filename = getFilename();
|
||||
const link = `${filename}-link`;
|
||||
fs.symlinkSync(filename, link);
|
||||
fs.lstat(link, { bigint: true }, (err, bigintStats) => {
|
||||
fs.lstat(link, (err, numStats) => {
|
||||
verifyStats(bigintStats, numStats);
|
||||
@@ -110,7 +118,8 @@ if (!common.isWindows) {
|
||||
}
|
||||
|
||||
{
|
||||
const fd = fs.openSync(fn, 'r');
|
||||
const filename = getFilename();
|
||||
const fd = fs.openSync(filename, 'r');
|
||||
fs.fstat(fd, { bigint: true }, (err, bigintStats) => {
|
||||
fs.fstat(fd, (err, numStats) => {
|
||||
verifyStats(bigintStats, numStats);
|
||||
@@ -120,13 +129,17 @@ if (!common.isWindows) {
|
||||
}
|
||||
|
||||
(async function() {
|
||||
const bigintStats = await promiseFs.stat(fn, { bigint: true });
|
||||
const numStats = await promiseFs.stat(fn);
|
||||
const filename = getFilename();
|
||||
const bigintStats = await promiseFs.stat(filename, { bigint: true });
|
||||
const numStats = await promiseFs.stat(filename);
|
||||
verifyStats(bigintStats, numStats);
|
||||
})();
|
||||
|
||||
if (!common.isWindows) {
|
||||
(async function() {
|
||||
const filename = getFilename();
|
||||
const link = `${filename}-link`;
|
||||
fs.symlinkSync(filename, link);
|
||||
const bigintStats = await promiseFs.lstat(link, { bigint: true });
|
||||
const numStats = await promiseFs.lstat(link);
|
||||
verifyStats(bigintStats, numStats);
|
||||
@@ -134,7 +147,8 @@ if (!common.isWindows) {
|
||||
}
|
||||
|
||||
(async function() {
|
||||
const handle = await promiseFs.open(fn, 'r');
|
||||
const filename = getFilename();
|
||||
const handle = await promiseFs.open(filename, 'r');
|
||||
const bigintStats = await handle.stat({ bigint: true });
|
||||
const numStats = await handle.stat();
|
||||
verifyStats(bigintStats, numStats);
|
||||
|
||||
Reference in new issue
Block a user