From b2d3db433dd5cb729ff81272fe9ccc4bd3a441a2 Mon Sep 17 00:00:00 2001 From: cjihrig Date: Sat, 5 May 2018 11:18:36 -0400 Subject: [PATCH] test: use common.canCreateSymLink() consistently This commit replaces two ad hoc symlink permission tests with common.canCreateSymLink(). PR-URL: https://github.com/nodejs/node/pull/20540 Reviewed-By: Ruben Bridgewater Reviewed-By: Anna Henningsen Reviewed-By: James M Snell --- test/parallel/test-fs-realpath.js | 21 ++------------------- test/parallel/test-trace-events-fs-sync.js | 17 ++--------------- 2 files changed, 4 insertions(+), 34 deletions(-) diff --git a/test/parallel/test-fs-realpath.js b/test/parallel/test-fs-realpath.js index 6cfd79cecfb694..d7efc748bc9662 100644 --- a/test/parallel/test-fs-realpath.js +++ b/test/parallel/test-fs-realpath.js @@ -27,11 +27,10 @@ const tmpdir = require('../common/tmpdir'); const assert = require('assert'); const fs = require('fs'); const path = require('path'); -const exec = require('child_process').exec; let async_completed = 0; let async_expected = 0; const unlink = []; -let skipSymlinks = false; +const skipSymlinks = !common.canCreateSymLink(); const tmpDir = tmpdir.path; tmpdir.refresh(); @@ -45,25 +44,9 @@ if (common.isWindows) { assert .strictEqual(path_left.toLowerCase(), path_right.toLowerCase(), message); }; - - // On Windows, creating symlinks requires admin privileges. - // We'll only try to run symlink test if we have enough privileges. - try { - exec('whoami /priv', function(err, o) { - if (err || !o.includes('SeCreateSymbolicLinkPrivilege')) { - skipSymlinks = true; - } - runTest(); - }); - } catch (er) { - // better safe than sorry - skipSymlinks = true; - process.nextTick(runTest); - } -} else { - process.nextTick(runTest); } +process.nextTick(runTest); function tmp(p) { return path.join(tmpDir, p); diff --git a/test/parallel/test-trace-events-fs-sync.js b/test/parallel/test-trace-events-fs-sync.js index 5bd9b99ba3fedf..60ab5efa3a1d3d 100644 --- a/test/parallel/test-trace-events-fs-sync.js +++ b/test/parallel/test-trace-events-fs-sync.js @@ -9,21 +9,8 @@ const traceFile = 'node_trace.1.log'; let gid = 1; let uid = 1; -let skipSymlinks = false; -// On Windows, creating symlinks requires admin privileges. -// We'll check if we have enough privileges. -if (common.isWindows) { - try { - const o = cp.execSync('whoami /priv'); - if (!o.includes('SeCreateSymbolicLinkPrivilege')) { - skipSymlinks = true; - } - } catch (er) { - // better safe than sorry - skipSymlinks = true; - } -} else { +if (!common.isWindows) { gid = process.getgid(); uid = process.getuid(); } @@ -111,7 +98,7 @@ tests['fs.sync.write'] = 'fs.writeFileSync("fs.txt", "123", "utf8");' + // On windows, we need permissions to test symlink and readlink. // We'll only try to run these tests if we have enough privileges. -if (!skipSymlinks) { +if (common.canCreateSymLink()) { tests['fs.sync.symlink'] = 'fs.writeFileSync("fs.txt", "123", "utf8");' + 'fs.symlinkSync("fs.txt", "linkx");' + 'fs.unlinkSync("linkx");' +