faafd4eee0
libvips has to use ReadImage() when it opens an image via MagickCore, and this can allocate very large amounts of memory, killing the fuzzer. IM is already part of oss-fuzz, so we are not gaining much by replicating that work. This patch attempts to disable IM for fuzzing tests.
136 lines
3.8 KiB
YAML
136 lines
3.8 KiB
YAML
language: cpp
|
|
|
|
before_script:
|
|
- $PYTHON -m pip download --no-deps https://github.com/libvips/pyvips/archive/$PYVIPS_VERSION.tar.gz
|
|
- tar xf $PYVIPS_VERSION.tar.gz
|
|
- $PYTHON -m pip install --user --upgrade pyvips-$PYVIPS_VERSION/[test]
|
|
- ./autogen.sh
|
|
--disable-dependency-tracking
|
|
--with-jpeg-includes=$JPEG/include
|
|
--with-jpeg-libraries=$JPEG/lib
|
|
--with-magick=$WITH_MAGICK
|
|
- make -j$JOBS -s
|
|
script:
|
|
- make -j$JOBS -s -k V=0 VERBOSE=1 check
|
|
- LD_LIBRARY_PATH=$PWD/libvips/.libs
|
|
DYLD_LIBRARY_PATH=$PWD/libvips/.libs
|
|
LD_PRELOAD=$ASAN_DSO
|
|
$PYTHON -m pytest -v test/test-suite
|
|
|
|
matrix:
|
|
allow_failures:
|
|
- os: osx
|
|
fast_finish: true
|
|
include:
|
|
- os: linux
|
|
sudo: required
|
|
dist: xenial
|
|
compiler: gcc
|
|
env:
|
|
- PYTHON=python2
|
|
- PYVIPS_VERSION=master
|
|
- JPEG=/usr
|
|
- JOBS=`nproc`
|
|
- WITH_MAGICK=yes
|
|
cache: ccache
|
|
|
|
- os: linux
|
|
sudo: required
|
|
dist: xenial
|
|
compiler: clang
|
|
env:
|
|
- PYTHON=python2
|
|
- PYVIPS_VERSION=master
|
|
- JPEG=/usr
|
|
- JOBS=`nproc`
|
|
- WITH_MAGICK=no
|
|
- CFLAGS="-fsanitize=address,undefined -fno-omit-frame-pointer -fopenmp -DFUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION"
|
|
- LDFLAGS="-fsanitize=address,undefined -dynamic-asan -fopenmp=libiomp5"
|
|
- ASAN_DSO=/usr/local/clang-7.0.0/lib/clang/7.0.0/lib/linux/libclang_rt.asan-x86_64.so
|
|
- LSAN_OPTIONS="suppressions=$TRAVIS_BUILD_DIR/suppressions/lsan.supp"
|
|
- UBSAN_OPTIONS="suppressions=$TRAVIS_BUILD_DIR/suppressions/ubsan.supp"
|
|
# comment these out, I get strange parse errors from asan for some
|
|
# reason
|
|
#
|
|
# ASAN_OPTIONS="suppressions=$TRAVIS_BUILD_DIR/suppressions/asan.supp"
|
|
install:
|
|
# add support for WebP
|
|
- wget http://archive.ubuntu.com/ubuntu/pool/main/libw/libwebp/libwebp-dev_0.6.1-2_amd64.deb
|
|
- wget http://archive.ubuntu.com/ubuntu/pool/main/libw/libwebp/libwebpdemux2_0.6.1-2_amd64.deb
|
|
- wget http://archive.ubuntu.com/ubuntu/pool/main/libw/libwebp/libwebpmux3_0.6.1-2_amd64.deb
|
|
- wget http://archive.ubuntu.com/ubuntu/pool/main/libw/libwebp/libwebp6_0.6.1-2_amd64.deb
|
|
- sudo dpkg -i *.deb
|
|
cache: ccache
|
|
|
|
- os: osx
|
|
osx_image: xcode10.1
|
|
env:
|
|
- PYTHON=python2
|
|
- PYVIPS_VERSION=master
|
|
- JPEG=/usr/local
|
|
- JOBS="`sysctl -n hw.ncpu`"
|
|
- WITH_MAGICK=yes
|
|
- PATH="/usr/local/opt/ccache/libexec:$PATH"
|
|
- HOMEBREW_NO_AUTO_UPDATE=1
|
|
cache: ccache
|
|
|
|
addons:
|
|
apt:
|
|
update: true
|
|
sources:
|
|
# use a more recent imagemagick instead of 6.8.9-9
|
|
- sourceline: 'ppa:opencpu/imagemagick'
|
|
# add support for HEIF files
|
|
- sourceline: 'ppa:strukturag/libheif'
|
|
- sourceline: 'ppa:strukturag/libde265'
|
|
packages:
|
|
- automake
|
|
- gtk-doc-tools
|
|
- gobject-introspection
|
|
- libfftw3-dev
|
|
- libexif-dev
|
|
- libjpeg-turbo8-dev
|
|
- libpng12-dev
|
|
- libwebp-dev
|
|
# missing on xenial, unfortunately
|
|
# - libwebpmux2
|
|
- libtiff5-dev
|
|
- libheif-dev
|
|
- libexpat1-dev
|
|
- libmagick++-dev
|
|
- bc
|
|
- libcfitsio3-dev
|
|
- libgsl0-dev
|
|
- libmatio-dev
|
|
- liborc-0.4-dev
|
|
- liblcms2-dev
|
|
- libpoppler-glib-dev
|
|
- librsvg2-dev
|
|
- libgif-dev
|
|
- libopenexr-dev
|
|
- libpango1.0-dev
|
|
- libgsf-1-dev
|
|
- libopenslide-dev
|
|
- libffi-dev
|
|
- libiomp-dev
|
|
homebrew:
|
|
packages:
|
|
- ccache
|
|
- gtk-doc
|
|
- gobject-introspection
|
|
- fftw
|
|
- libexif
|
|
- webp
|
|
- imagemagick
|
|
- cfitsio
|
|
- gsl
|
|
- libmatio
|
|
- orc
|
|
- little-cms2
|
|
- poppler
|
|
- librsvg
|
|
- openexr
|
|
- pango
|
|
- libgsf
|
|
- openslide
|