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>
pull/42333/head
Darshan Sen 2022-03-15 00:03:09 +05:30 committed by GitHub
parent afcfaa07ac
commit 82181bb9b8
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 6 additions and 4 deletions

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;
});