| #!/bin/bash | |
| # Copyright 2023 The Fuchsia Authors. All rights reserved. | |
| # Use of this source code is governed by a BSD-style license that can be | |
| # found in the LICENSE file. | |
| # This file was adapted from //src/testing/end_to_end/honeydew/scripts/... | |
| set -e | |
| # Tests and runs coverage on the code. | |
| FCT_SRC="$FUCHSIA_DIR/src/developer/fuchsia-controller" | |
| VENV_ROOT_PATH="$FCT_SRC/.venvs" | |
| VENV_NAME="fuchsia_python_venv" | |
| VENV_PATH="$VENV_ROOT_PATH/$VENV_NAME" | |
| if [ -d $VENV_PATH ] | |
| then | |
| echo "Activating the virtual environment..." | |
| source $VENV_PATH/bin/activate | |
| else | |
| echo "Directory '$VENV_PATH' does not exists. Run the 'install.sh' script first..." | |
| exit 1 | |
| fi | |
| echo "Running coverage tool..." | |
| coverage \ | |
| run \ | |
| --source $FCT_SRC \ | |
| -m unittest discover \ | |
| --start-directory $FCT_SRC/tests \ | |
| --pattern "*.py" | |
| echo "Generating coverage stats..." | |
| coverage report -m | |
| if [ "$1" = "--html" ] && [ ! -z "$2" ] | |
| then | |
| if [ ! -d "$2" ] | |
| then | |
| echo "Error: Directory "$2" must exist HTML output" | |
| else | |
| echo "Writing HTML to $2" | |
| coverage html -d $2 | |
| fi | |
| fi | |
| rm -rf .coverage |