UNPKG

compound-ex4

Version:

Compound-ex4 - MVC framework for NodeJS (ExpressJs 4 version), fork compoundjs(https://github.com/1602/compound)

71 lines (64 loc) 1.67 kB
var test = require('../').test var Runner = require('../lib/tap-runner.js') var TC = require('../lib/tap-consumer.js') var fs = require('fs') var path = require('path') var spawn = require('child_process').spawn var segv = 'int main (void) {\n' + ' char *s = "hello world";\n' + ' *s = \'H\';\n' + '}\n' var compiled = false test('setup', function (t) { fs.writeFile('segv.c', segv, 'utf8', function (er) { if (er) throw er var cp = spawn('gcc', ['segv.c', '-o', 'segv']) cp.on('exit', function (code, sig) { if (code !== 0) { t.bailout('failed to compile segv program') return } t.pass('compiled seg faulter') t.end() }) }) }) test('segv', function (t) { var r = new Runner({argv:{remain:['./segv']}}) var tc = new TC() var expect = [ 'TAP version 13' , './segv' , { 'id': 1, 'ok': false, 'name': ' ././segv', 'exit': null, 'timedOut': true, 'signal': process.platform === 'linux' ? 'SIGSEGV' : 'SIGTERM', 'command': '"' + path.resolve('./segv') + '"' } , 'tests 1' , 'fail 1' ] r.pipe(tc) tc.on('data', function (d) { var e = expect.shift() // specific signal can be either term or bus if (d.signal && e.signal) e.signal = d.signal === "SIGTERM" || d.signal === "SIGBUS" ? d.signal : e.signal t.same(d, e) }) tc.on('end', function () { t.equal(expect.length, 0) t.end() }) }) test('cleanup', function (t) { fs.unlink('segv.c', function () { fs.unlink('segv', function () { t.pass('cleaned up') t.end() }) }) })