Fixed reorg tests.

This commit is contained in:
Chris Kleeschulte 2017-08-17 21:12:33 -04:00
parent 07b1ff3111
commit f1da1e7612
2 changed files with 23 additions and 15 deletions

View File

@ -267,9 +267,17 @@ HeaderService.prototype._onBlock = function(block) {
}
if (reorg) {
self._handleReorg(block, header); // this sets the last header
self._saveHeaders(self._onHeader(header));
return;
return self._handleReorg(block, header, function(err) {
if (err) {
log.error(err);
self.node.stop();
return;
}
self._saveHeaders(self._onHeader(header));
}); // this sets the last header
}
self._broadcast(block);
@ -385,8 +393,13 @@ HeaderService.prototype._onHeadersSave = function(err) {
}
if (reorg) {
self._handleReorg();
return;
return self._handleReorg(null, null, function(err) {
if (err) {
log.error(err);
this.node.stop();
return;
}
});
}
log.info('Header Service: emitting headers to block service.');
@ -505,15 +518,13 @@ HeaderService.prototype._detectStartupReorg = function(callback) {
};
HeaderService.prototype._handleReorg = function(block, header) {
HeaderService.prototype._handleReorg = function(block, header, callback) {
var self = this;
self.getAllHeaders(function(err, headers) {
if (err || !headers) {
log.error(err || new Error('Missing headers'));
self.node.stop();
return;
return callback(err || new Error('Missing headers'));
}
var hash = headers.getIndex(self._originalTip.height).hash;
@ -528,7 +539,7 @@ HeaderService.prototype._handleReorg = function(block, header) {
assert(hash, 'To reorg, we need a hash to reorg to.');
self.emit('reorg', hash, headers);
callback();
});
};

View File

@ -1,7 +1,6 @@
'use strict';
var expect = require('chai').expect;
var sinon = require('sinon');
var net = require('net');
var spawn = require('child_process').spawn;
var path = require('path');
@ -32,10 +31,6 @@ var headers = blocks.map(function(block) {
return block.header;
});
console.log(headers);
var magic = new Buffer('fabfb5da', 'hex');
var debug = true;
var bitcoreDataDir = '/tmp/bitcore';
@ -255,6 +250,8 @@ describe('Reorg', function() {
return;
}
var data = JSON.parse(resData);
expect(data.height).to.equal(7);
expect(data.hash).to.equal(reorgBlock.rhash());
done(resError, resData);
});