#!/bin/sh
#
#   Copyright 2016-2026 Blaise Frederick
#
#   Licensed under the Apache License, Version 2.0 (the "License");
#   you may not use this file except in compliance with the License.
#   You may obtain a copy of the License at
#
#       http://www.apache.org/licenses/LICENSE-2.0
#
#   Unless required by applicable law or agreed to in writing, software
#   distributed under the License is distributed on an "AS IS" BASIS,
#   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
#   See the License for the specific language governing permissions and
#   limitations under the License.
#
#

mode="${1:-all}"
if [ "$#" -gt 0 ]; then
    shift
fi

case "$mode" in
    unit)
        markexpr="unit"
        ;;
    notslow|pr)
        markexpr="not slow"
        ;;
    slow)
        markexpr="slow"
        ;;
    all)
        markexpr=""
        ;;
    *)
        echo "usage: $0 [unit|notslow|pr|slow|all] [pytest-args...]" >&2
        exit 2
        ;;
esac

# make sure the test data is installed
pushd ../data/examples/src
./cleanupdir
./installtestdatahere
popd

# clean out old tests
rm -rf coveragereport
rm .coverage
rm .coverage\.*

# run the tests
#export COVERAGE_PROCESS_START=./.coveragerc
#export PYTHONPATH=.:${PYTHONPATH}
#pytest \
#    -W ignore \
#    --cov-report html:coveragereport \
#    --cov=rapidtide \
#    --cov-config=.coveragerc

pytest_args="-v -s -rs"
if [ -n "$markexpr" ]; then
    python -m coverage run -m pytest $pytest_args -m "$markexpr" "$@"
else
    python -m coverage run -m pytest $pytest_args "$@"
fi

python -m coverage html -d coveragereport >/dev/null


# show the results
if [ -f coveragereport/index.html ] && command -v open >/dev/null 2>&1; then
    open coveragereport/index.html
fi
