Page Menu
Home
Phabricator
Search
Configure Global Search
Log In
Files
F13114974
checkblock_tests.cpp
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Size
1 KB
Subscribers
None
checkblock_tests.cpp
View Options
// Copyright (c) 2013-2014 The Bitcoin Core developers
// Distributed under the MIT/X11 software license, see the accompanying
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
//
// Unit tests for block.CheckBlock()
//
#include
"main.h"
#include
<cstdio>
#include
<boost/filesystem/operations.hpp>
#include
<boost/filesystem/path.hpp>
#include
<boost/test/unit_test.hpp>
BOOST_AUTO_TEST_SUITE
(
CheckBlock_tests
)
bool
read_block
(
const
std
::
string
&
filename
,
CBlock
&
block
)
{
namespace
fs
=
boost
::
filesystem
;
fs
::
path
testFile
=
fs
::
current_path
()
/
"data"
/
filename
;
#ifdef TEST_DATA_DIR
if
(
!
fs
::
exists
(
testFile
))
{
testFile
=
fs
::
path
(
BOOST_PP_STRINGIZE
(
TEST_DATA_DIR
))
/
filename
;
}
#endif
FILE
*
fp
=
fopen
(
testFile
.
string
().
c_str
(),
"rb"
);
if
(
!
fp
)
return
false
;
fseek
(
fp
,
8
,
SEEK_SET
);
// skip msgheader/size
CAutoFile
filein
=
CAutoFile
(
fp
,
SER_DISK
,
CLIENT_VERSION
);
if
(
!
filein
)
return
false
;
filein
>>
block
;
return
true
;
}
BOOST_AUTO_TEST_CASE
(
May15
)
{
// Putting a 1MB binary file in the git repository is not a great
// idea, so this test is only run if you manually download
// test/data/Mar12Fork.dat from
// http://sourceforge.net/projects/bitcoin/files/Bitcoin/blockchain/Mar12Fork.dat/download
unsigned
int
tMay15
=
1368576000
;
SetMockTime
(
tMay15
);
// Test as if it was right at May 15
CBlock
forkingBlock
;
if
(
read_block
(
"Mar12Fork.dat"
,
forkingBlock
))
{
CValidationState
state
;
// After May 15'th, big blocks are OK:
forkingBlock
.
nTime
=
tMay15
;
// Invalidates PoW
BOOST_CHECK
(
CheckBlock
(
forkingBlock
,
state
,
false
,
false
));
}
SetMockTime
(
0
);
}
BOOST_AUTO_TEST_SUITE_END
()
File Metadata
Details
Attached
Mime Type
text/x-c
Expires
Sun, Mar 2, 09:00 (1 d, 1 h)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
5187149
Default Alt Text
checkblock_tests.cpp (1 KB)
Attached To
rABC Bitcoin ABC
Event Timeline
Log In to Comment