mirror of
https://github.com/nodejs/node.git
synced 2024-11-21 10:59:27 +00:00
test: disambiguate AIX and IBM i
When built with Python 3.9 on IBM i, `process.platform` will return `os400` instead of `aix`. In preparation for this, make `common.isAIX` only return true for AIX and update the tests to add checks for `common.isIBMi` where they were missing. PR-URL: https://github.com/nodejs/node/pull/48056 Refs: https://github.com/nodejs/node/pull/46739 Refs: https://github.com/nodejs/build/pull/3358 Reviewed-By: Moshe Atlow <moshe@atlow.co.il> Reviewed-By: Michael Dawson <midawson@redhat.com> Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
This commit is contained in:
parent
53b5545672
commit
035e06317a
@ -78,6 +78,7 @@ if (process.argv[2] === 'child') {
|
||||
|
||||
if (!(common.isFreeBSD ||
|
||||
common.isAIX ||
|
||||
common.isIBMi ||
|
||||
(common.isLinux && !isGlibc()) ||
|
||||
common.isWindows)) {
|
||||
assert(stderr.includes('ExampleOwnerClass'), stderr);
|
||||
|
@ -123,7 +123,6 @@ if (process.argv.length === 2 &&
|
||||
}
|
||||
|
||||
const isWindows = process.platform === 'win32';
|
||||
const isAIX = process.platform === 'aix';
|
||||
const isSunOS = process.platform === 'sunos';
|
||||
const isFreeBSD = process.platform === 'freebsd';
|
||||
const isOpenBSD = process.platform === 'openbsd';
|
||||
@ -274,7 +273,7 @@ function platformTimeout(ms) {
|
||||
if (process.features.debug)
|
||||
ms = multipliers.two * ms;
|
||||
|
||||
if (isAIX)
|
||||
if (exports.isAIX || exports.isIBMi)
|
||||
return multipliers.two * ms; // Default localhost speed is slower on AIX
|
||||
|
||||
if (isPi)
|
||||
@ -928,7 +927,6 @@ const common = {
|
||||
hasQuic,
|
||||
hasMultiLocalhost,
|
||||
invalidArgTypeHelper,
|
||||
isAIX,
|
||||
isAlive,
|
||||
isAsan,
|
||||
isDumbTerminal,
|
||||
@ -999,7 +997,12 @@ const common = {
|
||||
},
|
||||
|
||||
// On IBMi, process.platform and os.platform() both return 'aix',
|
||||
// when built with Python versions earlier than 3.9.
|
||||
// It is not enough to differentiate between IBMi and real AIX system.
|
||||
get isAIX() {
|
||||
return require('os').type() === 'AIX';
|
||||
},
|
||||
|
||||
get isIBMi() {
|
||||
return require('os').type() === 'OS400';
|
||||
},
|
||||
|
@ -5,7 +5,7 @@
|
||||
const common = require('../common');
|
||||
const assert = require('assert');
|
||||
|
||||
if (common.isSunOS || common.isWindows || common.isAIX) {
|
||||
if (common.isSunOS || common.isWindows || common.isAIX || common.isIBMi) {
|
||||
// The current working directory cannot be removed on these platforms.
|
||||
// Change this to common.skip() when this is no longer a known issue test.
|
||||
assert.fail('cannot rmdir current working directory');
|
||||
|
@ -1,7 +1,7 @@
|
||||
'use strict';
|
||||
const common = require('../common');
|
||||
// Fails with EINVAL on SmartOS, EBUSY on Windows, EBUSY on AIX.
|
||||
if (common.isSunOS || common.isWindows || common.isAIX)
|
||||
if (common.isSunOS || common.isWindows || common.isAIX || common.isIBMi)
|
||||
common.skip('cannot rmdir current working directory');
|
||||
if (!common.isMainThread)
|
||||
common.skip('process.chdir is not available in Workers');
|
||||
|
@ -1,7 +1,7 @@
|
||||
'use strict';
|
||||
const common = require('../common');
|
||||
// Fails with EINVAL on SmartOS, EBUSY on Windows, EBUSY on AIX.
|
||||
if (common.isSunOS || common.isWindows || common.isAIX)
|
||||
if (common.isSunOS || common.isWindows || common.isAIX || common.isIBMi)
|
||||
common.skip('cannot rmdir current working directory');
|
||||
if (!common.isMainThread)
|
||||
common.skip('process.chdir is not available in Workers');
|
||||
|
@ -1,7 +1,7 @@
|
||||
'use strict';
|
||||
const common = require('../common');
|
||||
// Fails with EINVAL on SmartOS, EBUSY on Windows, EBUSY on AIX.
|
||||
if (common.isSunOS || common.isWindows || common.isAIX)
|
||||
if (common.isSunOS || common.isWindows || common.isAIX || common.isIBMi)
|
||||
common.skip('cannot rmdir current working directory');
|
||||
if (!common.isMainThread)
|
||||
common.skip('process.chdir is not available in Workers');
|
||||
|
@ -3,7 +3,7 @@ const common = require('../common');
|
||||
|
||||
// Simulate `cat readfile.js | node readfile.js`
|
||||
|
||||
if (common.isWindows || common.isAIX)
|
||||
if (common.isWindows || common.isAIX || common.isIBMi)
|
||||
common.skip(`No /dev/stdin on ${process.platform}.`);
|
||||
|
||||
const assert = require('assert');
|
||||
|
@ -24,7 +24,7 @@ const common = require('../common');
|
||||
|
||||
// Simulate `cat readfile.js | node readfile.js`
|
||||
|
||||
if (common.isWindows || common.isAIX)
|
||||
if (common.isWindows || common.isAIX || common.isIBMi)
|
||||
common.skip(`No /dev/stdin on ${process.platform}.`);
|
||||
|
||||
const assert = require('assert');
|
||||
|
@ -3,7 +3,7 @@ const common = require('../common');
|
||||
|
||||
// Simulate `cat readfile.js | node readfile.js`
|
||||
|
||||
if (common.isWindows || common.isAIX)
|
||||
if (common.isWindows || common.isAIX || common.isIBMi)
|
||||
common.skip(`No /dev/stdin on ${process.platform}.`);
|
||||
|
||||
const assert = require('assert');
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
const common = require('../common');
|
||||
|
||||
if (common.isWindows || common.isAIX)
|
||||
if (common.isWindows || common.isAIX || common.isIBMi)
|
||||
common.skip(`No /dev/stdin on ${process.platform}.`);
|
||||
|
||||
const assert = require('assert');
|
||||
|
@ -39,7 +39,7 @@ function stat_resource(resource, statSync = fs.statSync) {
|
||||
const stats = fs.fstatSync(resource);
|
||||
// Ensure mtime has been written to disk
|
||||
// except for directories on AIX where it cannot be synced
|
||||
if (common.isAIX && stats.isDirectory())
|
||||
if ((common.isAIX || common.isIBMi) && stats.isDirectory())
|
||||
return stats;
|
||||
fs.fsyncSync(resource);
|
||||
return fs.fstatSync(resource);
|
||||
|
@ -81,11 +81,14 @@ const hostname = os.hostname();
|
||||
is.string(hostname);
|
||||
assert.ok(hostname.length > 0);
|
||||
|
||||
const DUMMY_PRIORITY = 10;
|
||||
os.setPriority(DUMMY_PRIORITY);
|
||||
const priority = os.getPriority();
|
||||
is.number(priority);
|
||||
assert.strictEqual(priority, DUMMY_PRIORITY);
|
||||
// IBMi process priority is different.
|
||||
if (!common.isIBMi) {
|
||||
const DUMMY_PRIORITY = 10;
|
||||
os.setPriority(DUMMY_PRIORITY);
|
||||
const priority = os.getPriority();
|
||||
is.number(priority);
|
||||
assert.strictEqual(priority, DUMMY_PRIORITY);
|
||||
}
|
||||
|
||||
// On IBMi, os.uptime() returns 'undefined'
|
||||
if (!common.isIBMi) {
|
||||
|
@ -17,7 +17,7 @@ assert.throws(() => {
|
||||
}, ({ name, code, message }) => {
|
||||
assert.strictEqual(name, 'Error');
|
||||
assert.strictEqual(code, 'ERR_DLOPEN_FAILED');
|
||||
if (!common.isAIX) {
|
||||
if (!common.isAIX && !common.isIBMi) {
|
||||
assert.match(message, /foo-%s\.node/);
|
||||
}
|
||||
return true;
|
||||
|
Loading…
Reference in New Issue
Block a user