mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-11-24 04:13:28 +01:00
Merge remote-tracking branch 'sebastian/coverage_builds'
This commit is contained in:
commit
9e80fc8171
4
.gitignore
vendored
4
.gitignore
vendored
@ -179,10 +179,14 @@ cscope.*
|
||||
# /src/tools/
|
||||
/src/tools/tor-checkkey
|
||||
/src/tools/tor-resolve
|
||||
/src/tools/tor-cov-resolve
|
||||
/src/tools/tor-gencert
|
||||
/src/tools/tor-cov-gencert
|
||||
/src/tools/tor-checkkey.exe
|
||||
/src/tools/tor-resolve.exe
|
||||
/src/tools/tor-cov-resolve.exe
|
||||
/src/tools/tor-gencert.exe
|
||||
/src/tools/tor-cov-gencert.exe
|
||||
/src/tools/Makefile
|
||||
/src/tools/Makefile.in
|
||||
|
||||
|
22
Makefile.am
22
Makefile.am
@ -35,8 +35,10 @@ EXTRA_DIST+= \
|
||||
|
||||
if COVERAGE_ENABLED
|
||||
TEST_CFLAGS=-fno-inline -fprofile-arcs -ftest-coverage
|
||||
TEST_CPPFLAGS=-DTOR_UNIT_TESTS -DTOR_COVERAGE
|
||||
else
|
||||
TEST_CFLAGS=
|
||||
TEST_CPPFLAGS=-DTOR_UNIT_TESTS
|
||||
endif
|
||||
|
||||
#install-data-local:
|
||||
@ -80,6 +82,13 @@ test-stem: $(TESTING_TOR_BINARY)
|
||||
echo "To run these tests, git clone https://git.torproject.org/stem.git/ ; export STEM_SOURCE_DIR=\`pwd\`/stem"; \
|
||||
fi
|
||||
|
||||
test-stem-full: $(TESTING_TOR_BINARY)
|
||||
@if test -d "$$STEM_SOURCE_DIR"; then \
|
||||
"$$STEM_SOURCE_DIR"/run_tests.py --tor $(TESTING_TOR_BINARY) --all --log notice --target RUN_ALL,ONLINE -v; \
|
||||
else \
|
||||
echo '$$STEM_SOURCE_DIR was not set.'; echo; \
|
||||
echo "To run these tests, git clone https://git.torproject.org/stem.git/ ; export STEM_SOURCE_DIR=\`pwd\`/stem"; \
|
||||
fi
|
||||
|
||||
reset-gcov:
|
||||
rm -f $(top_builddir)/src/*/*.gcda $(top_builddir)/src/*/*/*.gcda
|
||||
@ -99,6 +108,19 @@ else
|
||||
@printf "Not configured with --enable-coverage, run ./configure --enable-coverage\n"
|
||||
endif
|
||||
|
||||
coverage-html-full: all
|
||||
test -e "`which lcov`" || (echo "lcov must be installed. See <http://ltp.sourceforge.net/coverage/lcov.php>." && false)
|
||||
test -d "$(HTML_COVER_DIR)" || mkdir -p "$(HTML_COVER_DIR)"
|
||||
lcov --rc lcov_branch_coverage=1 --directory ./src --zerocounters
|
||||
$(MAKE) reset-gcov
|
||||
$(MAKE) check
|
||||
$(MAKE) test-stem-full
|
||||
CHUTNEY_TOR=tor-cov CHUTNEY_TOR_GENCERT=tor-cov-gencert $(top_srcdir)/src/test/test-network.sh
|
||||
CHUTNEY_TOR=tor-cov CHUTNEY_TOR_GENCERT=tor-cov-gencert $(top_srcdir)/src/test/test-network.sh --flavor hs
|
||||
lcov --capture --rc lcov_branch_coverage=1 --no-external --directory . --output-file "$(HTML_COVER_DIR)/lcov.tmp"
|
||||
lcov --remove "$(HTML_COVER_DIR)/lcov.tmp" --rc lcov_branch_coverage=1 'test/*' 'ext/tinytest*' '/usr/*' --output-file "$(HTML_COVER_DIR)/lcov.info"
|
||||
genhtml --branch-coverage -o "$(HTML_COVER_DIR)" "$(HTML_COVER_DIR)/lcov.info"
|
||||
|
||||
# Avoid strlcpy.c, strlcat.c, aes.c, OpenBSD_malloc_Linux.c, sha256.c,
|
||||
# eventdns.[hc], tinytest*.[ch]
|
||||
check-spaces:
|
||||
|
6
changes/coverage
Normal file
6
changes/coverage
Normal file
@ -0,0 +1,6 @@
|
||||
o Minor features:
|
||||
- Remove assertions during builds to determine Tor's test coverage.
|
||||
We don't want to trigger these even in assertions, so including
|
||||
them artificially makes our branch coverage look worse than it is.
|
||||
This patch provides the new test-stem-full and coverage-html-full
|
||||
configure options. Implements ticket 15400.
|
@ -331,7 +331,7 @@ static void
|
||||
aes_set_key(aes_cnt_cipher_t *cipher, const char *key, int key_bits)
|
||||
{
|
||||
if (should_use_EVP) {
|
||||
const EVP_CIPHER *c;
|
||||
const EVP_CIPHER *c = 0;
|
||||
switch (key_bits) {
|
||||
case 128: c = EVP_aes_128_ecb(); break;
|
||||
case 192: c = EVP_aes_192_ecb(); break;
|
||||
|
@ -96,9 +96,9 @@ src_common_libor_testing_a_SOURCES = $(LIBOR_A_SOURCES)
|
||||
src_common_libor_crypto_testing_a_SOURCES = $(LIBOR_CRYPTO_A_SOURCES)
|
||||
src_common_libor_event_testing_a_SOURCES = $(LIBOR_EVENT_A_SOURCES)
|
||||
|
||||
src_common_libor_testing_a_CPPFLAGS = -DTOR_UNIT_TESTS $(AM_CPPFLAGS)
|
||||
src_common_libor_crypto_testing_a_CPPFLAGS = -DTOR_UNIT_TESTS $(AM_CPPFLAGS)
|
||||
src_common_libor_event_testing_a_CPPFLAGS = -DTOR_UNIT_TESTS $(AM_CPPFLAGS)
|
||||
src_common_libor_testing_a_CPPFLAGS = $(AM_CPPFLAGS) $(TEST_CPPFLAGS)
|
||||
src_common_libor_crypto_testing_a_CPPFLAGS = $(AM_CPPFLAGS) $(TEST_CPPFLAGS)
|
||||
src_common_libor_event_testing_a_CPPFLAGS = $(AM_CPPFLAGS) $(TEST_CPPFLAGS)
|
||||
src_common_libor_testing_a_CFLAGS = $(AM_CFLAGS) $(TEST_CFLAGS)
|
||||
src_common_libor_crypto_testing_a_CFLAGS = $(AM_CFLAGS) $(TEST_CFLAGS)
|
||||
src_common_libor_event_testing_a_CFLAGS = $(AM_CFLAGS) $(TEST_CFLAGS)
|
||||
|
@ -45,6 +45,13 @@
|
||||
#error "Sorry; we don't support building with NDEBUG."
|
||||
#endif
|
||||
|
||||
/* Don't use assertions during coverage. It leads to tons of unreached
|
||||
* branches which in reality are only assertions we didn't hit. */
|
||||
#ifdef TOR_COVERAGE
|
||||
#define tor_assert(a) STMT_BEGIN \
|
||||
(void)(a); \
|
||||
STMT_END
|
||||
#else
|
||||
/** Like assert(3), but send assertion failures to the log as well as to
|
||||
* stderr. */
|
||||
#define tor_assert(expr) STMT_BEGIN \
|
||||
@ -52,6 +59,7 @@
|
||||
tor_assertion_failed_(SHORT_FILE__, __LINE__, __func__, #expr); \
|
||||
abort(); \
|
||||
} STMT_END
|
||||
#endif
|
||||
|
||||
void tor_assertion_failed_(const char *fname, unsigned int line,
|
||||
const char *func, const char *expr);
|
||||
|
@ -1407,7 +1407,7 @@ static int
|
||||
connection_handle_listener_read(connection_t *conn, int new_type)
|
||||
{
|
||||
tor_socket_t news; /* the new socket */
|
||||
connection_t *newconn;
|
||||
connection_t *newconn = 0;
|
||||
/* information about the remote peer when connecting to other routers */
|
||||
struct sockaddr_storage addrbuf;
|
||||
struct sockaddr *remote = (struct sockaddr*)&addrbuf;
|
||||
|
@ -99,7 +99,7 @@ AM_CPPFLAGS += -DSHARE_DATADIR="\"$(datadir)\"" \
|
||||
-DLOCALSTATEDIR="\"$(localstatedir)\"" \
|
||||
-DBINDIR="\"$(bindir)\""
|
||||
|
||||
src_or_libtor_testing_a_CPPFLAGS = -DTOR_UNIT_TESTS $(AM_CPPFLAGS)
|
||||
src_or_libtor_testing_a_CPPFLAGS = $(AM_CPPFLAGS) $(TEST_CPPFLAGS)
|
||||
src_or_libtor_testing_a_CFLAGS = $(AM_CFLAGS) $(TEST_CFLAGS)
|
||||
|
||||
# -L flags need to go in LDFLAGS. -l flags need to go in LDADD.
|
||||
@ -116,7 +116,7 @@ src_or_tor_LDADD = src/or/libtor.a src/common/libor.a \
|
||||
|
||||
if COVERAGE_ENABLED
|
||||
src_or_tor_cov_SOURCES = src/or/tor_main.c
|
||||
src_or_tor_cov_CPPFLAGS = -DTOR_UNIT_TESTS $(AM_CPPFLAGS)
|
||||
src_or_tor_cov_CPPFLAGS = $(AM_CPPFLAGS) $(TEST_CPPFLAGS)
|
||||
src_or_tor_cov_CFLAGS = $(AM_CFLAGS) $(TEST_CFLAGS)
|
||||
src_or_tor_cov_LDFLAGS = @TOR_LDFLAGS_zlib@ @TOR_LDFLAGS_openssl@ @TOR_LDFLAGS_libevent@
|
||||
src_or_tor_cov_LDADD = src/or/libtor-testing.a src/common/libor-testing.a \
|
||||
|
@ -76,7 +76,7 @@ src_test_test_slow_SOURCES = \
|
||||
|
||||
src_test_test_CFLAGS = $(AM_CFLAGS) $(TEST_CFLAGS)
|
||||
|
||||
src_test_test_CPPFLAGS= $(src_test_AM_CPPFLAGS)
|
||||
src_test_test_CPPFLAGS= $(src_test_AM_CPPFLAGS) $(TEST_CPPFLAGS)
|
||||
|
||||
src_test_bench_SOURCES = \
|
||||
src/test/bench.c
|
||||
@ -151,7 +151,7 @@ src_test_test_bt_cl_LDADD = src/common/libor-testing.a \
|
||||
@TOR_LIB_MATH@ \
|
||||
@TOR_LIB_WS32@ @TOR_LIB_GDI@
|
||||
src_test_test_bt_cl_CFLAGS = $(AM_CFLAGS) $(TEST_CFLAGS)
|
||||
src_test_test_bt_cl_CPPFLAGS= $(src_test_AM_CPPFLAGS)
|
||||
src_test_test_bt_cl_CPPFLAGS= $(src_test_AM_CPPFLAGS) $(TEST_CPPFLAGS)
|
||||
|
||||
|
||||
check-local: $(NTOR_TEST_DEPS) $(CMDLINE_TEST_TOR)
|
||||
|
@ -13,7 +13,7 @@ do
|
||||
export TOR_DIR="$2"
|
||||
shift
|
||||
;;
|
||||
--flavo?r|--network-flavo?r)
|
||||
--flavor|--flavour|--network-flavor|--network-flavour)
|
||||
export NETWORK_FLAVOUR="$2"
|
||||
shift
|
||||
;;
|
||||
|
@ -1,21 +1,45 @@
|
||||
bin_PROGRAMS+= src/tools/tor-resolve src/tools/tor-gencert
|
||||
noinst_PROGRAMS+= src/tools/tor-checkkey
|
||||
|
||||
if COVERAGE_ENABLED
|
||||
noinst_PROGRAMS+= src/tools/tor-cov-resolve src/tools/tor-cov-gencert
|
||||
endif
|
||||
|
||||
src_tools_tor_resolve_SOURCES = src/tools/tor-resolve.c
|
||||
src_tools_tor_resolve_LDFLAGS =
|
||||
src_tools_tor_resolve_LDADD = src/common/libor.a @TOR_LIB_MATH@ @TOR_LIB_WS32@
|
||||
|
||||
if COVERAGE_ENABLED
|
||||
src_tools_tor_cov_resolve_SOURCES = src/tools/tor-resolve.c
|
||||
src_tools_tor_cov_resolve_CPPFLAGS = $(AM_CPPFLAGS) $(TEST_CPPFLAGS)
|
||||
src_tools_tor_cov_resolve_CFLAGS = $(AM_CFLAGS) $(TEST_CFLAGS)
|
||||
src_tools_tor_cov_resolve_LDADD = src/common/libor-testing.a \
|
||||
@TOR_LIB_MATH@ @TOR_LIB_WS32@
|
||||
endif
|
||||
|
||||
src_tools_tor_gencert_SOURCES = src/tools/tor-gencert.c
|
||||
src_tools_tor_gencert_LDFLAGS = @TOR_LDFLAGS_zlib@ @TOR_LDFLAGS_openssl@
|
||||
src_tools_tor_gencert_LDADD = src/common/libor.a src/common/libor-crypto.a \
|
||||
$(LIBDONNA) \
|
||||
$(LIBDONNA) \
|
||||
@TOR_LIB_MATH@ @TOR_ZLIB_LIBS@ @TOR_OPENSSL_LIBS@ \
|
||||
@TOR_LIB_WS32@ @TOR_LIB_GDI@ @CURVE25519_LIBS@
|
||||
|
||||
if COVERAGE_ENABLED
|
||||
src_tools_tor_cov_gencert_SOURCES = src/tools/tor-gencert.c
|
||||
src_tools_tor_cov_gencert_CPPFLAGS = $(AM_CPPFLAGS) $(TEST_CPPFLAGS)
|
||||
src_tools_tor_cov_gencert_CFLAGS = $(AM_CFLAGS) $(TEST_CFLAGS)
|
||||
src_tools_tor_cov_gencert_LDFLAGS = @TOR_LDFLAGS_zlib@ @TOR_LDFLAGS_openssl@
|
||||
src_tools_tor_cov_gencert_LDADD = src/common/libor-testing.a \
|
||||
src/common/libor-crypto-testing.a \
|
||||
$(LIBDONNA) \
|
||||
@TOR_LIB_MATH@ @TOR_ZLIB_LIBS@ @TOR_OPENSSL_LIBS@ \
|
||||
@TOR_LIB_WS32@ @TOR_LIB_GDI@ @CURVE25519_LIBS@
|
||||
endif
|
||||
|
||||
src_tools_tor_checkkey_SOURCES = src/tools/tor-checkkey.c
|
||||
src_tools_tor_checkkey_LDFLAGS = @TOR_LDFLAGS_zlib@ @TOR_LDFLAGS_openssl@
|
||||
src_tools_tor_checkkey_LDADD = src/common/libor.a src/common/libor-crypto.a \
|
||||
$(LIBDONNA) \
|
||||
$(LIBDONNA) \
|
||||
@TOR_LIB_MATH@ @TOR_ZLIB_LIBS@ @TOR_OPENSSL_LIBS@ \
|
||||
@TOR_LIB_WS32@ @TOR_LIB_GDI@ @CURVE25519_LIBS@
|
||||
|
||||
|
@ -23,7 +23,7 @@ src_trunnel_libor_trunnel_a_SOURCES = $(TRUNNELSOURCES)
|
||||
src_trunnel_libor_trunnel_a_CPPFLAGS = -DTRUNNEL_LOCAL_H $(AM_CPPFLAGS)
|
||||
|
||||
src_trunnel_libor_trunnel_testing_a_SOURCES = $(TRUNNELSOURCES)
|
||||
src_trunnel_libor_trunnel_testing_a_CPPFLAGS = -DTOR_UNIT_TESTS -DTRUNNEL_LOCAL_H $(AM_CPPFLAGS)
|
||||
src_trunnel_libor_trunnel_testing_a_CPPFLAGS = -DTRUNNEL_LOCAL_H $(AM_CPPFLAGS) $(TEST_CPPFLAGS)
|
||||
src_trunnel_libor_trunnel_testing_a_CFLAGS = $(AM_CFLAGS) $(TEST_CFLAGS)
|
||||
|
||||
noinst_HEADERS+= $(TRUNNELHEADERS)
|
||||
|
Loading…
Reference in New Issue
Block a user