diff options
author | Maran <maran.hidskes@gmail.com> | 2014-03-31 18:54:37 +0800 |
---|---|---|
committer | Maran <maran.hidskes@gmail.com> | 2014-03-31 18:54:37 +0800 |
commit | 5f49a659c36dbfb8c330ddc3d4565c19a9a936b5 (patch) | |
tree | 61e4c356238474e6c7e9965755e4a37a95a19f18 /ethchain/block_chain_test.go | |
parent | 6253d109389d49e47772597de24cd11874b91338 (diff) | |
download | dexon-5f49a659c36dbfb8c330ddc3d4565c19a9a936b5.tar dexon-5f49a659c36dbfb8c330ddc3d4565c19a9a936b5.tar.gz dexon-5f49a659c36dbfb8c330ddc3d4565c19a9a936b5.tar.bz2 dexon-5f49a659c36dbfb8c330ddc3d4565c19a9a936b5.tar.lz dexon-5f49a659c36dbfb8c330ddc3d4565c19a9a936b5.tar.xz dexon-5f49a659c36dbfb8c330ddc3d4565c19a9a936b5.tar.zst dexon-5f49a659c36dbfb8c330ddc3d4565c19a9a936b5.zip |
More blockchain testing
Diffstat (limited to 'ethchain/block_chain_test.go')
-rw-r--r-- | ethchain/block_chain_test.go | 35 |
1 files changed, 29 insertions, 6 deletions
diff --git a/ethchain/block_chain_test.go b/ethchain/block_chain_test.go index 736247e83..30eb62266 100644 --- a/ethchain/block_chain_test.go +++ b/ethchain/block_chain_test.go @@ -78,15 +78,38 @@ func (tm *TestManager) CreateChain2() error { return err } -func TestBlockChainReorg(t *testing.T) { +func TestNegativeBlockChainReorg(t *testing.T) { + // We are resetting the database between creation so we need to cache our information + testManager2 := NewTestManager() + testManager2.CreateChain2() + tm2Blocks := testManager2.Blocks + testManager := NewTestManager() testManager.CreateChain1() + oldState := testManager.BlockChain().CurrentBlock.State() + + if testManager.BlockChain().FindCanonicalChain(tm2Blocks, testManager.BlockChain().GenesisBlock().Hash()) != true { + t.Error("I expected TestManager to have the longest chain, but it was TestManager2 instead.") + } + if testManager.BlockChain().CurrentBlock.State() != oldState { + t.Error("I expected the top state to be the same as it was as before the reorg") + } + +} + +func TestPositiveBlockChainReorg(t *testing.T) { + testManager := NewTestManager() + testManager.CreateChain1() + tm1Blocks := testManager.Blocks + testManager2 := NewTestManager() testManager2.CreateChain2() + oldState := testManager2.BlockChain().CurrentBlock.State() - // This fails because we keep resetting the DB - block := testManager.BlockChain().GetBlock(testManager.BlockChain().CurrentBlock.PrevHash) - fmt.Println(block) - //testManager.BlockChain().FindCanonicalChain(testManager2.Blocks, testManager.BlockChain().GenesisBlock().Hash()) - + if testManager2.BlockChain().FindCanonicalChain(tm1Blocks, testManager.BlockChain().GenesisBlock().Hash()) == true { + t.Error("I expected TestManager to have the longest chain, but it was TestManager2 instead.") + } + if testManager2.BlockChain().CurrentBlock.State() == oldState { + t.Error("I expected the top state to have been modified but it was not") + } } |