diff --git a/test/common.js b/test/common.js index 1ef491e4033d27..1e85d3db33be48 100644 --- a/test/common.js +++ b/test/common.js @@ -179,6 +179,16 @@ exports.spawnPwd = function(options) { } }; +exports.platformTimeout = function(ms) { + if (process.arch !== 'arm') + return ms; + + if (process.config.variables.arm_version === '6') + return 6 * ms; // ARMv6 + + return 2 * ms; // ARMv7 and up. +}; + var knownGlobals = [setTimeout, setInterval, setImmediate, diff --git a/test/parallel/test-child-process-fork-net2.js b/test/parallel/test-child-process-fork-net2.js index 171abb729a4751..c69fe84eadd787 100644 --- a/test/parallel/test-child-process-fork-net2.js +++ b/test/parallel/test-child-process-fork-net2.js @@ -128,13 +128,13 @@ if (process.argv[2] === 'child') { server.listen(common.PORT, '127.0.0.1'); - var timeElasped = 0; + var timeElapsed = 0; var closeServer = function() { console.error('[m] closeServer'); var startTime = Date.now(); server.on('close', function() { console.error('[m] emit(close)'); - timeElasped = Date.now() - startTime; + timeElapsed = Date.now() - startTime; }); console.error('[m] calling server.close'); @@ -149,11 +149,14 @@ if (process.argv[2] === 'child') { }, 200); }; + var min = 190; + var max = common.platformTimeout(1500); process.on('exit', function() { assert.equal(disconnected, count); assert.equal(connected, count); assert.ok(closeEmitted); - assert.ok(timeElasped >= 190 && timeElasped <= 1000, - 'timeElasped was not between 190 and 1000 ms'); + assert.ok(timeElapsed >= min && timeElapsed <= max, + `timeElapsed was not between ${min} and ${max} ms:` + + `${timeElapsed}`); }); } diff --git a/test/parallel/test-debug-signal-cluster.js b/test/parallel/test-debug-signal-cluster.js index 026e2932622e13..c8b03875908a5a 100644 --- a/test/parallel/test-debug-signal-cluster.js +++ b/test/parallel/test-debug-signal-cluster.js @@ -51,7 +51,7 @@ function onNoMoreLines() { setTimeout(function testTimedOut() { assert(false, 'test timed out.'); -}, 6000).unref(); +}, common.platformTimeout(3000)).unref(); process.on('exit', function onExit() { // Kill processes in reverse order to avoid timing problems on Windows where diff --git a/test/parallel/test-fs-empty-readStream.js b/test/parallel/test-fs-empty-readStream.js index bd6e1912977afc..0c470076da7df1 100644 --- a/test/parallel/test-fs-empty-readStream.js +++ b/test/parallel/test-fs-empty-readStream.js @@ -22,7 +22,7 @@ fs.open(emptyFile, 'r', function (error, fd) { setTimeout(function () { assert.equal(readEmit, true); - }, 50); + }, common.platformTimeout(50)); }); fs.open(emptyFile, 'r', function (error, fd) { @@ -43,5 +43,5 @@ fs.open(emptyFile, 'r', function (error, fd) { setTimeout(function () { assert.equal(readEmit, false); - }, 50); + }, common.platformTimeout(50)); }); diff --git a/test/parallel/test-http-end-throw-socket-handling.js b/test/parallel/test-http-end-throw-socket-handling.js index a8566beac8cbd7..92a5ae6a38d0fb 100644 --- a/test/parallel/test-http-end-throw-socket-handling.js +++ b/test/parallel/test-http-end-throw-socket-handling.js @@ -32,7 +32,7 @@ server.listen(common.PORT, function() { setTimeout(function() { process.removeListener('uncaughtException', catcher); throw new Error('Taking too long!'); -}, 1000).unref(); +}, common.platformTimeout(1000)).unref(); process.on('uncaughtException', catcher); var errors = 0; diff --git a/test/parallel/test-repl-timeout-throw.js b/test/parallel/test-repl-timeout-throw.js index f171341345179e..eea2bea3ac9389 100644 --- a/test/parallel/test-repl-timeout-throw.js +++ b/test/parallel/test-repl-timeout-throw.js @@ -44,7 +44,7 @@ child.stdout.once('data', function() { ' });\n' + '});"";\n'); - setTimeout(child.stdin.end.bind(child.stdin), 200); + setTimeout(child.stdin.end.bind(child.stdin), common.platformTimeout(200)); } }); diff --git a/test/parallel/test-tls-fast-writing.js b/test/parallel/test-tls-fast-writing.js index 7fd3c8f9dcd95e..e9245aa0d5eae1 100644 --- a/test/parallel/test-tls-fast-writing.js +++ b/test/parallel/test-tls-fast-writing.js @@ -22,7 +22,7 @@ var gotDrain = false; var timer = setTimeout(function() { console.log('not ok - timed out'); process.exit(1); -}, 500); +}, common.platformTimeout(500)); function onconnection(conn) { conn.on('data', function(c) { diff --git a/test/parallel/test-tls-wrap-timeout.js b/test/parallel/test-tls-wrap-timeout.js index 7bb5bb1b0dffb7..3013f68886597f 100644 --- a/test/parallel/test-tls-wrap-timeout.js +++ b/test/parallel/test-tls-wrap-timeout.js @@ -27,7 +27,9 @@ var server = tls.createServer(options, function(c) { server.listen(common.PORT, function() { var socket = net.connect(common.PORT, function() { - socket.setTimeout(240, assert.fail); + socket.setTimeout(common.platformTimeout(240), function() { + throw new Error('timeout'); + }); var tsocket = tls.connect({ socket: socket, diff --git a/test/sequential/test-force-repl.js b/test/sequential/test-force-repl.js index fa17297ad257b2..c0ad1484ff25cc 100644 --- a/test/sequential/test-force-repl.js +++ b/test/sequential/test-force-repl.js @@ -7,7 +7,7 @@ var cp = spawn(process.execPath, ['-i']); var gotToEnd = false; var timeoutId = setTimeout(function() { throw new Error('timeout!'); -}, 1000); // give node + the repl 1 second to boot up +}, common.platformTimeout(1000)); // give node + the repl 1 second to boot up cp.stdout.setEncoding('utf8'); diff --git a/test/sequential/test-net-GH-5504.js b/test/sequential/test-net-GH-5504.js index ef2e1ceb29bebf..2ee0a1d86d7af3 100644 --- a/test/sequential/test-net-GH-5504.js +++ b/test/sequential/test-net-GH-5504.js @@ -72,7 +72,7 @@ function parent() { setTimeout(function() { throw new Error('hang'); }); - }, 4000).unref(); + }, common.platformTimeout(2000)).unref(); var s = spawn(node, [__filename, 'server'], opt); var c; diff --git a/tools/test.py b/tools/test.py index efb2ed7f3ce4ef..1de2661dc3a2b8 100755 --- a/tools/test.py +++ b/tools/test.py @@ -729,8 +729,9 @@ def GetTestStatus(self, context, sections, defs): 'debug' : ['--enable-slow-asserts', '--debug-code', '--verify-heap'], 'release' : []} TIMEOUT_SCALEFACTOR = { - 'arm' : { 'debug' : 8, 'release' : 2 }, # The ARM buildbots are slow. - 'ia32' : { 'debug' : 4, 'release' : 1 } } + 'armv6' : { 'debug' : 12, 'release' : 3 }, # The ARM buildbots are slow. + 'arm' : { 'debug' : 8, 'release' : 2 }, + 'ia32' : { 'debug' : 4, 'release' : 1 } } class Context(object): diff --git a/tools/utils.py b/tools/utils.py index 2b312a2e103d08..03c56aefb85b59 100644 --- a/tools/utils.py +++ b/tools/utils.py @@ -73,7 +73,9 @@ def GuessOS(): def GuessArchitecture(): id = platform.machine() id = id.lower() # Windows 7 capitalizes 'AMD64'. - if id.startswith('arm') or id == 'aarch64': + if id.startswith('armv6'): # Can return 'armv6l'. + return 'armv6' + elif id.startswith('arm') or id == 'aarch64': return 'arm' elif (not id) or (not re.match('(x|i[3-6])86$', id) is None): return 'ia32'