#! /bin/sh # # Run Scapy test suite. # # If ran with no arguments: # ./run_tests # this util will run the test suite using tox, with options that should work # regardless of the platform or the dependencies. The only dependency for this # to work are python3 (or python) and tox. # # If ran with arguments, this will call UTscapy.py # # ATTENTION PACKAGE MAINTAINERS: # If you do need to run Scapy tests, calling ./run_tests should be enough. # DIR=$(dirname "$0")/.. if [ -z "$PYTHON" ] then ARGS="" for arg in "$@" do case $arg in -3) PYTHON=python3;; -W) PYTHONWARNINGS="-W error";; *) ARGS="$ARGS $arg";; esac done PYTHON=${PYTHON:-python3} else ARGS="$@" fi $PYTHON --version > /dev/null 2>&1 if [ ! $? -eq 0 ] then echo "WARNING: '$PYTHON' not found, using 'python' instead." PYTHON=python fi if [ -z "$ARGS" ] then # No arguments specified: use tox # We use flags to disable tests that use external non tox-installed # software. # Check tox tox --version >/dev/null 2>/dev/null if [ ! $? -eq 0 ] then echo "ERROR: tox is not installed." echo "You can still run ./run_tests with arguments: see ./run_tests -h" echo "e.g. ./run_tests -t tls.uts -F" exit 1 fi # Run tox export UT_FLAGS="-K tcpdump -K wireshark -K tshark -K ci_only -K vcan_socket -K automotive_comm -K imports -K scanner" export SIMPLE_TESTS="true" export PYTHON export DISABLE_COVERAGE=" " PYVER=$($PYTHON -c "import sys; print('.'.join(sys.version.split('.')[:2]))") bash ${DIR}/.config/ci/test.sh $PYVER non_root exit $? fi PYTHONPATH=$DIR exec "$PYTHON" $PYTHONWARNINGS ${DIR}/scapy/tools/UTscapy.py $ARGS