Covers b3e81f1ed: a 63-character mining.submit job_id containing any
non-hex byte must never complete to a 32-byte vector, so the EWBF
completion loop skips it instead of constructing uint256() (which
asserts vch.size()==32 and would abort the daemon from an
unauthenticated client).
Five cases pin the invariant using the real ParseHex/uint256 primitives:
all-spaces, a non-hex byte mid-string, and a non-hex byte at the end
never yield 32 bytes; a genuine 63-hex job_id completes to exactly 32
bytes for all 16 digits; plus ParseHex odd/even-length anchors. Wired
gtest/test_stratum_jobid.cpp into Makefile.gtest.include (5 tests, all
pass; full hush-gtest suite now 18/18).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PGhWvdBSgt6UxxHANr7gfN
66 lines
1.9 KiB
Makefile
66 lines
1.9 KiB
Makefile
# Copyright (c) 2016-2024 The Hush developers
|
|
# Released under the GPLv3
|
|
TESTS += hush-gtest
|
|
bin_PROGRAMS += hush-gtest
|
|
|
|
# tool for generating our public parameters
|
|
# NOTE: the original test list used an invalid automake form (comment after a trailing
|
|
# backslash, and `zcash_gtest_SOURCES +=` with no prior `=`), which is why the whole
|
|
# gtest harness was disabled via a `#include`. Minimal valid set: the harness + the
|
|
# Re-add other gtest sources here as they are revived.
|
|
hush_gtest_SOURCES = \
|
|
gtest/main.cpp \
|
|
gtest/utils.cpp \
|
|
gtest/test_randomx_preverify.cpp \
|
|
gtest/test_hdtransparent.cpp \
|
|
gtest/test_mnemonic_compat.cpp \
|
|
gtest/test_stratum_jobid.cpp
|
|
|
|
hush_gtest_CPPFLAGS = $(AM_CPPFLAGS) -DMULTICORE -fopenmp -DBINARY_OUTPUT -DCURVE_ALT_BN128 -DSTATIC $(BITCOIN_INCLUDES)
|
|
hush_gtest_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
|
|
|
|
# Mirror dragonxd_LDADD's working library set/order (the old list used a non-existent
|
|
# $(LIBBITCOIN_UNIVALUE) so univalue was never linked, and omitted LIBHUSH/LIBRANDOMX/libcc).
|
|
hush_gtest_LDADD = -lgtest -lgmock \
|
|
$(LIBBITCOIN_SERVER) \
|
|
$(LIBCURL) \
|
|
$(LIBBITCOIN_COMMON) \
|
|
$(LIBUNIVALUE) \
|
|
$(LIBBITCOIN_UTIL) \
|
|
$(LIBBITCOIN_CRYPTO) \
|
|
$(LIBZCASH) \
|
|
$(LIBHUSH) \
|
|
$(LIBLEVELDB) \
|
|
$(LIBMEMENV) \
|
|
$(LIBSECP256K1) \
|
|
$(LIBRANDOMX)
|
|
if ENABLE_WALLET
|
|
hush_gtest_LDADD += $(LIBBITCOIN_WALLET)
|
|
endif
|
|
|
|
hush_gtest_LDADD += \
|
|
$(BOOST_LIBS) \
|
|
$(BOOST_UNIT_TEST_FRAMEWORK_LIB) \
|
|
$(BDB_LIBS) \
|
|
$(SSL_LIBS) \
|
|
$(CRYPTO_LIBS) \
|
|
$(EVENT_PTHREADS_LIBS) \
|
|
$(EVENT_LIBS) \
|
|
$(LIBBITCOIN_CRYPTO) \
|
|
$(LIBZCASH_LIBS)
|
|
|
|
if TARGET_DARWIN
|
|
hush_gtest_LDADD += libcc.dylib $(LIBSECP256K1)
|
|
endif
|
|
if TARGET_WINDOWS
|
|
hush_gtest_LDADD += libcc.dll $(LIBSECP256K1)
|
|
endif
|
|
if TARGET_LINUX
|
|
hush_gtest_LDADD += libcc.so $(LIBSECP256K1)
|
|
endif
|
|
|
|
hush_gtest_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS)
|
|
|
|
hush-gtest-expected-failures: hush-gtest FORCE
|
|
./hush-gtest --gtest_filter=*DISABLED_* --gtest_also_run_disabled_tests
|