mirror of
https://gitlab.gnome.org/GNOME/libxml2.git
synced 2025-01-19 10:03:34 +03:00
53983804ce
This enables the remaining checks from the "integer" group: - implicit-unsigned-integer-truncation - implicit-signed-integer-truncation - implicit-integer-sign-change These checks can find all kinds of bugs and only require explicit casts if integer truncation or sign change is really intended.
278 lines
8.1 KiB
YAML
278 lines
8.1 KiB
YAML
.test:
|
|
# The image was generated with the following Dockerfile. It is also used
|
|
# for libxslt, that's why we need git and libgcrypt-dev.
|
|
#
|
|
# FROM ubuntu:20.04
|
|
# ENV DEBIAN_FRONTEND=noninteractive
|
|
# RUN apt-get update && \
|
|
# apt-get upgrade -y && \
|
|
# apt-get install -y --no-install-recommends \
|
|
# curl git ca-certificates \
|
|
# autoconf automake libtool pkg-config \
|
|
# make gcc clang llvm \
|
|
# zlib1g-dev liblzma-dev libgcrypt-dev \
|
|
# python-dev python3-dev \
|
|
# cmake
|
|
# WORKDIR /tests
|
|
# RUN curl https://www.w3.org/XML/Test/xmlts20080827.tar.gz |tar xz
|
|
image: registry.gitlab.gnome.org/gnome/libxml2
|
|
script:
|
|
- |
|
|
ln -s /tests/xmlconf
|
|
sh autogen.sh $CONFIG
|
|
make -j$(nproc) V=1 CFLAGS="$CFLAGS -Werror"
|
|
make check
|
|
|
|
gcc:
|
|
extends: .test
|
|
variables:
|
|
CFLAGS: "-O2 -std=c89 -D_XOPEN_SOURCE=700"
|
|
|
|
gcc:python3:
|
|
extends: .test
|
|
only:
|
|
- schedules
|
|
variables:
|
|
CONFIG: "--with-python=/usr/bin/python3"
|
|
CFLAGS: "-O2"
|
|
|
|
clang:asan:
|
|
extends: .test
|
|
variables:
|
|
CONFIG: "--without-python"
|
|
CC: clang
|
|
CFLAGS: "-O2 -g -fno-omit-frame-pointer -fsanitize=address,undefined,integer -fno-sanitize-recover=all -Wno-error=cast-align"
|
|
# LeakSanitizer requires SYS_CAP_PTRACE
|
|
ASAN_OPTIONS: "detect_leaks=0"
|
|
UBSAN_OPTIONS: "print_stacktrace=1"
|
|
|
|
clang:msan:
|
|
extends: .test
|
|
only:
|
|
- schedules
|
|
variables:
|
|
CONFIG: "--without-python --without-zlib --without-lzma"
|
|
CC: clang
|
|
CFLAGS: "-O2 -g -fno-omit-frame-pointer -fsanitize=memory -Wno-error=cast-align"
|
|
|
|
.cmake:linux:
|
|
image: registry.gitlab.gnome.org/gnome/libxml2
|
|
script:
|
|
- cmake -DBUILD_SHARED_LIBS=$BUILD_SHARED_LIBS -DCMAKE_INSTALL_PREFIX=libxml2-install -DCMAKE_BUILD_TYPE=RelWithDebInfo -DLIBXML2_XMLCONF_WORKING_DIR=/tests -S . -B libxml2-build
|
|
- cmake --build libxml2-build --target install
|
|
- mkdir -p libxml2-install/share/libxml2
|
|
- cp Copyright libxml2-install/share/libxml2
|
|
- cd libxml2-build
|
|
- ctest -VV
|
|
after_script:
|
|
- cd libxml2-install
|
|
- tar -czf ../libxml2-$CI_COMMIT_SHORT_SHA-$CC-$SUFFIX.tar.gz *
|
|
artifacts:
|
|
paths:
|
|
- libxml2-$CI_COMMIT_SHORT_SHA-$CC-$SUFFIX.tar.gz
|
|
expire_in: 1 day
|
|
|
|
cmake:linux:gcc:shared:
|
|
extends: .cmake:linux
|
|
only:
|
|
- schedules
|
|
variables:
|
|
BUILD_SHARED_LIBS: "ON"
|
|
CC: gcc
|
|
SUFFIX: shared
|
|
|
|
cmake:linux:gcc:static:
|
|
extends: .cmake:linux
|
|
only:
|
|
- schedules
|
|
variables:
|
|
BUILD_SHARED_LIBS: "OFF"
|
|
CC: gcc
|
|
SUFFIX: static
|
|
|
|
cmake:linux:clang:shared:
|
|
extends: .cmake:linux
|
|
only:
|
|
- schedules
|
|
variables:
|
|
BUILD_SHARED_LIBS: "ON"
|
|
CC: clang
|
|
SUFFIX: shared
|
|
|
|
cmake:linux:clang:static:
|
|
extends: .cmake:linux
|
|
only:
|
|
- schedules
|
|
variables:
|
|
BUILD_SHARED_LIBS: "OFF"
|
|
CC: clang
|
|
SUFFIX: static
|
|
|
|
.cmake:mingw:
|
|
tags:
|
|
- win32-ps
|
|
before_script:
|
|
- "[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12"
|
|
- $Env:Path="C:\msys64\$Env:MINGW_PATH\bin;C:\msys64\usr\bin;$Env:Path"
|
|
- pacman --noconfirm -Syu
|
|
- pacman --noconfirm -S
|
|
$Env:MINGW_PACKAGE_PREFIX-cmake
|
|
$Env:MINGW_PACKAGE_PREFIX-libiconv
|
|
$Env:MINGW_PACKAGE_PREFIX-ninja
|
|
$Env:MINGW_PACKAGE_PREFIX-python
|
|
$Env:MINGW_PACKAGE_PREFIX-python2
|
|
$Env:MINGW_PACKAGE_PREFIX-xz
|
|
$Env:MINGW_PACKAGE_PREFIX-zlib
|
|
- if (-not (Test-Path 7za.exe)) {
|
|
Invoke-WebRequest -Uri https://www.7-zip.org/a/7z1900-extra.7z -OutFile 7z1900-extra.7z ;
|
|
cmake -E tar xf 7z1900-extra.7z 7za.exe
|
|
}
|
|
- if (-not (Test-Path libxml2-build/xmlconf)) {
|
|
Invoke-WebRequest -Uri https://www.w3.org/XML/Test/xmlts20080827.tar.gz -OutFile xmlts20080827.tar.gz ;
|
|
.\7za.exe x xmlts20080827.tar.gz -olibxml2-build
|
|
}
|
|
script:
|
|
- cmake -G Ninja -DBUILD_SHARED_LIBS="$Env:BUILD_SHARED_LIBS" -DCMAKE_INSTALL_PREFIX=libxml2-install -DCMAKE_BUILD_TYPE=RelWithDebInfo -S . -B libxml2-build
|
|
- cmake --build libxml2-build --target install
|
|
- New-Item -ItemType Directory libxml2-install\share\libxml2
|
|
- Copy-Item Copyright libxml2-install\share\libxml2
|
|
- cd libxml2-build
|
|
- ctest -VV
|
|
after_script:
|
|
- .\7za.exe a libxml2-$Env:CI_COMMIT_SHORT_SHA-$Env:MINGW_PACKAGE_PREFIX-$Env:SUFFIX.7z .\libxml2-install\*
|
|
cache:
|
|
key: "$MINGW_PACKAGE_PREFIX"
|
|
paths:
|
|
- libxml2-build/xmlconf/
|
|
- 7za.exe
|
|
artifacts:
|
|
paths:
|
|
- libxml2-$Env:CI_COMMIT_SHORT_SHA-$Env:MINGW_PACKAGE_PREFIX-$Env:SUFFIX.7z
|
|
expire_in: 1 day
|
|
|
|
cmake:mingw:w64-i686:shared:
|
|
extends: .cmake:mingw
|
|
only:
|
|
- schedules
|
|
variables:
|
|
BUILD_SHARED_LIBS: "ON"
|
|
MINGW_PACKAGE_PREFIX: mingw-w64-i686
|
|
MINGW_PATH: mingw32
|
|
SUFFIX: shared
|
|
|
|
cmake:mingw:w64-i686:static:
|
|
extends: .cmake:mingw
|
|
only:
|
|
- schedules
|
|
variables:
|
|
BUILD_SHARED_LIBS: "OFF"
|
|
MINGW_PACKAGE_PREFIX: mingw-w64-i686
|
|
MINGW_PATH: mingw32
|
|
SUFFIX: static
|
|
|
|
cmake:mingw:w64-x86_64:shared:
|
|
extends: .cmake:mingw
|
|
variables:
|
|
BUILD_SHARED_LIBS: "ON"
|
|
MINGW_PACKAGE_PREFIX: mingw-w64-x86_64
|
|
MINGW_PATH: mingw64
|
|
SUFFIX: shared
|
|
|
|
cmake:mingw:w64-x86_64:static:
|
|
extends: .cmake:mingw
|
|
only:
|
|
- schedules
|
|
variables:
|
|
BUILD_SHARED_LIBS: "OFF"
|
|
MINGW_PACKAGE_PREFIX: mingw-w64-x86_64
|
|
MINGW_PATH: mingw64
|
|
SUFFIX: static
|
|
|
|
.cmake:msvc:
|
|
tags:
|
|
- win32-ps
|
|
variables:
|
|
CMAKE_VERSION: 3.19.4
|
|
before_script:
|
|
- "[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12"
|
|
- if (-not (Test-Path cmake-$Env:CMAKE_VERSION-win64-x64)) {
|
|
Invoke-WebRequest -Uri http://github.com/Kitware/CMake/releases/download/v$Env:CMAKE_VERSION/cmake-$Env:CMAKE_VERSION-win64-x64.zip -OutFile cmake-$Env:CMAKE_VERSION-win64-x64.zip ;
|
|
Expand-Archive cmake-$Env:CMAKE_VERSION-win64-x64.zip -DestinationPath .
|
|
}
|
|
- $Env:Path="$Env:CI_PROJECT_DIR\cmake-$Env:CMAKE_VERSION-win64-x64\bin;$Env:Path"
|
|
- if (-not (Test-Path 7za.exe)) {
|
|
Invoke-WebRequest -Uri https://www.7-zip.org/a/7z1900-extra.7z -OutFile 7z1900-extra.7z ;
|
|
cmake -E tar xf 7z1900-extra.7z 7za.exe
|
|
}
|
|
- if (-not (Test-Path libxml2-build/xmlconf)) {
|
|
Invoke-WebRequest -Uri https://www.w3.org/XML/Test/xmlts20080827.tar.gz -OutFile xmlts20080827.tar.gz ;
|
|
.\7za.exe x xmlts20080827.tar.gz -olibxml2-build
|
|
}
|
|
script:
|
|
- cmake -DBUILD_SHARED_LIBS="$Env:BUILD_SHARED_LIBS" -DCMAKE_INSTALL_PREFIX=libxml2-install -DLIBXML2_WITH_ICONV=OFF -DLIBXML2_WITH_LZMA=OFF -DLIBXML2_WITH_PYTHON=OFF -DLIBXML2_WITH_ZLIB=OFF -S . -B libxml2-build
|
|
- cmake --build libxml2-build --config Debug --target install
|
|
- cmake --build libxml2-build --config Release --target install
|
|
- New-Item -ItemType Directory libxml2-install\share\libxml2
|
|
- Copy-Item Copyright libxml2-install\share\libxml2
|
|
- cd libxml2-build
|
|
- ctest -C Debug -VV
|
|
- ctest -C Release -VV
|
|
after_script:
|
|
- .\7za.exe a libxml2-$Env:CI_COMMIT_SHORT_SHA-$Env:CMAKE_GENERATOR_TOOLSET-$Env:CMAKE_GENERATOR_PLATFORM-$Env:SUFFIX.7z .\libxml2-install\*
|
|
cache:
|
|
key: "msvc"
|
|
paths:
|
|
- cmake-$Env:CMAKE_VERSION-win64-x64/
|
|
- libxml2-build/xmlconf/
|
|
- 7za.exe
|
|
artifacts:
|
|
paths:
|
|
- libxml2-$Env:CI_COMMIT_SHORT_SHA-$Env:CMAKE_GENERATOR_TOOLSET-$Env:CMAKE_GENERATOR_PLATFORM-$Env:SUFFIX.7z
|
|
expire_in: 1 day
|
|
|
|
.cmake:msvc:v141:
|
|
extends: .cmake:msvc
|
|
variables:
|
|
CMAKE_GENERATOR: Visual Studio 15 2017
|
|
CMAKE_GENERATOR_TOOLSET: v141
|
|
|
|
.cmake:msvc:v141:x64:
|
|
extends: .cmake:msvc:v141
|
|
variables:
|
|
CMAKE_GENERATOR_PLATFORM: x64
|
|
|
|
cmake:msvc:v141:x64:shared:
|
|
extends: .cmake:msvc:v141:x64
|
|
variables:
|
|
BUILD_SHARED_LIBS: "ON"
|
|
SUFFIX: shared
|
|
|
|
cmake:msvc:v141:x64:static:
|
|
extends: .cmake:msvc:v141:x64
|
|
only:
|
|
- schedules
|
|
variables:
|
|
BUILD_SHARED_LIBS: "OFF"
|
|
SUFFIX: static
|
|
|
|
.cmake:msvc:v141:x86:
|
|
extends: .cmake:msvc:v141
|
|
only:
|
|
- schedules
|
|
variables:
|
|
CMAKE_GENERATOR_PLATFORM: Win32
|
|
|
|
cmake:msvc:v141:x86:shared:
|
|
extends: .cmake:msvc:v141:x86
|
|
only:
|
|
- schedules
|
|
variables:
|
|
BUILD_SHARED_LIBS: "ON"
|
|
SUFFIX: shared
|
|
|
|
cmake:msvc:v141:x86:static:
|
|
extends: .cmake:msvc:v141:x86
|
|
variables:
|
|
BUILD_SHARED_LIBS: "OFF"
|
|
SUFFIX: static
|