From f1da1e7612b8ce1ec2b3e8626375e806c4843b34 Mon Sep 17 00:00:00 2001 From: Chris Kleeschulte Date: Thu, 17 Aug 2017 21:12:33 -0400 Subject: [PATCH] Fixed reorg tests. --- lib/services/header/index.js | 31 +++++++++++++++++++++---------- test/regtest/reorg.js | 7 ++----- 2 files changed, 23 insertions(+), 15 deletions(-) diff --git a/lib/services/header/index.js b/lib/services/header/index.js index 0ddafd00..2a81f8f4 100644 --- a/lib/services/header/index.js +++ b/lib/services/header/index.js @@ -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(); }); }; diff --git a/test/regtest/reorg.js b/test/regtest/reorg.js index 3aa756f4..9b25ee62 100644 --- a/test/regtest/reorg.js +++ b/test/regtest/reorg.js @@ -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); });