Commit 07f0210a authored by Nick Mathewson's avatar Nick Mathewson 👉
Browse files

Merge branch 'maint-0.3.5' into maint-0.4.2

parents 02bb719a aeafb7f4
...@@ -37,6 +37,7 @@ variables: ...@@ -37,6 +37,7 @@ variables:
paths: paths:
- artifacts/ - artifacts/
# This template
.apt-template: &apt-template | .apt-template: &apt-template |
export LC_ALL=C.UTF-8 export LC_ALL=C.UTF-8
echo Etc/UTC > /etc/timezone echo Etc/UTC > /etc/timezone
...@@ -57,12 +58,18 @@ variables: ...@@ -57,12 +58,18 @@ variables:
<<: *artifacts-template <<: *artifacts-template
variables: variables:
DEBIAN_FRONTEND: "noninteractive" DEBIAN_FRONTEND: "noninteractive"
# TODO: Using "cache" in this way speeds up our downloads. It would be
# even better, though, to start with a pre-upgraded debian image.
#
# TODO: Will we have to do this differently once we have more than one
# debian version that we're using?
cache: cache:
key: apt key: apt
paths: paths:
- apt-cache - apt-cache
before_script: before_script:
- *apt-template - *apt-template
# Install patches unconditionally.
- apt-get install - apt-get install
automake automake
build-essential build-essential
...@@ -76,23 +83,29 @@ variables: ...@@ -76,23 +83,29 @@ variables:
pkg-config pkg-config
python3 python3
zlib1g-dev zlib1g-dev
# Install patches that we only need for some use cases.
- if [ "$ASCIIDOC" = yes ]; then apt-get install asciidoc xmlto; fi - if [ "$ASCIIDOC" = yes ]; then apt-get install asciidoc xmlto; fi
- if [ "$DOXYGEN" = yes ]; then apt-get install doxygen; fi - if [ "$DOXYGEN" = yes ]; then apt-get install doxygen; fi
- if [ "$STEM" = yes ]; then apt-get install timelimit; fi - if [ "$STEM" = yes ]; then apt-get install timelimit; fi
- if [ "$CC" = clang ]; then apt-get install clang; fi - if [ "$CC" = clang ]; then apt-get install clang; fi
# TODO: This next line should not be debian-only.
- if [ "$STEM" = yes ]; then git clone --depth 1 https://git.torproject.org/stem.git ; export STEM_PATH="$(pwd)/stem"; fi - if [ "$STEM" = yes ]; then git clone --depth 1 https://git.torproject.org/stem.git ; export STEM_PATH="$(pwd)/stem"; fi
# TODO: This next line should not be debian-only.
- if [ "$CHUTNEY" = yes ]; then git clone --depth 1 https://git.torproject.org/chutney.git ; export CHUTNEY_PATH="$(pwd)/chutney"; fi - if [ "$CHUTNEY" = yes ]; then git clone --depth 1 https://git.torproject.org/chutney.git ; export CHUTNEY_PATH="$(pwd)/chutney"; fi
# Minmal check on debian: just make, make check.
#
debian-minimal: debian-minimal:
image: debian:stable image: debian:stable
<<: *debian-template <<: *debian-template
script: script:
- ./scripts/ci/ci-driver.sh - ./scripts/ci/ci-driver.sh
#####
# TODO: This one just takes too long to finish right now! # Run "make check" with a hardened clang on debian stable. This takes
# Maybe we need to divide the call to ./src/test/test into a few segments, # care of a hardening check, and a compile-with-clang check.
# that all end in similar amount of time? #
# TODO: This will be faster once we merge #40098 and #40099.
debian-hardened: debian-hardened:
image: debian:testing image: debian:testing
<<: *debian-template <<: *debian-template
...@@ -102,6 +115,8 @@ debian-hardened: ...@@ -102,6 +115,8 @@ debian-hardened:
script: script:
- ./scripts/ci/ci-driver.sh - ./scripts/ci/ci-driver.sh
#####
# Distcheck on debian stable
debian-distcheck: debian-distcheck:
image: debian:stable image: debian:stable
<<: *debian-template <<: *debian-template
...@@ -111,6 +126,8 @@ debian-distcheck: ...@@ -111,6 +126,8 @@ debian-distcheck:
script: script:
- ./scripts/ci/ci-driver.sh - ./scripts/ci/ci-driver.sh
#####
# Documentation tests on debian stable: doxygen and asciidoc.
debian-docs: debian-docs:
image: debian:stable image: debian:stable
<<: *debian-template <<: *debian-template
...@@ -122,12 +139,19 @@ debian-docs: ...@@ -122,12 +139,19 @@ debian-docs:
script: script:
- ./scripts/ci/ci-driver.sh - ./scripts/ci/ci-driver.sh
#####
# Integration tests on debian stable: chutney and stem.
#
# TODO: It would be cool if this target didn't have to re-build tor, and
# could instead re-use Tor from debian-minimal. That can be done
# with the 'artifacts' mechanism, in theory, but it would be good to
# avoid having to have a system with hundreds of artifacts.
debian-integration: debian-integration:
image: debian:stable image: debian:stable
<<: *debian-template <<: *debian-template
variables: variables:
CHECK: "no" CHECK: "no"
CHUTNEY: "yes" CHUTNEY: "yes"
# STEM: "yes" -- currently failing on <044. STEM: "yes"
script: script:
- ./scripts/ci/ci-driver.sh - ./scripts/ci/ci-driver.sh
...@@ -267,18 +267,26 @@ TOR_VERSION=$(grep -m 1 AC_INIT configure.ac | sed -e 's/.*\[//; s/\].*//;') ...@@ -267,18 +267,26 @@ TOR_VERSION=$(grep -m 1 AC_INIT configure.ac | sed -e 's/.*\[//; s/\].*//;')
# Use variables like these when we need to behave differently depending on # Use variables like these when we need to behave differently depending on
# Tor version. Only create the variables we need. # Tor version. Only create the variables we need.
TOR_VER_AT_LEAST_043=no TOR_VER_AT_LEAST_043=no
TOR_VER_AT_LEAST_044=no
# These are the currently supported Tor versions; no need to work with anything # These are the currently supported Tor versions; no need to work with anything
# ancient in this script. # ancient in this script.
case "$TOR_VERSION" in case "$TOR_VERSION" in
0.3.*) 0.3.*)
TOR_VER_AT_LEAST_043=no TOR_VER_AT_LEAST_043=no
TOR_VER_AT_LEAST_044=no
;; ;;
0.4.[012].*) 0.4.[012].*)
TOR_VER_AT_LEAST_043=no TOR_VER_AT_LEAST_043=no
TOR_VER_AT_LEAST_044=no
;;
0.4.3.*)
TOR_VER_AT_LEAST_043=yes
TOR_VER_AT_LEAST_044=no
;; ;;
*) *)
TOR_VER_AT_LEAST_043=yes TOR_VER_AT_LEAST_043=yes
TOR_VER_AT_LEAST_044=yes
;; ;;
esac esac
...@@ -427,21 +435,25 @@ fi ...@@ -427,21 +435,25 @@ fi
if [[ "${STEM}" = "yes" ]]; then if [[ "${STEM}" = "yes" ]]; then
start_section "Stem" start_section "Stem"
# XXXX This shold probably be part some test-stem make target. if [[ "${TOR_VER_AT_LEAST_044}" = 'yes' ]]; then
if runcmd timelimit -p -t 520 -s USR1 -T 30 -S ABRT \ # XXXX This shold probably be part some test-stem make target.
python3 "${STEM_PATH}/run_tests.py" \ if runcmd timelimit -p -t 520 -s USR1 -T 30 -S ABRT \
--tor src/app/tor \ python3 "${STEM_PATH}/run_tests.py" \
--integ --test control.controller \ --tor src/app/tor \
--test control.base_controller \ --integ --test control.controller \
--test process \ --test control.base_controller \
--log TRACE \ --test process \
--log-file stem.log ; then --log TRACE \
hooray "Stem tests have succeeded" --log-file stem.log ; then
else hooray "Stem tests have succeeded"
else
error "Stem output:" error "Stem output:"
runcmd tail -1000 "${STEM_PATH}"/test/data/tor_log runcmd tail -1000 "${STEM_PATH}"/test/data/tor_log
runcmd grep -v "SocketClosed" stem.log | tail -1000 runcmd grep -v "SocketClosed" stem.log | tail -1000
FAILED_TESTS="${FAILED_TESTS} stem" FAILED_TESTS="${FAILED_TESTS} stem"
fi
else
skipping "Stem: broken with <= 0.4.3. See bug tor#40077"
fi fi
end_section "Stem" end_section "Stem"
fi fi
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment