@nraynaud/xo-vmdk-to-vhd
Version:
JS lib streaming a vmdk file to a vhd
65 lines (47 loc) • 2.07 kB
JavaScript
var _regenerator = require('babel-runtime/regenerator');
var _regenerator2 = _interopRequireDefault(_regenerator);
var _asyncToGenerator2 = require('babel-runtime/helpers/asyncToGenerator');
var _asyncToGenerator3 = _interopRequireDefault(_asyncToGenerator2);
var _chai = require('chai');
var _fsPromise = require('fs-promise');
var _mocha = require('mocha');
var _childProcessPromise = require('child-process-promise');
var _virtualBuffer = require('./virtual-buffer');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
(0, _mocha.describe)('Virtual Buffer', function () {
var _this = this;
(0, _mocha.it)('can read a file correctly', (0, _asyncToGenerator3.default)(_regenerator2.default.mark(function _callee() {
var rawFileName, buffer, part1, part2, original;
return _regenerator2.default.wrap(function _callee$(_context) {
while (1) {
switch (_context.prev = _context.next) {
case 0:
rawFileName = 'random-data';
_context.next = 3;
return (0, _childProcessPromise.exec)('base64 /dev/urandom | head -c 104448 > ' + rawFileName);
case 3:
buffer = new _virtualBuffer.VirtualBuffer((0, _fsPromise.createReadStream)(rawFileName));
_context.next = 6;
return buffer.readChunk(10);
case 6:
part1 = _context.sent;
_context.next = 9;
return buffer.readChunk(-1);
case 9:
part2 = _context.sent;
_context.next = 12;
return (0, _fsPromise.readFile)(rawFileName);
case 12:
original = _context.sent;
(0, _chai.assert)(buffer.isDepleted, 'virtual buffer is depleted');
_chai.assert.equal(Buffer.concat([part1, part2]).toString('ascii'), original.toString('ascii'));
case 15:
case 'end':
return _context.stop();
}
}
}, _callee, _this);
})));
});
//# sourceMappingURL=virtual-buffer.spec.js.map
;