summaryrefslogtreecommitdiff
path: root/ci/run_linux_tests.sh
blob: 1a210dcb74b47d1f3f9ed1a0fccd8a8152844808 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
#!/bin/bash

linux_test () {
	# create logs dir
	mkdir $CIRCLE_ARTIFACTS/logs_${1}

	#run instance of navit and remember pid
	./navit >$CIRCLE_ARTIFACTS/logs_${1}/stdout.txt 2>$CIRCLE_ARTIFACTS/logs_${1}/stderr.txt &
	pid=$!

	# give navit time to come up
	sleep 5

	# screen shot root window
	import -window root $CIRCLE_ARTIFACTS/logs_${1}/default.png

	# run tests on X11
	bash ~/navit/ci/xdotools.sh ${1}

	# python ~/navit/ci/dbus_tests.py $CIRCLE_TEST_REPORTS/
	# dbus-send  --print-reply --session --dest=org.navit_project.navit /org/navit_project/navit/default_navit org.navit_project.navit.navit.quit

	# kill navit instance
	kill $pid
}

set -e

pushd ~/linux-bin/navit/

# prepare environment by getting a map of berkley
cat > maps/berkeley.xml << EOF
<map type="binfile" data="\$NAVIT_SHAREDIR/maps/berkeley.bin" />
EOF
wget http://sd-55475.dedibox.fr/berkeley.bin -O maps/berkeley.bin

# back up config
cp navit.xml navit.xml.bak

# run gtk test
sed -i -e 's@name="Local GPS" profilename="car" enabled="yes" active="1"@name="Local GPS" profilename="car" enabled="no" active="0"@' navit.xml
sed -i -e 's@name="Demo" profilename="car" enabled="no" @name="Demo" profilename="car" enabled="yes" follow="1" refresh="1"@' navit.xml
sed -i -e 's@type="internal" enabled@type="internal" fullscreen="1" font_size="350" enabled@' navit.xml
sed -i -e 's@libbinding_dbus.so" active="no"@libbinding_dbus.so" active="yes"@' navit.xml
linux_test gtk_drawing_area

# restore config
cp navit.xml.bak navit.xml
# run qt5 qwidget test
sed -i -e 's@graphics type="gtk_drawing_area"@graphics type="qt5" w="792" h="547" qt5_widget="qwidget"@' navit.xml
sed -i -e 's@name="Local GPS" profilename="car" enabled="yes" active="1"@name="Local GPS" profilename="car" enabled="no" active="0"@' navit.xml
sed -i -e 's@name="Demo" profilename="car" enabled="no" @name="Demo" profilename="car" enabled="yes" follow="1" refresh="1"@' navit.xml
sed -i -e 's@type="internal" enabled@type="internal" fullscreen="1" font_size="350" enabled@' navit.xml
sed -i -e 's@libbinding_dbus.so" active="no"@libbinding_dbus.so" active="yes"@' navit.xml
linux_test qt5_widget

# restore config
cp navit.xml.bak navit.xml
# run qt5 qml test
sed -i -e 's@graphics type="gtk_drawing_area"@graphics type="qt5" w="792" h="547" qt5_widget="qml"@' navit.xml
sed -i -e 's@name="Local GPS" profilename="car" enabled="yes" active="1"@name="Local GPS" profilename="car" enabled="no" active="0"@' navit.xml
sed -i -e 's@name="Demo" profilename="car" enabled="no" @name="Demo" profilename="car" enabled="yes" follow="1" refresh="1"@' navit.xml
sed -i -e 's@type="internal" enabled@type="internal" fullscreen="1" font_size="350" enabled@' navit.xml
sed -i -e 's@libbinding_dbus.so" active="no"@libbinding_dbus.so" active="yes"@' navit.xml
linux_test qt5_qml

# Test different pitches and resolutions
mkdir $CIRCLE_ARTIFACTS/testpitch
for l in 0 1 # portrait (0), landscape (1)
do
 for x in 320 800 854 1280 1920 2560 3840 # x resolution
 do
  for y in 240 400 480 720 1080 1440 1600 2160 # y resolution
  do
   if [[ $RANDOM -lt 32767/4 ]]
   then
    # 2*7*8/~4=~28 test vectors
    # restore config
    cp navit.xml.bak navit.xml
    # run gtk test
    sed -i -e 's@name="Local GPS" profilename="car" enabled="yes" active="1"@name="Local GPS" profilename="car" enabled="no" active="0"@' navit.xml
    sed -i -e 's@name="Demo" profilename="car" enabled="no" @name="Demo" profilename="car" enabled="yes" follow="1" refresh="1"@' navit.xml
    sed -i -e 's@type="internal" enabled@type="internal" fullscreen="1" font_size="350" enabled@' navit.xml
    sed -i -e 's@libbinding_dbus.so" active="no"@libbinding_dbus.so" active="yes"@' navit.xml
    if [ $l -eq 0 ]
    then # portrait
     rx=$y
     ry=$x
    else # landscape
     rx=$x
     ry=$y
    fi
    p=`python -c 'import math;print int(round(20*math.sqrt(320*240)/math.sqrt('$x'*'$y'),0))'` # pitch // ROUND(20*SQRT(320*240)/SQRT(x*y))
    sed -i -e 's@navit center="11.5666 48.1333"@navit center="3752 N 12216 W" pitch="'$p'"@' navit.xml # set location and pitch
    sed -i -e 's@graphics type="gtk_drawing_area"@graphics type="gtk_drawing_area" w="'$rx'" h="'$ry'"@' navit.xml # set resolution
    cp navit.xml $CIRCLE_ARTIFACTS/testpitch/"$rx"_"$ry"_"$p".xml
    ./navit &
    pid=$!
    sleep 5
    import -window root $CIRCLE_ARTIFACTS/testpitch/"$rx"_"$ry"_"$p".png
    kill $pid
   fi
  done # y
 done # x
done # l