You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
178 lines
5.0 KiB
178 lines
5.0 KiB
var utils = require('../lib/utils');
|
|
|
|
var path = require('path');
|
|
var assert = require('assert');
|
|
|
|
var t = -1;
|
|
var group = path.basename(__filename, '.js') + '/';
|
|
|
|
var tests = [
|
|
{ run: function() {
|
|
var what = this.what;
|
|
var r;
|
|
|
|
assert.strictEqual(r = utils.readInt(Buffer.from([0,0,0]), 0),
|
|
false,
|
|
makeMsg(what, 'Wrong result: ' + r));
|
|
next();
|
|
},
|
|
what: 'readInt - without stream callback - failure #1'
|
|
},
|
|
{ run: function() {
|
|
var what = this.what;
|
|
var r;
|
|
|
|
assert.strictEqual(r = utils.readInt(Buffer.from([]), 0),
|
|
false,
|
|
makeMsg(what, 'Wrong result: ' + r));
|
|
next();
|
|
},
|
|
what: 'readInt - without stream callback - failure #2'
|
|
},
|
|
{ run: function() {
|
|
var what = this.what;
|
|
var r;
|
|
|
|
assert.strictEqual(r = utils.readInt(Buffer.from([0,0,0,5]), 0),
|
|
5,
|
|
makeMsg(what, 'Wrong result: ' + r));
|
|
next();
|
|
},
|
|
what: 'readInt - without stream callback - success'
|
|
},
|
|
{ run: function() {
|
|
var what = this.what;
|
|
var callback = function() {};
|
|
var stream = {
|
|
_cleanup: function(cb) {
|
|
cleanupCalled = true;
|
|
assert(cb === callback, makeMsg(what, 'Wrong callback'));
|
|
}
|
|
};
|
|
var cleanupCalled = false;
|
|
var r = utils.readInt(Buffer.from([]), 0, stream, callback);
|
|
|
|
assert.strictEqual(r,
|
|
false,
|
|
makeMsg(what, 'Wrong result: ' + r));
|
|
assert(cleanupCalled, makeMsg(what, 'Cleanup not called'));
|
|
next();
|
|
},
|
|
what: 'readInt - with stream callback'
|
|
},
|
|
{ run: function() {
|
|
var what = this.what;
|
|
var r;
|
|
|
|
assert.strictEqual(r = utils.readString(Buffer.from([0,0,0]), 0),
|
|
false,
|
|
makeMsg(what, 'Wrong result: ' + r));
|
|
next();
|
|
},
|
|
what: 'readString - without stream callback - bad length #1'
|
|
},
|
|
{ run: function() {
|
|
var what = this.what;
|
|
var r;
|
|
|
|
assert.strictEqual(r = utils.readString(Buffer.from([]), 0),
|
|
false,
|
|
makeMsg(what, 'Wrong result: ' + r));
|
|
next();
|
|
},
|
|
what: 'readString - without stream callback - bad length #2'
|
|
},
|
|
{ run: function() {
|
|
var what = this.what;
|
|
var r;
|
|
|
|
assert.deepEqual(r = utils.readString(Buffer.from([0,0,0,1,5]), 0),
|
|
Buffer.from([5]),
|
|
makeMsg(what, 'Wrong result: ' + r));
|
|
next();
|
|
},
|
|
what: 'readString - without stream callback - success'
|
|
},
|
|
{ run: function() {
|
|
var what = this.what;
|
|
var r = utils.readString(Buffer.from([0,0,0,1,33]), 0, 'ascii');
|
|
|
|
assert.deepEqual(r,
|
|
'!',
|
|
makeMsg(what, 'Wrong result: ' + r));
|
|
next();
|
|
},
|
|
what: 'readString - without stream callback - encoding'
|
|
},
|
|
{ run: function() {
|
|
var what = this.what;
|
|
var callback = function() {};
|
|
var stream = {
|
|
_cleanup: function(cb) {
|
|
cleanupCalled = true;
|
|
assert(cb === callback, makeMsg(what, 'Wrong callback'));
|
|
}
|
|
};
|
|
var cleanupCalled = false;
|
|
var r;
|
|
|
|
assert.deepEqual(r = utils.readString(Buffer.from([0,0,0,1]),
|
|
0,
|
|
stream,
|
|
callback),
|
|
false,
|
|
makeMsg(what, 'Wrong result: ' + r));
|
|
assert(cleanupCalled, makeMsg(what, 'Cleanup not called'));
|
|
next();
|
|
},
|
|
what: 'readString - with stream callback - no encoding'
|
|
},
|
|
{ run: function() {
|
|
var what = this.what;
|
|
var callback = function() {};
|
|
var stream = {
|
|
_cleanup: function(cb) {
|
|
cleanupCalled = true;
|
|
assert(cb === callback, makeMsg(what, 'Wrong callback'));
|
|
}
|
|
};
|
|
var cleanupCalled = false;
|
|
var r;
|
|
|
|
assert.deepEqual(r = utils.readString(Buffer.from([0,0,0,1]),
|
|
0,
|
|
'ascii',
|
|
stream,
|
|
callback),
|
|
false,
|
|
makeMsg(what, 'Wrong result: ' + r));
|
|
assert(cleanupCalled, makeMsg(what, 'Cleanup not called'));
|
|
next();
|
|
},
|
|
what: 'readString - with stream callback - encoding'
|
|
},
|
|
];
|
|
|
|
function next() {
|
|
if (Array.isArray(process._events.exit))
|
|
process._events.exit = process._events.exit[1];
|
|
if (++t === tests.length)
|
|
return;
|
|
|
|
var v = tests[t];
|
|
process.nextTick(function() {
|
|
v.run.call(v);
|
|
});
|
|
}
|
|
|
|
function makeMsg(what, msg) {
|
|
return '[' + group + what + ']: ' + msg;
|
|
}
|
|
|
|
process.once('exit', function() {
|
|
assert(t === tests.length,
|
|
makeMsg('_exit',
|
|
'Only finished ' + t + '/' + tests.length + ' tests'));
|
|
});
|
|
|
|
next();
|
|
|