summaryrefslogtreecommitdiff
path: root/deps/npm/node_modules/libcipm/node_modules/worker-farm/tests/child.js
diff options
context:
space:
mode:
authorFallenRiteMonk <fallenritemonk@gmail.com>2018-04-05 11:52:34 -0400
committerMyles Borins <mylesborins@google.com>2018-04-05 16:01:07 -0400
commit25a816dcda7b1db0929501acfe13f2fe5119759b (patch)
treed3df4377a11dfb643b5976d2048d9bb4ee527903 /deps/npm/node_modules/libcipm/node_modules/worker-farm/tests/child.js
parentb29c36b80746733994257b7380245102bc3c4cd6 (diff)
downloadandroid-node-v8-25a816dcda7b1db0929501acfe13f2fe5119759b.tar.gz
android-node-v8-25a816dcda7b1db0929501acfe13f2fe5119759b.tar.bz2
android-node-v8-25a816dcda7b1db0929501acfe13f2fe5119759b.zip
deps: upgrade npm to 5.8.0
PR-URL: https://github.com/nodejs/node/pull/19560 Fixes: https://github.com/nodejs/node/issues/19271 Reviewed-By: Michaƫl Zasso <targos@protonmail.com> Reviewed-By: Myles Borins <myles.borins@gmail.com>
Diffstat (limited to 'deps/npm/node_modules/libcipm/node_modules/worker-farm/tests/child.js')
-rw-r--r--deps/npm/node_modules/libcipm/node_modules/worker-farm/tests/child.js85
1 files changed, 85 insertions, 0 deletions
diff --git a/deps/npm/node_modules/libcipm/node_modules/worker-farm/tests/child.js b/deps/npm/node_modules/libcipm/node_modules/worker-farm/tests/child.js
new file mode 100644
index 0000000000..85e8f5789e
--- /dev/null
+++ b/deps/npm/node_modules/libcipm/node_modules/worker-farm/tests/child.js
@@ -0,0 +1,85 @@
+'use strict'
+
+const fs = require('fs')
+const started = Date.now()
+
+
+module.exports = function (timeout, callback) {
+ callback = callback.bind(null, null, process.pid, Math.random(), timeout)
+ if (timeout)
+ return setTimeout(callback, timeout)
+ callback()
+}
+
+
+module.exports.args = function (callback) {
+ console.log(process.argv)
+ console.log(process.execArgv)
+ callback()
+}
+
+
+module.exports.run0 = function (callback) {
+ module.exports(0, callback)
+}
+
+
+module.exports.killable = function (id, callback) {
+ if (Math.random() < 0.5)
+ return process.exit(-1)
+ callback(null, id, process.pid)
+}
+
+
+module.exports.err = function (type, message, data, callback) {
+ if (typeof data == 'function') {
+ callback = data
+ data = null
+ } else {
+ let err = new Error(message)
+ Object.keys(data).forEach(function(key) {
+ err[key] = data[key]
+ })
+ callback(err)
+ return
+ }
+
+ if (type == 'TypeError')
+ return callback(new TypeError(message))
+ callback(new Error(message))
+}
+
+
+module.exports.block = function () {
+ while (true);
+}
+
+
+// use provided file path to save retries count among terminated workers
+module.exports.stubborn = function (path, callback) {
+ function isOutdated(path) {
+ return ((new Date).getTime() - fs.statSync(path).mtime.getTime()) > 2000
+ }
+
+ // file may not be properly deleted, check if modified no earler than two seconds ago
+ if (!fs.existsSync(path) || isOutdated(path)) {
+ fs.writeFileSync(path, '1')
+ process.exit(-1)
+ }
+
+ let retry = parseInt(fs.readFileSync(path, 'utf8'))
+ if (Number.isNaN(retry))
+ return callback(new Error('file contents is not a number'))
+
+ if (retry > 4) {
+ callback(null, 12)
+ } else {
+ fs.writeFileSync(path, String(retry + 1))
+ process.exit(-1)
+ }
+}
+
+
+module.exports.uptime = function (callback) {
+ callback(null, Date.now() - started)
+}