summaryrefslogtreecommitdiff
path: root/node_modules/spawn-sync/test
diff options
context:
space:
mode:
author8cy <[email protected]>2020-04-03 02:37:42 -0700
committer8cy <[email protected]>2020-04-03 02:37:42 -0700
commit60867fb030bae582082340ead7dbc7efdc2f5398 (patch)
tree4c6a7356351be2e4914e15c4703172597c45656e /node_modules/spawn-sync/test
parentcommenting (diff)
downloads5nical-60867fb030bae582082340ead7dbc7efdc2f5398.tar.xz
s5nical-60867fb030bae582082340ead7dbc7efdc2f5398.zip
2020/04/03, 02:34, v1.2.0
Diffstat (limited to 'node_modules/spawn-sync/test')
-rw-r--r--node_modules/spawn-sync/test/index.js91
-rw-r--r--node_modules/spawn-sync/test/test-empty.js0
-rw-r--r--node_modules/spawn-sync/test/test-spawn-fail.js9
-rw-r--r--node_modules/spawn-sync/test/test-spawn-timeout.js3
-rw-r--r--node_modules/spawn-sync/test/test-spawn.js5
5 files changed, 108 insertions, 0 deletions
diff --git a/node_modules/spawn-sync/test/index.js b/node_modules/spawn-sync/test/index.js
new file mode 100644
index 0000000..cc12854
--- /dev/null
+++ b/node_modules/spawn-sync/test/index.js
@@ -0,0 +1,91 @@
+'use strict';
+
+var assert = require('assert');
+var vm = require('vm');
+var fs = require('fs');
+var path = require('path');
+var sleep = require('try-thread-sleep');
+
+function testSpawn(spawn) {
+ var result = spawn("node", [__dirname + '/test-spawn.js'], {input: 'my-output'});
+ assert(result.status === 0);
+ assert(Buffer.isBuffer(result.stdout));
+ assert(Buffer.isBuffer(result.stderr));
+ assert(result.stdout.toString() === 'output written');
+ assert(result.stderr.toString() === 'error log exists');
+ assert(fs.readFileSync(__dirname + '/output.txt', 'utf8') === 'my-output');
+ fs.unlinkSync(__dirname + '/output.txt');
+
+ var result = spawn("node", [__dirname + '/test-spawn.js'], {
+ input: 'my-output',
+ encoding: 'utf-8'
+ });
+ assert(result.status === 0);
+ assert(result.stdout === 'output written');
+ assert(result.stderr === 'error log exists');
+ assert.deepEqual(result.output, [null, 'output written', 'error log exists']);
+ assert(fs.readFileSync(__dirname + '/output.txt', 'utf8') === 'my-output');
+ fs.unlinkSync(__dirname + '/output.txt');
+
+ var result = spawn("node", [__dirname + '/test-spawn-fail.js'], {input: 'my-output'});
+ assert(result.status === 13);
+ assert(Buffer.isBuffer(result.stdout));
+ assert(Buffer.isBuffer(result.stderr));
+ assert(result.stdout.toString() === 'output written');
+ assert(result.stderr.toString() === 'error log exists');
+ assert(fs.readFileSync(__dirname + '/output.txt', 'utf8') === 'my-output');
+ fs.unlinkSync(__dirname + '/output.txt');
+
+ var result = spawn("node", [__dirname + '/test-empty.js'], {input: 'my-output'});
+ assert(result.status === 0);
+ assert(Buffer.isBuffer(result.stdout));
+ assert(Buffer.isBuffer(result.stderr));
+ assert(result.stdout.toString() === '');
+ assert(result.stderr.toString() === '');
+
+ var result = spawn("node", [__dirname + '/test-empty.js'], { stdio: ['pipe', 'ignore', 'pipe']});
+ assert(result.status === 0);
+ assert(Buffer.isBuffer(result.stderr));
+ assert(result.stdout == null);
+ assert(result.stderr.toString() === '');
+
+ var result = spawn("node", [__dirname + '/test-empty.js'], { stdio: ['pipe', 'pipe', 'ignore']});
+ assert(result.status === 0);
+ assert(Buffer.isBuffer(result.stdout));
+ assert(result.stdout.toString() === '');
+ assert(result.stderr == null);
+
+ var result = spawn("node", [__dirname + '/test-empty.js'], { stdio: ['ignore', 'pipe', 'pipe']});
+ assert(result.status === 0);
+ assert(Buffer.isBuffer(result.stdout));
+ assert(Buffer.isBuffer(result.stderr));
+ assert(result.stdout.toString() === '');
+ assert(result.stderr.toString() === '');
+
+ // This suprisingly fails for the official API
+ /*
+ var start = Date.now();
+ var result = spawn("node", [__dirname + '/test-spawn-timeout.js'], {timeout: 100});
+ console.dir(result);
+ var end = Date.now();
+ assert((end - start) < 200);
+ */
+
+ console.log('test pass');
+}
+
+if (sleep.native) {
+ console.log('Using native thread-sleep');
+} else {
+ console.log('Using busy waiting');
+}
+if (require('child_process').spawnSync) {
+ console.log('# Test built in node API');
+ testSpawn(require('child_process').spawnSync);
+} else {
+ console.log('# SKIP Test built in node API');
+}
+console.log('# Test fallback operation');
+testSpawn(require('../lib/spawn-sync'));
+
+console.log('All tests passed');
diff --git a/node_modules/spawn-sync/test/test-empty.js b/node_modules/spawn-sync/test/test-empty.js
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/node_modules/spawn-sync/test/test-empty.js
diff --git a/node_modules/spawn-sync/test/test-spawn-fail.js b/node_modules/spawn-sync/test/test-spawn-fail.js
new file mode 100644
index 0000000..4331a01
--- /dev/null
+++ b/node_modules/spawn-sync/test/test-spawn-fail.js
@@ -0,0 +1,9 @@
+'use strict';
+
+process.stdin.pipe(require('fs').createWriteStream(__dirname + '/output.txt')).on('close', function () {
+ setTimeout(function () {
+ process.exit(13);
+ }, 500);
+});
+process.stdout.write('output written');
+process.stderr.write('error log exists');
diff --git a/node_modules/spawn-sync/test/test-spawn-timeout.js b/node_modules/spawn-sync/test/test-spawn-timeout.js
new file mode 100644
index 0000000..226fc21
--- /dev/null
+++ b/node_modules/spawn-sync/test/test-spawn-timeout.js
@@ -0,0 +1,3 @@
+setTimeout(function () {
+ // staying alive
+}, 60000); \ No newline at end of file
diff --git a/node_modules/spawn-sync/test/test-spawn.js b/node_modules/spawn-sync/test/test-spawn.js
new file mode 100644
index 0000000..469a080
--- /dev/null
+++ b/node_modules/spawn-sync/test/test-spawn.js
@@ -0,0 +1,5 @@
+'use strict';
+
+process.stdin.pipe(require('fs').createWriteStream(__dirname + '/output.txt'));
+process.stdout.write('output written');
+process.stderr.write('error log exists'); \ No newline at end of file