Skip to content
Snippets Groups Projects
Unverified Commit 4217dc05 authored by teor's avatar teor
Browse files

Add scripts/test/chutney-git-bisect.sh, for bisecting using chutney

Supports bisection on 0.3.4 and earlier.
Recommend that users copy the script before bisecting.

Implements ticket 27211.
parent 677048fe
No related branches found
No related tags found
No related merge requests found
o Minor features (testing):
- Add scripts/test/chutney-git-bisect.sh, for bisecting using chutney.
Implements ticket 27211.
......@@ -30,6 +30,12 @@ orconfig.h files.
Testing scripts
---------------
test/chutney-git-bisect.sh -- a git bisect run script that bisects using
chutney. The script builds tor and tor-gencert, then runs chutney. The script
takes optional arguments for out-of-tree builds, and specific chutney network
flavours. You should copy this script before using it with git bisect, so that
it doesn't change (or disappear) during bisection.
test/cov-blame -- Mash up the results of gcov with git blame. Mainly useful
to find out who has been writing untested code.
......
#!/usr/bin/env bash
# Compile tor and run chutney to find out if the current commit works
#
# Usage:
# # Copy the script, so it doesn't change during bisection
# cp scripts/test/chutney-git-bisect.sh .
# git bisect run \
# ./chutney-git-bisect.sh [tries [build-dir [flavour [skip-flavour]]]]
#
# Runs chutney up to <tries> times (default 3), because some bugs involve race
# conditions.
# Changes to <build-dir> (default no cd) before running tests.
# Runs chutney network <flavour> (default make test-network-all) as the test.
# Skips the test if <skip-flavour> fails (default no skip).
CHUTNEY_TRIES=3
if [ ! -z "$1" ]; then
CHUTNEY_TRIES="$1"
fi
if [ ! -z "$2" ]; then
cd "$2"
fi
CHUTNEY_TEST_CMD="make test-network-all"
if [ ! -z "$3" ]; then
CHUTNEY_TEST_CMD="$CHUTNEY_PATH/tools/test-network.sh --flavour $3"
fi
CHUTNEY_SKIP_ON_FAIL_CMD="true"
if [ ! -z "$4" ]; then
CHUTNEY_SKIP_ON_FAIL_CMD="$CHUTNEY_PATH/tools/test-network.sh --flavour $4"
fi
CHUTNEY_BUILD_CMD_OR="make src/or/tor src/tools/tor-gencert"
CHUTNEY_BUILD_CMD_APP="make src/app/tor src/tools/tor-gencert"
if ! ( $CHUTNEY_BUILD_CMD_APP || $CHUTNEY_BUILD_CMD_OR ) ; then
echo "building '$CHUTNEY_BUILD_CMD_APP || $CHUTNEY_BUILD_CMD_OR' failed, skip"
exit 125
fi
if ! $CHUTNEY_SKIP_ON_FAIL_CMD ; then
echo "pre-condition '$CHUTNEY_SKIP_ON_FAIL_CMD' failed, skip"
exit 125
fi
i=1
while [ "$i" -le "$CHUTNEY_TRIES" ]; do
echo
echo "Round $i/$CHUTNEY_TRIES:"
echo
if $CHUTNEY_TEST_CMD ; then
echo "test '$CHUTNEY_TEST_CMD' succeeded after $i/$CHUTNEY_TRIES attempts, good"
exit 0
fi
i=$[$i+1]
done
i=$[$i-1]
echo "test '$CHUTNEY_TEST_CMD' failed $i/$CHUTNEY_TRIES attempts, bad"
exit 1
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment