diff --git a/.travis.yml b/.travis.yml index 939f4f4e90..456b5abc56 100644 --- a/.travis.yml +++ b/.travis.yml @@ -155,6 +155,8 @@ script: ## We run `make check` because that's what https://jenkins.torproject.org does. - if [[ "$DISTCHECK" == "" ]]; then make check; fi - if [[ "$DISTCHECK" != "" ]]; then make distcheck DISTCHECK_CONFIGURE_FLAGS="$CONFIGURE_FLAGS"; fi + ## If this build was one that produced coverage, upload it. + - if [[ "$COVERAGE_OPTIONS" != "" ]]; then coveralls -b . --exclude src/test --exclude src/trunnel --gcov-options '\-p' || echo "Coverage failed"; fi after_failure: ## configure will leave a log file with more details of config failures. @@ -165,9 +167,9 @@ after_failure: ## `make distcheck` puts it somewhere different. - if [[ "$DISTCHECK" != "" ]]; then make show-distdir-testlog || echo "make failed"; fi -after_success: - ## If this build was one that produced coverage, upload it. - - if [[ "$COVERAGE_OPTIONS" != "" ]]; then coveralls -b . --exclude src/test --exclude src/trunnel --gcov-options '\-p'; fi +before_cache: + ## Delete all gcov files. + - if [[ "$COVERAGE_OPTIONS" != "" ]]; then make reset-gcov; fi notifications: irc: diff --git a/Makefile.am b/Makefile.am index e4be3f26f9..48d3df2654 100644 --- a/Makefile.am +++ b/Makefile.am @@ -148,8 +148,10 @@ test-full: need-stem-path need-chutney-path check test-network test-stem test-full-online: need-stem-path need-chutney-path check test-network test-stem-full +# We can't delete the gcno files, because they are created when tor is compiled reset-gcov: - rm -f $(top_builddir)/src/*/*.gcda $(top_builddir)/src/*/*/*.gcda + rm -f $(top_builddir)/src/*/*.gcda $(top_builddir)/src/*/*/*.gcda \ + $(top_builddir)/src/*/*.gcov $(top_builddir)/src/*/*/*.gcov HTML_COVER_DIR=$(top_builddir)/coverage_html coverage-html: all diff --git a/changes/bug29036 b/changes/bug29036 new file mode 100644 index 0000000000..8b96c5c8fa --- /dev/null +++ b/changes/bug29036 @@ -0,0 +1,5 @@ + o Minor bugfix (continuous integration): + - Reset coverage state on disk after Travis CI has finished. This is being + done to prevent future gcda file merge errors which causes the test suite + for the process subsystem to fail. The process subsystem was introduced + in 0.4.0.1-alpha. Fixes bug 29036; bugfix on 0.2.9.15. diff --git a/changes/bug30021 b/changes/bug30021 new file mode 100644 index 0000000000..2a887f3cf2 --- /dev/null +++ b/changes/bug30021 @@ -0,0 +1,8 @@ + o Minor bugfixes (TLS protocol, integration tests): + - When classifying a client's selection of TLS ciphers, if the client + ciphers are not yet available, do not cache the result. Previously, + we had cached the unavailability of the cipher list and never looked + again, which in turn led us to assume that the client only supported + the ancient V1 link protocol. This, in turn, was causing Stem + integration tests to stall in some cases. + Fixes bug 30021; bugfix on 0.2.4.8-alpha. diff --git a/src/common/tortls.c b/src/common/tortls.c index 1fbe3c663e..f79969d0da 100644 --- a/src/common/tortls.c +++ b/src/common/tortls.c @@ -1500,7 +1500,7 @@ tor_tls_classify_client_ciphers(const SSL *ssl, smartlist_free(elts); } done: - if (tor_tls) + if (tor_tls && peer_ciphers) return tor_tls->client_cipher_list_type = res; return res;