22
33# Copyright (c) 2024 Graphcore Ltd. All rights reserved.
44
5+ [ -n " ${BASH_VERSION:- } " ] || exec bash " $0 " " $@ "
6+
57set -euo pipefail
68
79SCRIPT_DIR=" $( cd " $( dirname " ${BASH_SOURCE[0]} " ) " && pwd) "
@@ -10,14 +12,23 @@ REPO_DIR="$(cd "${SCRIPT_DIR}/.." && pwd)"
1012IMAGE=" gfloat-linux-386:py310-uv"
1113PLATFORM=" linux/386"
1214DOCKERFILE=" etc/linux-386.Dockerfile"
13- MODE=" ${1:- all} "
15+ MODE=" all"
16+
17+ if [[ " ${1:- } " == " all" || " ${1:- } " == " load" || " ${1:- } " == " build" || " ${1:- } " == " run" ]]; then
18+ MODE=" $1 "
19+ shift
20+ fi
1421
1522usage () {
16- echo " Usage: bash etc/test-linux-386.sh [load|build|run]"
23+ echo " Usage: bash etc/test-linux-386.sh [all| load|build|run] [pytest args... ]"
1724 echo " load Build image only if missing"
1825 echo " build Force rebuild image"
1926 echo " run Run tests (image must already exist)"
2027 echo " (no arg) Build image if missing, then run tests"
28+ echo " "
29+ echo " Examples:"
30+ echo " bash etc/test-linux-386.sh run test/test_encode.py::test_encode[binary32]"
31+ echo " bash etc/test-linux-386.sh run -k stochastic -q"
2132}
2233
2334build_image () {
@@ -39,16 +50,16 @@ run_tests() {
3950 bash -lc '
4051 set -euo pipefail
4152 export PYTHONPATH="/work/src${PYTHONPATH:+:${PYTHONPATH}}"
42- python -m pytest -vv test
43- '
53+ python -m pytest "$@"
54+ ' _ " $@ "
4455}
4556
4657if [[ " ${MODE} " != " all" && " ${MODE} " != " load" && " ${MODE} " != " build" && " ${MODE} " != " run" ]]; then
4758 usage
4859 exit 2
4960fi
5061
51- echo " Running full unit tests in Docker (${PLATFORM} )"
62+ echo " Running unit tests in Docker (${PLATFORM} )"
5263
5364if ! docker info > /dev/null 2>&1 ; then
5465 echo " Docker daemon is not running; start Docker and rerun this script." >&2
@@ -73,5 +84,5 @@ if [[ "${MODE}" == "run" || "${MODE}" == "all" ]]; then
7384 exit 1
7485 fi
7586
76- run_tests
87+ run_tests " $@ "
7788fi
0 commit comments