test: fix failure in test/sequential/test-heapdump.js

The test was failing when it was being run with superuser privileges,
so this changes the test from attempting to write to a read-only file to
attempting to write to a file with the same name as that of an existing
directory, as that is a more reliable way of making
v8.writeHeapSnapshot() throw even when run with sudo.

Fixes: https://github.com/nodejs/node/issues/41643
Signed-off-by: Darshan Sen <raisinten@gmail.com>

PR-URL: https://github.com/nodejs/node/pull/41772
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com>
This commit is contained in:
Darshan Sen
2022-03-15 00:03:09 +05:30
committed by GitHub
parent afcfaa07ac
commit 82181bb9b8

View File

@@ -25,13 +25,15 @@ process.chdir(tmpdir.path);
}
{
const readonlyFile = 'ro';
fs.writeFileSync(readonlyFile, Buffer.alloc(0), { mode: 0o444 });
const directory = 'directory';
fs.mkdirSync(directory);
assert.throws(() => {
writeHeapSnapshot(readonlyFile);
writeHeapSnapshot(directory);
}, (e) => {
assert.ok(e, 'writeHeapSnapshot should error');
assert.strictEqual(e.code, 'EACCES');
// TODO(RaisinTen): This should throw EISDIR on Windows too.
assert.strictEqual(e.code,
process.platform === 'win32' ? 'EACCES' : 'EISDIR');
assert.strictEqual(e.syscall, 'open');
return true;
});