A C library for asynchronous DNS requests (grpc依赖)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

127 lines
4.8 KiB

# Copyright (C) The c-ares project and its contributors
# SPDX-License-Identifier: MIT
env:
CIRRUS_CLONE_DEPTH: 1
CMAKE_FLAGS: "-DCMAKE_BUILD_TYPE=DEBUG -DCARES_STATIC=ON -DCARES_STATIC_PIC=ON -G Ninja"
CMAKE_TEST_FLAGS: "-DCARES_BUILD_TESTS=ON"
task:
matrix:
- name: "Debian arm64"
env:
DIST: "DEBIAN-ARM"
LC_ALL: "C"
SCAN_BUILD: "scan-build"
MAKE: "make"
# For whatever reason, ASAN and UBSAN are likely to result in compiler
# termination on debian arm64. I can't tell if this is really a crash
# or something like the OOM killer:
# /usr/bin/c++ -DHAVE_CONFIG_H=1 -D_GNU_SOURCE -D_POSIX_C_SOURCE=200809L -D_XOPEN_SOURCE=700 -I/tmp/cirrus-ci-build/cmakebld/test -I/tmp/cirrus-ci-build/cmakebld -I/tmp/cirrus-ci-build/cmakebld/src/lib -I/tmp/cirrus-ci-build -I/tmp/cirrus-ci-build/src/lib -I/tmp/cirrus-ci-build/include -fsanitize=address -Wall -Wextra -Wcast-align -Wformat-security -Wmissing-declarations -Wmissing-format-attribute -Wpacked-bitfield-compat -Wredundant-decls -Wvla -Wno-unused-parameter -Wconversion -Wfloat-equal -Wsign-conversion -fdiagnostics-color=always -g -fno-omit-frame-pointer -O0 -DGTEST_HAS_PTHREAD=1 -std=c++14 -MD -MT test/CMakeFiles/arestest.dir/ares-test-parse-a.cc.o -MF test/CMakeFiles/arestest.dir/ares-test-parse-a.cc.o.d -o test/CMakeFiles/arestest.dir/ares-test-parse-a.cc.o -c /tmp/cirrus-ci-build/test/ares-test-parse-a.cc
# c++: fatal error: Killed signal terminated program cc1plus
# Skip for now on arm.
BUILD_ASAN: "no"
BUILD_UBSAN: "no"
BUILD_ANALYZE: "yes"
TEST_DEBUGGER: "gdb"
arm_container:
image: debian:latest
- name: "FreeBSD amd64"
env:
DIST: "FREEBSD"
SCAN_BUILD: "scan-build"
TEST_DEBUGGER: "lldb"
MAKE: "gmake"
BUILD_ANALYZE: "yes"
TEST_SYMBOL_VISIBILITY: "yes"
freebsd_instance:
image_family: freebsd-14-1
matrix:
- name: "CMAKE"
env:
BUILD_TYPE: "cmake"
- name: "AUTOTOOLS"
env:
BUILD_TYPE: "autotools"
- name: "ASAN"
# ASAN on Linux automatically includes Leak Sanitizer
# FreeBSD just hangs trying to run tests, think it may be trying to run leak sanitizer
only_if: $BUILD_ASAN == 'yes'
env:
BUILD_TYPE: "asan"
CC: "clang"
TEST_DEBUGGER: "none"
CONFIG_OPTS: "--enable-debug"
CFLAGS: "-fsanitize=address"
CXXFLAGS: "-fsanitize=address"
LDFLAGS: "-fsanitize=address"
- name: "UBSAN"
# FreeBSD just hangs trying to run tests, think it may be trying to run leak sanitizer
only_if: $BUILD_UBSAN == 'yes'
env:
BUILD_TYPE: "ubsan"
CC: "clang"
TEST_DEBUGGER: "none"
CONFIG_OPTS: "--enable-debug"
CFLAGS: "-fsanitize=undefined -fno-sanitize-recover"
CXXFLAGS: "-fsanitize=undefined -fno-sanitize-recover"
LDFLAGS: "-fsanitize=undefined"
- name: "ANALYZE"
only_if: $BUILD_ANALYZE == 'yes'
env:
BUILD_TYPE: "analyze"
CC: "clang"
TEST_DEBUGGER: "lldb"
SCAN_WRAP: "${SCAN_BUILD} -v --status-bugs"
CONFIG_OPTS: "--enable-debug --disable-tests"
CMAKE_TEST_FLAGS: "-DCARES_BUILD_TESTS=OFF"
- name: "VALGRIND"
# FreeBSD just hangs trying to run tests, think it may be trying to run leak sanitizer
only_if: $BUILD_VALGRIND == 'yes'
env:
BUILD_TYPE: "valgrind"
TEST_WRAP: "valgrind --leak-check=full"
TEST_FILTER: "-4 --gtest_filter=-*Container*:-*LiveSearchANY*"
install_script:
- |
case "${DIST}" in
UBUNTU|DEBIAN*)
export DEBIAN_FRONTEND=noninteractive && \
apt-get update && \
apt-get install -y cmake ninja-build autoconf automake libtool g++ libgmock-dev pkg-config
case "${BUILD_TYPE}" in
asan|lsan|ubsan)
apt-get install -yq clang lldb
;;
analyze)
apt-get install -yq clang clang-tools lldb
;;
valgrind)
apt-get install -yq valgrind
;;
*)
apt-get install -yq gdb
;;
esac
;;
FREEBSD)
# pkg upgrade -y && \
pkg install -y bash cmake ninja googletest pkgconf llvm gmake
ln -sf /usr/local/bin/bash /bin/bash
# Enable TCP FastOpen
sysctl net.inet.tcp.fastopen.server_enable=1
sysctl net.inet.tcp.fastopen.client_enable=1
case "${BUILD_TYPE}" in
autotools)
pkg install -y autoconf automake libtool
;;
esac
;;
esac
script:
- ./ci/build.sh
- ./ci/test.sh
- if [ "$BUILD_TYPE" = "autotools" -a "$DIST" = "DEBIAN" ]; then ./ci/distcheck.sh ; fi