summaryrefslogtreecommitdiff
path: root/.ci
diff options
context:
space:
mode:
Diffstat (limited to '.ci')
-rw-r--r--.ci/asan-ignore-leaks.supp16
-rwxr-xr-x.ci/bootstrap-efl-native-for-cross.sh2
-rwxr-xr-x.ci/ci-configure.sh32
-rwxr-xr-x.ci/ci-make-check.sh6
-rwxr-xr-x.ci/ci-make-install.sh4
-rwxr-xr-x.ci/ci-make.sh4
6 files changed, 52 insertions, 12 deletions
diff --git a/.ci/asan-ignore-leaks.supp b/.ci/asan-ignore-leaks.supp
new file mode 100644
index 0000000..027800d
--- /dev/null
+++ b/.ci/asan-ignore-leaks.supp
@@ -0,0 +1,16 @@
1# Evas
2leak:evas_module_find_type
3leak:generic_cache_new
4# Edje / cpplib
5leak:handle_directive
6# Edje_cc
7leak:edje_cc
8leak:_efl_loop_message_handler_message_send
9leak:ecore_ipc_client_add
10# Elm_prefs_cc
11leak:st_collection_page_items_item_label
12leak:st_collection_page_items_item_name
13leak:st_collection_page_items_item_string_placeholder
14leak:st_collection_page_items_item_string_default
15leak:st_collection_page_items_item_string_deny
16leak:ob_collection_page_items_item
diff --git a/.ci/bootstrap-efl-native-for-cross.sh b/.ci/bootstrap-efl-native-for-cross.sh
index 9a1272d..f4d7be0 100755
--- a/.ci/bootstrap-efl-native-for-cross.sh
+++ b/.ci/bootstrap-efl-native-for-cross.sh
@@ -1,7 +1,7 @@
1#!/bin/sh 1#!/bin/sh
2 2
3mkdir build-bootstrap-native 3mkdir build-bootstrap-native
4meson --prefix=/usr/ --libdir=/usr/lib -Dbuild-examples=false -Dbuild-tests=false -Dbindings="" build-bootstrap-native 4meson --prefix=/usr/ --libdir=/usr/lib -Dbuild-examples=false -Dbuild-tests=false -Dbindings=cxx build-bootstrap-native
5ninja -C build-bootstrap-native install 5ninja -C build-bootstrap-native install
6rm -rf build-bootstrap-native 6rm -rf build-bootstrap-native
7ldconfig 7ldconfig
diff --git a/.ci/ci-configure.sh b/.ci/ci-configure.sh
index 086bf92..88ca9e2 100755
--- a/.ci/ci-configure.sh
+++ b/.ci/ci-configure.sh
@@ -6,20 +6,22 @@ set -e
6 6
7if [ "$DISTRO" != "" ] ; then 7if [ "$DISTRO" != "" ] ; then
8 # Normal build test of all targets 8 # Normal build test of all targets
9 OPTS=" -Decore-imf-loaders-disabler=scim,ibus -Dbindings=luajit"
10 # Why do we need to disable the imf loaders here? 9 # Why do we need to disable the imf loaders here?
10 OPTS=" -Decore-imf-loaders-disabler=scim,ibus"
11
12 MONO_LINUX_COPTS=" -Dbindings=luajit,cxx,mono -Dmono-beta=true"
11 13
12 WAYLAND_LINUX_COPTS=" -Dwl=true -Ddrm=true -Dopengl=es-egl -Dwl-deprecated=true -Ddrm-deprecated=true" 14 WAYLAND_LINUX_COPTS=" -Dwl=true -Ddrm=true -Dopengl=es-egl -Dwl-deprecated=true -Ddrm-deprecated=true"
13 15
14 # TODO: 16 # TODO:
15 # - Enable C++ and mono bindings: -Dbindings=luajit,cxx,mono -Dmono-beta=true 17 # - Enable C++ bindings: -Dbindings=luajit,cxx
16 # - No libelogind, Xgesture packages in fedora 30 repo 18 # - No libelogind package in fedora 30 repo
17 # - RPM fusion repo for xine and libvlc 19 # - RPM fusion repo for xine and libvlc
18 ENABLED_LINUX_COPTS=" -Dfb=true -Dsdl=true -Dbuffer=true -Dbuild-id=travis-build \ 20 ENABLED_LINUX_COPTS=" -Dfb=true -Dsdl=true -Dbuffer=true -Dbuild-id=travis-build \
19 -Ddebug-threads=true -Dg-mainloop=true -Dxpresent=true -Dxgesture=false -Dxinput22=true \ 21 -Ddebug-threads=true -Dglib=true -Dg-mainloop=true -Dxpresent=true -Dxinput22=true \
20 -Devas-loaders-disabler=json -Decore-imf-loaders-disabler= -Demotion-loaders-disabler=gstreamer,libvlc,xine \ 22 -Devas-loaders-disabler=json -Decore-imf-loaders-disabler= -Demotion-loaders-disabler=libvlc,xine \
21 -Demotion-generic-loaders-disabler=vlc -Dharfbuzz=true -Dpixman=true -Dhyphen=true \ 23 -Demotion-generic-loaders-disabler=vlc -Dharfbuzz=true -Dpixman=true -Dhyphen=true \
22 -Dvnc-server=true -Dbindings=luajit -Delogind=false -Dinstall-eo-files=true" 24 -Dvnc-server=true -Dbindings=luajit,cxx,mono -Delogind=false -Dinstall-eo-files=true -Dphysics=true"
23 25
24 # Enabled png, jpeg evas loader for in tree edje file builds 26 # Enabled png, jpeg evas loader for in tree edje file builds
25 DISABLED_LINUX_COPTS=" -Daudio=false -Davahi=false -Dx11=false -Dphysics=false -Deeze=false \ 27 DISABLED_LINUX_COPTS=" -Daudio=false -Davahi=false -Dx11=false -Dphysics=false -Deeze=false \
@@ -27,7 +29,7 @@ if [ "$DISTRO" != "" ] ; then
27 -Dcrypto=gnutls -Dglib=false -Dgstreamer=false -Dsystemd=false -Dpulseaudio=false \ 29 -Dcrypto=gnutls -Dglib=false -Dgstreamer=false -Dsystemd=false -Dpulseaudio=false \
28 -Dnetwork-backend=connman -Dxinput2=false -Dtslib=false \ 30 -Dnetwork-backend=connman -Dxinput2=false -Dtslib=false \
29 -Devas-loaders-disabler=gst,pdf,ps,raw,svg,xcf,bmp,dds,eet,generic,gif,ico,jp2k,json,pmaps,psd,tga,tgv,tiff,wbmp,webp,xpm \ 31 -Devas-loaders-disabler=gst,pdf,ps,raw,svg,xcf,bmp,dds,eet,generic,gif,ico,jp2k,json,pmaps,psd,tga,tgv,tiff,wbmp,webp,xpm \
30 -Decore-imf-loaders-disabler=xim,ibus,scim -Demotion-loaders-disabler=gstreamer,gstreamer1,libvlc,xine \ 32 -Decore-imf-loaders-disabler=xim,ibus,scim -Demotion-loaders-disabler=gstreamer1,libvlc,xine \
31 -Demotion-generic-loaders-disabler=vlc -Dfribidi=false -Dfontconfig=false \ 33 -Demotion-generic-loaders-disabler=vlc -Dfribidi=false -Dfontconfig=false \
32 -Dedje-sound-and-video=false -Dembedded-lz4=false -Dlibmount=false -Dv4l2=false \ 34 -Dedje-sound-and-video=false -Dembedded-lz4=false -Dlibmount=false -Dv4l2=false \
33 -Delua=true -Dnls=false -Dbindings= -Dlua-interpreter=luajit -Dnative-arch-optimization=false" 35 -Delua=true -Dnls=false -Dbindings= -Dlua-interpreter=luajit -Dnative-arch-optimization=false"
@@ -37,9 +39,13 @@ if [ "$DISTRO" != "" ] ; then
37 39
38 MINGW_COPTS="--cross-file .ci/cross_toolchain.txt -Davahi=false -Deeze=false -Dsystemd=false \ 40 MINGW_COPTS="--cross-file .ci/cross_toolchain.txt -Davahi=false -Deeze=false -Dsystemd=false \
39 -Dpulseaudio=false -Dx11=false -Dopengl=none -Dlibmount=false \ 41 -Dpulseaudio=false -Dx11=false -Dopengl=none -Dlibmount=false \
40 -Devas-loaders-disabler=json,pdf,ps,raw,svg,rsvg -Dbindings=luajit \ 42 -Devas-loaders-disabler=json,pdf,ps,raw,svg,rsvg \
41 -Dharfbuzz=true -Dpixman=true -Dembedded-lz4=false " 43 -Dharfbuzz=true -Dpixman=true -Dembedded-lz4=false "
42 44
45 if [ "$1" = "default" ]; then
46 OPTS="$OPTS $MONO_LINUX_COPTS"
47 fi
48
43 if [ "$1" = "options-enabled" ]; then 49 if [ "$1" = "options-enabled" ]; then
44 OPTS="$OPTS $ENABLED_LINUX_COPTS $WAYLAND_LINUX_COPTS" 50 OPTS="$OPTS $ENABLED_LINUX_COPTS $WAYLAND_LINUX_COPTS"
45 fi 51 fi
@@ -63,7 +69,13 @@ if [ "$DISTRO" != "" ] ; then
63 travis_endfold cov-download 69 travis_endfold cov-download
64 fi 70 fi
65 71
66 if [ "$1" = "mingw" ]; then 72 if [ "$1" = "asan" ]; then
73 travis_fold meson meson
74 docker exec --env EIO_MONITOR_POLL=1 --env CC="ccache gcc" \
75 --env CXX="ccache g++" --env CFLAGS="-O0 -g" --env CXXFLAGS="-O0 -g" \
76 --env LD="ld.gold" $(cat $HOME/cid) sh -c "mkdir build && meson build $OPTS -Db_sanitize=address"
77 travis_endfold meson
78 elif [ "$1" = "mingw" ]; then
67 OPTS="$OPTS $MINGW_COPTS" 79 OPTS="$OPTS $MINGW_COPTS"
68 travis_fold cross-native cross-native 80 travis_fold cross-native cross-native
69 docker exec $(cat $HOME/cid) sh -c '.ci/bootstrap-efl-native-for-cross.sh' 81 docker exec $(cat $HOME/cid) sh -c '.ci/bootstrap-efl-native-for-cross.sh'
@@ -97,6 +109,6 @@ else
97 export PKG_CONFIG_PATH="/usr/local/opt/openssl/lib/pkgconfig:/usr/local/Cellar/libffi/$LIBFFI_VER/lib/pkgconfig" 109 export PKG_CONFIG_PATH="/usr/local/opt/openssl/lib/pkgconfig:/usr/local/Cellar/libffi/$LIBFFI_VER/lib/pkgconfig"
98 export CC="ccache gcc" 110 export CC="ccache gcc"
99 travis_fold meson meson 111 travis_fold meson meson
100 mkdir build && meson build -Dopengl=full -Decore-imf-loaders-disabler=scim,ibus -Dx11=false -Davahi=false -Dbindings=luajit -Deeze=false -Dsystemd=false -Dnls=false -Dcocoa=true -Demotion-loaders-disabler=gstreamer,gstreamer1,libvlc,xine 112 mkdir build && meson build -Dopengl=full -Decore-imf-loaders-disabler=scim,ibus -Dx11=false -Davahi=false -Deeze=false -Dsystemd=false -Dnls=false -Dcocoa=true -Demotion-loaders-disabler=gstreamer1,libvlc,xine
101 travis_endfold meson 113 travis_endfold meson
102fi 114fi
diff --git a/.ci/ci-make-check.sh b/.ci/ci-make-check.sh
index 1578b3c..682d613 100755
--- a/.ci/ci-make-check.sh
+++ b/.ci/ci-make-check.sh
@@ -23,7 +23,11 @@ NUM_TRIES=5
23travis_fold check "ninja test" 23travis_fold check "ninja test"
24if [ "$DISTRO" != "" ] ; then 24if [ "$DISTRO" != "" ] ; then
25 for tries in $(seq 1 ${NUM_TRIES}); do 25 for tries in $(seq 1 ${NUM_TRIES}); do
26 (docker exec --env EINA_LOG_BACKTRACE="0" --env EIO_MONITOR_POLL=1 $(cat $HOME/cid) meson test -t 120 -C build --wrapper dbus-launch ) && break 26 if [ "$1" = "asan" ]; then
27 (docker exec --env EINA_LOG_BACKTRACE="0" --env EIO_MONITOR_POLL=1 --env ASAN_OPTIONS=detect_leaks=0:abort_on_error=0 $(cat $HOME/cid) meson test -t 120 -C build --wrapper dbus-launch) && break
28 else
29 (docker exec --env EINA_LOG_BACKTRACE="0" --env EIO_MONITOR_POLL=1 $(cat $HOME/cid) meson test -t 120 -C build --wrapper dbus-launch ) && break
30 fi
27 docker exec --env EIO_MONITOR_POLL=1 $(cat $HOME/cid) cat build/meson-logs/testlog-dbus-launch.txt 31 docker exec --env EIO_MONITOR_POLL=1 $(cat $HOME/cid) cat build/meson-logs/testlog-dbus-launch.txt
28 if [ $tries != ${NUM_TRIES} ] ; then echo "tests failed, trying again!" ; fi 32 if [ $tries != ${NUM_TRIES} ] ; then echo "tests failed, trying again!" ; fi
29 false 33 false
diff --git a/.ci/ci-make-install.sh b/.ci/ci-make-install.sh
index 7476989..08bf1db 100755
--- a/.ci/ci-make-install.sh
+++ b/.ci/ci-make-install.sh
@@ -9,6 +9,10 @@ if [ "$1" = "coverity" ] ; then
9 exit 0 9 exit 0
10fi 10fi
11travis_fold install "ninja install" 11travis_fold install "ninja install"
12if [ "$1" = "asan" ]; then
13 docker exec --env EIO_MONITOR_POLL=1 --env ASAN_OPTIONS=abort_on_error=0 --env LSAN_OPTIONS=suppressions=/src/.ci/asan-ignore-leaks.supp $(cat $HOME/cid) ninja -C build install
14 exit $?
15fi
12if [ "$DISTRO" != "" ] ; then 16if [ "$DISTRO" != "" ] ; then
13 docker exec --env EIO_MONITOR_POLL=1 $(cat $HOME/cid) ninja -C build install 17 docker exec --env EIO_MONITOR_POLL=1 $(cat $HOME/cid) ninja -C build install
14else 18else
diff --git a/.ci/ci-make.sh b/.ci/ci-make.sh
index 30f7d7c..c8d7332 100755
--- a/.ci/ci-make.sh
+++ b/.ci/ci-make.sh
@@ -6,6 +6,10 @@ if [ "$1" = "release-ready" ] ; then
6 exit 0 6 exit 0
7fi 7fi
8travis_fold ninja ninja 8travis_fold ninja ninja
9if [ "$1" = "asan" ]; then
10 docker exec --env EIO_MONITOR_POLL=1 --env ASAN_OPTIONS=abort_on_error=0 --env LSAN_OPTIONS=suppressions=/src/.ci/asan-ignore-leaks.supp $(cat $HOME/cid) ninja -C build
11 exit $?
12fi
9if [ "$DISTRO" != "" ] ; then 13if [ "$DISTRO" != "" ] ; then
10 if [ "$1" = "coverity" ] ; then 14 if [ "$1" = "coverity" ] ; then
11 docker exec --env EIO_MONITOR_POLL=1 --env PATH="/src/cov-analysis-linux64-2019.03/bin:$PATH" $(cat $HOME/cid) sh -c "cov-build --dir cov-int ninja -C build" 15 docker exec --env EIO_MONITOR_POLL=1 --env PATH="/src/cov-analysis-linux64-2019.03/bin:$PATH" $(cat $HOME/cid) sh -c "cov-build --dir cov-int ninja -C build"