Browse Source

test,module: make message check MUI dependent

PR-URL: https://github.com/nodejs/node/pull/13393
Fixes: https://github.com/nodejs/node/issues/13376
Reviewed-By: Tobias Nießen <tniessen@tnie.de>
v6
Refael Ackermann 8 years ago
parent
commit
30a20bda7d
  1. 27
      test/parallel/test-module-loading-error.js

27
test/parallel/test-module-loading-error.js

@ -22,23 +22,38 @@
'use strict'; 'use strict';
const common = require('../common'); const common = require('../common');
const assert = require('assert'); const assert = require('assert');
const { execSync } = require('child_process');
const error_desc = { const errorMessagesByPlatform = {
win32: ['%1 is not a valid Win32 application'], win32: ['%1 is not a valid Win32 application'],
linux: ['file too short', 'Exec format error'], linux: ['file too short', 'Exec format error'],
sunos: ['unknown file type', 'not an ELF file'], sunos: ['unknown file type', 'not an ELF file'],
darwin: ['file too short'] darwin: ['file too short']
}; };
const dlerror_msg = error_desc[process.platform]; // If we don't know a priori what the error would be, we accept anything.
const errorMessages = errorMessagesByPlatform[process.platform] || [''];
// On Windows, error messages are MUI dependent
// Ref: https://github.com/nodejs/node/issues/13376
let localeOk = true;
if (common.isWindows) {
const powerShellFindMUI =
'powershell -NoProfile -ExecutionPolicy Unrestricted -c ' +
'"(Get-UICulture).TwoLetterISOLanguageName"';
try {
// If MUI != 'en' we'll ignore the content of the message
localeOk = execSync(powerShellFindMUI).toString('utf8').trim() === 'en';
} catch (_) {
// It's only a best effort try to find the MUI
}
}
assert.throws( assert.throws(
() => { require('../fixtures/module-loading-error.node'); }, () => { require('../fixtures/module-loading-error.node'); },
(e) => { (e) => {
if (dlerror_msg && !dlerror_msg.some((msg) => e.message.includes(msg))) if (localeOk && !errorMessages.some((msg) => e.message.includes(msg)))
return false;
if (e.name !== 'Error')
return false; return false;
return true; return e.name === 'Error';
} }
); );

Loading…
Cancel
Save