author | usveticic |
Wed, 05 Aug 2020 15:13:59 +0200 | |
branch | svghmi |
changeset 3010 | 893cc309f5e2 |
parent 2436 | 82bfc75bcd9d |
permissions | -rwxr-xr-x |
1820
76f5eba31afd
add shell script to run all python tests and automatically handle Xvfb
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff
changeset
|
1 |
#!/bin/sh |
76f5eba31afd
add shell script to run all python tests and automatically handle Xvfb
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff
changeset
|
2 |
|
2436
82bfc75bcd9d
Make easier to run pytest on local X-server
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
2435
diff
changeset
|
3 |
|
82bfc75bcd9d
Make easier to run pytest on local X-server
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
2435
diff
changeset
|
4 |
|
2435
925adaa2cd5c
cleanup pyc files between running pytest
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
1825
diff
changeset
|
5 |
cleanup() |
925adaa2cd5c
cleanup pyc files between running pytest
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
1825
diff
changeset
|
6 |
{ |
2436
82bfc75bcd9d
Make easier to run pytest on local X-server
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
2435
diff
changeset
|
7 |
find $PYTEST_DIR -name '*.pyc' -delete |
2435
925adaa2cd5c
cleanup pyc files between running pytest
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
1825
diff
changeset
|
8 |
} |
925adaa2cd5c
cleanup pyc files between running pytest
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
1825
diff
changeset
|
9 |
|
1820
76f5eba31afd
add shell script to run all python tests and automatically handle Xvfb
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff
changeset
|
10 |
|
2435
925adaa2cd5c
cleanup pyc files between running pytest
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
1825
diff
changeset
|
11 |
|
2436
82bfc75bcd9d
Make easier to run pytest on local X-server
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
2435
diff
changeset
|
12 |
print_help() |
82bfc75bcd9d
Make easier to run pytest on local X-server
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
2435
diff
changeset
|
13 |
{ |
82bfc75bcd9d
Make easier to run pytest on local X-server
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
2435
diff
changeset
|
14 |
echo "Usage: run_python_tests.sh [--on-local-xserver]" |
82bfc75bcd9d
Make easier to run pytest on local X-server
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
2435
diff
changeset
|
15 |
echo "" |
82bfc75bcd9d
Make easier to run pytest on local X-server
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
2435
diff
changeset
|
16 |
echo "--on-local-xserver" |
82bfc75bcd9d
Make easier to run pytest on local X-server
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
2435
diff
changeset
|
17 |
echo " all tests are run on local X-server. " |
82bfc75bcd9d
Make easier to run pytest on local X-server
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
2435
diff
changeset
|
18 |
echo " User can see test in action." |
82bfc75bcd9d
Make easier to run pytest on local X-server
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
2435
diff
changeset
|
19 |
echo " Any interaction (mouse, keyboard) should be avoided" |
82bfc75bcd9d
Make easier to run pytest on local X-server
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
2435
diff
changeset
|
20 |
echo " By default without arguments script runs pytest on virtual X serverf." |
82bfc75bcd9d
Make easier to run pytest on local X-server
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
2435
diff
changeset
|
21 |
echo "" |
2435
925adaa2cd5c
cleanup pyc files between running pytest
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
1825
diff
changeset
|
22 |
|
2436
82bfc75bcd9d
Make easier to run pytest on local X-server
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
2435
diff
changeset
|
23 |
exit 1 |
82bfc75bcd9d
Make easier to run pytest on local X-server
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
2435
diff
changeset
|
24 |
} |
1820
76f5eba31afd
add shell script to run all python tests and automatically handle Xvfb
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff
changeset
|
25 |
|
2436
82bfc75bcd9d
Make easier to run pytest on local X-server
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
2435
diff
changeset
|
26 |
main() |
82bfc75bcd9d
Make easier to run pytest on local X-server
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
2435
diff
changeset
|
27 |
{ |
82bfc75bcd9d
Make easier to run pytest on local X-server
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
2435
diff
changeset
|
28 |
LC_ALL=ru_RU.utf-8 |
82bfc75bcd9d
Make easier to run pytest on local X-server
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
2435
diff
changeset
|
29 |
PYTEST_DIR=./tests/tools |
82bfc75bcd9d
Make easier to run pytest on local X-server
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
2435
diff
changeset
|
30 |
|
82bfc75bcd9d
Make easier to run pytest on local X-server
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
2435
diff
changeset
|
31 |
if [ ! -d $PYTEST_DIR ]; then |
82bfc75bcd9d
Make easier to run pytest on local X-server
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
2435
diff
changeset
|
32 |
echo "Script should be run from top directory in repository" |
82bfc75bcd9d
Make easier to run pytest on local X-server
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
2435
diff
changeset
|
33 |
exit 1; |
82bfc75bcd9d
Make easier to run pytest on local X-server
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
2435
diff
changeset
|
34 |
fi |
82bfc75bcd9d
Make easier to run pytest on local X-server
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
2435
diff
changeset
|
35 |
|
82bfc75bcd9d
Make easier to run pytest on local X-server
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
2435
diff
changeset
|
36 |
use_xvfb=0 |
82bfc75bcd9d
Make easier to run pytest on local X-server
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
2435
diff
changeset
|
37 |
if [ "$1" != "--on-local-xserver" ]; then |
82bfc75bcd9d
Make easier to run pytest on local X-server
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
2435
diff
changeset
|
38 |
export DISPLAY=:42 |
82bfc75bcd9d
Make easier to run pytest on local X-server
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
2435
diff
changeset
|
39 |
use_xvfb=1 |
82bfc75bcd9d
Make easier to run pytest on local X-server
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
2435
diff
changeset
|
40 |
Xvfb $DISPLAY -screen 0 1280x1024x24 & |
82bfc75bcd9d
Make easier to run pytest on local X-server
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
2435
diff
changeset
|
41 |
sleep 1 |
82bfc75bcd9d
Make easier to run pytest on local X-server
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
2435
diff
changeset
|
42 |
fi |
2435
925adaa2cd5c
cleanup pyc files between running pytest
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
1825
diff
changeset
|
43 |
|
925adaa2cd5c
cleanup pyc files between running pytest
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
1825
diff
changeset
|
44 |
|
2436
82bfc75bcd9d
Make easier to run pytest on local X-server
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
2435
diff
changeset
|
45 |
cleanup |
1820
76f5eba31afd
add shell script to run all python tests and automatically handle Xvfb
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff
changeset
|
46 |
|
2436
82bfc75bcd9d
Make easier to run pytest on local X-server
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
2435
diff
changeset
|
47 |
ret=0 |
82bfc75bcd9d
Make easier to run pytest on local X-server
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
2435
diff
changeset
|
48 |
DELAY=400 |
82bfc75bcd9d
Make easier to run pytest on local X-server
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
2435
diff
changeset
|
49 |
KILL_DELAY=$(($DELAY + 30)) |
82bfc75bcd9d
Make easier to run pytest on local X-server
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
2435
diff
changeset
|
50 |
timeout -k $KILL_DELAY $DELAY pytest --timeout=10 ./tests/tools |
82bfc75bcd9d
Make easier to run pytest on local X-server
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
2435
diff
changeset
|
51 |
ret=$? |
82bfc75bcd9d
Make easier to run pytest on local X-server
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
2435
diff
changeset
|
52 |
|
82bfc75bcd9d
Make easier to run pytest on local X-server
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
2435
diff
changeset
|
53 |
cleanup |
82bfc75bcd9d
Make easier to run pytest on local X-server
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
2435
diff
changeset
|
54 |
|
82bfc75bcd9d
Make easier to run pytest on local X-server
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
2435
diff
changeset
|
55 |
[ $use_xvfb = 1 ] && pkill -9 Xvfb |
82bfc75bcd9d
Make easier to run pytest on local X-server
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
2435
diff
changeset
|
56 |
exit $ret |
82bfc75bcd9d
Make easier to run pytest on local X-server
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
2435
diff
changeset
|
57 |
} |
82bfc75bcd9d
Make easier to run pytest on local X-server
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
2435
diff
changeset
|
58 |
|
82bfc75bcd9d
Make easier to run pytest on local X-server
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
2435
diff
changeset
|
59 |
|
82bfc75bcd9d
Make easier to run pytest on local X-server
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
2435
diff
changeset
|
60 |
[ "$1" = "--help" -o "$1" = "-h" ] && print_help |
82bfc75bcd9d
Make easier to run pytest on local X-server
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
2435
diff
changeset
|
61 |
main $@ |