dogecoin/src/test/Makefile.am
Cory Fields 4697e9462c script: Add test for CScriptNum
Because this class replaces some usages of CBigNum, tests have been added to
verify that they function the same way. The only difference in their usage is
the handling of out-of-range numbers.

While operands are constrained to [-0x7FFFFFFF,0x7FFFFFFF], the results may
overflow. The overflowing result is technically unbounded, but in practice
it can be no bigger than the result of an operation on two operands. This
implementation limits them to the size of an int64.

CBigNum was unaware of this constraint, so it allowed for unbounded results,
which were then checked before use. CScriptNum asserts if an arithmetic
operation will overflow an int64_t, since scripts are not able to reach those
numbers anyway. Additionally, CScriptNum will throw an exception when
constructed from a vector containing more than 4 bytes This mimics the previous
CastToBigNum behavior.
2014-05-29 20:05:07 +02:00

79 lines
1.9 KiB
Makefile

include $(top_srcdir)/src/Makefile.include
AM_CPPFLAGS += -I$(top_srcdir)/src
bin_PROGRAMS = test_dogecoin
TESTS = test_dogecoin
JSON_TEST_FILES = \
data/script_valid.json \
data/base58_keys_valid.json \
data/sig_canonical.json \
data/sig_noncanonical.json \
data/base58_encode_decode.json \
data/base58_keys_invalid.json \
data/script_invalid.json \
data/tx_invalid.json \
data/tx_valid.json \
data/sighash.json
RAW_TEST_FILES = data/alertTests.raw
BUILT_SOURCES = $(JSON_TEST_FILES:.json=.json.h) $(RAW_TEST_FILES:.raw=.raw.h)
# test_dogecoin binary #
test_dogecoin_CPPFLAGS = $(AM_CPPFLAGS) $(TESTDEFS)
test_dogecoin_LDADD = $(LIBBITCOIN_SERVER) $(LIBBITCOIN_CLI) $(LIBBITCOIN_COMMON) $(LIBLEVELDB) $(LIBMEMENV) \
$(BOOST_LIBS) $(BOOST_UNIT_TEST_FRAMEWORK_LIB)
if ENABLE_WALLET
test_dogecoin_LDADD += $(LIBBITCOIN_WALLET) $(LIBBITCOIN_SERVER_WALLET)
endif
test_dogecoin_LDADD += $(BDB_LIBS)
test_dogecoin_SOURCES = \
alert_tests.cpp \
allocator_tests.cpp \
base32_tests.cpp \
base58_tests.cpp \
base64_tests.cpp \
bignum_tests.cpp \
bloom_tests.cpp \
canonical_tests.cpp \
checkblock_tests.cpp \
Checkpoints_tests.cpp \
compress_tests.cpp \
DoS_tests.cpp \
getarg_tests.cpp \
key_tests.cpp \
main_tests.cpp \
miner_tests.cpp \
mruset_tests.cpp \
multisig_tests.cpp \
netbase_tests.cpp \
pmt_tests.cpp \
rpc_tests.cpp \
script_P2SH_tests.cpp \
script_tests.cpp \
scrypt_tests.cpp \
serialize_tests.cpp \
sigopcount_tests.cpp \
test_dogecoin.cpp \
transaction_tests.cpp \
uint256_tests.cpp \
util_tests.cpp \
scriptnum_tests.cpp \
sighash_tests.cpp \
$(JSON_TEST_FILES) $(RAW_TEST_FILES)
if ENABLE_WALLET
test_dogecoin_SOURCES += \
accounting_tests.cpp \
wallet_tests.cpp \
rpc_wallet_tests.cpp
endif
nodist_test_dogecoin_SOURCES = $(BUILT_SOURCES)
CLEANFILES = *.gcda *.gcno $(BUILT_SOURCES)