diff options
| author | 8cy <[email protected]> | 2020-04-03 02:37:42 -0700 |
|---|---|---|
| committer | 8cy <[email protected]> | 2020-04-03 02:37:42 -0700 |
| commit | 60867fb030bae582082340ead7dbc7efdc2f5398 (patch) | |
| tree | 4c6a7356351be2e4914e15c4703172597c45656e /node_modules/spawn-sync/test | |
| parent | commenting (diff) | |
| download | s5nical-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.js | 91 | ||||
| -rw-r--r-- | node_modules/spawn-sync/test/test-empty.js | 0 | ||||
| -rw-r--r-- | node_modules/spawn-sync/test/test-spawn-fail.js | 9 | ||||
| -rw-r--r-- | node_modules/spawn-sync/test/test-spawn-timeout.js | 3 | ||||
| -rw-r--r-- | node_modules/spawn-sync/test/test-spawn.js | 5 |
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 |