1'use strict'; 2const common = require('../common'); 3const fixtures = require('../common/fixtures'); 4const assert = require('assert'); 5const fs = require('fs'); 6 7const string_dir = fs.realpathSync(fixtures.fixturesDir); 8const buffer_dir = Buffer.from(string_dir); 9 10const encodings = ['ascii', 'utf8', 'utf16le', 'ucs2', 11 'base64', 'binary', 'hex']; 12const expected = {}; 13encodings.forEach((encoding) => { 14 expected[encoding] = buffer_dir.toString(encoding); 15}); 16 17 18// test sync version 19let encoding; 20for (encoding in expected) { 21 const expected_value = expected[encoding]; 22 let result; 23 24 result = fs.realpathSync(string_dir, { encoding }); 25 assert.strictEqual(result, expected_value); 26 27 result = fs.realpathSync(string_dir, encoding); 28 assert.strictEqual(result, expected_value); 29 30 result = fs.realpathSync(buffer_dir, { encoding }); 31 assert.strictEqual(result, expected_value); 32 33 result = fs.realpathSync(buffer_dir, encoding); 34 assert.strictEqual(result, expected_value); 35} 36 37let buffer_result; 38buffer_result = fs.realpathSync(string_dir, { encoding: 'buffer' }); 39assert.deepStrictEqual(buffer_result, buffer_dir); 40 41buffer_result = fs.realpathSync(string_dir, 'buffer'); 42assert.deepStrictEqual(buffer_result, buffer_dir); 43 44buffer_result = fs.realpathSync(buffer_dir, { encoding: 'buffer' }); 45assert.deepStrictEqual(buffer_result, buffer_dir); 46 47buffer_result = fs.realpathSync(buffer_dir, 'buffer'); 48assert.deepStrictEqual(buffer_result, buffer_dir); 49 50// test async version 51for (encoding in expected) { 52 const expected_value = expected[encoding]; 53 54 fs.realpath( 55 string_dir, 56 { encoding }, 57 common.mustCall((err, res) => { 58 assert.ifError(err); 59 assert.strictEqual(res, expected_value); 60 }) 61 ); 62 fs.realpath(string_dir, encoding, common.mustCall((err, res) => { 63 assert.ifError(err); 64 assert.strictEqual(res, expected_value); 65 })); 66 fs.realpath( 67 buffer_dir, 68 { encoding }, 69 common.mustCall((err, res) => { 70 assert.ifError(err); 71 assert.strictEqual(res, expected_value); 72 }) 73 ); 74 fs.realpath(buffer_dir, encoding, common.mustCall((err, res) => { 75 assert.ifError(err); 76 assert.strictEqual(res, expected_value); 77 })); 78} 79 80fs.realpath(string_dir, { encoding: 'buffer' }, common.mustCall((err, res) => { 81 assert.ifError(err); 82 assert.deepStrictEqual(res, buffer_dir); 83})); 84 85fs.realpath(string_dir, 'buffer', common.mustCall((err, res) => { 86 assert.ifError(err); 87 assert.deepStrictEqual(res, buffer_dir); 88})); 89 90fs.realpath(buffer_dir, { encoding: 'buffer' }, common.mustCall((err, res) => { 91 assert.ifError(err); 92 assert.deepStrictEqual(res, buffer_dir); 93})); 94 95fs.realpath(buffer_dir, 'buffer', common.mustCall((err, res) => { 96 assert.ifError(err); 97 assert.deepStrictEqual(res, buffer_dir); 98})); 99