fail_ci_if_error: false
flags: unittests
+ ubuntu-22-04-cov-pcapunix:
+ name: Ubuntu 22.04 (unix socket mode coverage)
+ runs-on: ubuntu-latest
+ container:
+ image: ubuntu:22.04
+ options: --privileged
+ needs: [prepare-deps, prepare-cbindgen]
+ steps:
+ - name: Cache ~/.cargo
+ uses: actions/cache@13aacd865c20de90d75de3b17ebe84f7a17d57d2
+ with:
+ path: ~/.cargo
+ key: ${{ github.job }}-cargo
+ - name: Determine number of CPUs
+ run: echo CPUS=$(nproc --all) >> $GITHUB_ENV
+
+ - name: Install dependencies
+ run: |
+ apt update
+ apt -y install \
+ libpcre2-dev \
+ build-essential \
+ autoconf \
+ automake \
+ llvm-14-dev \
+ clang-14 \
+ git \
+ jq \
+ inetutils-ping \
+ libc++-dev \
+ libc++abi-dev \
+ libtool \
+ libpcap-dev \
+ libnet1-dev \
+ libyaml-0-2 \
+ libyaml-dev \
+ libcap-ng-dev \
+ libcap-ng0 \
+ libmagic-dev \
+ libnetfilter-queue-dev \
+ libnetfilter-queue1 \
+ libnfnetlink-dev \
+ libnfnetlink0 \
+ libnuma-dev \
+ libhiredis-dev \
+ liblua5.1-dev \
+ libjansson-dev \
+ libevent-dev \
+ libevent-pthreads-2.1-7 \
+ libpython2.7 \
+ make \
+ parallel \
+ python3-yaml \
+ software-properties-common \
+ sudo \
+ zlib1g \
+ zlib1g-dev \
+ exuberant-ctags \
+ unzip \
+ curl \
+ time \
+ wget
+ # specific version to match up to the llvm version in ubuntu below
+ - name: Install Rust
+ run: curl https://sh.rustup.rs -sSf | sh -s -- --default-toolchain 1.63.0 -y
+ - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11
+ - run: git config --global --add safe.directory /__w/suricata/suricata
+ - uses: actions/download-artifact@c850b930e6ba138125429b7e5c93fc707a7f8427
+ with:
+ name: prep
+ path: prep
+ - run: tar xf prep/libhtp.tar.gz
+ - run: tar xf prep/suricata-verify.tar.gz
+ - uses: actions/download-artifact@c850b930e6ba138125429b7e5c93fc707a7f8427
+ with:
+ name: cbindgen
+ path: prep
+ - name: Setup cbindgen
+ run: |
+ mkdir -p $HOME/.cargo/bin
+ cp prep/cbindgen $HOME/.cargo/bin
+ chmod 755 $HOME/.cargo/bin/cbindgen
+ echo "$HOME/.cargo/bin" >> $GITHUB_PATH
+ - name: Fix kernel mmap rnd bits
+ # Asan in llvm 14 provided in ubuntu 22.04 is incompatible with
+ # high-entropy ASLR in much newer kernels that GitHub runners are
+ # using leading to random crashes: https://github.com/actions/runner-images/issues/9491
+ run: sudo sysctl vm.mmap_rnd_bits=28
+ - run: ./autogen.sh
+ - run: ./configure --with-gnu-ld --disable-shared --enable-gccprotect --localstatedir=/var --prefix=/usr --sysconfdir=/etc
+ env:
+ CC: "clang-14"
+ CXX: "clang++-14"
+ RUSTFLAGS: "-C instrument-coverage"
+ CFLAGS: "-fprofile-instr-generate -fcoverage-mapping -O0 -g -fno-strict-aliasing"
+ CXXFLAGS: "-fprofile-instr-generate -fcoverage-mapping -O0 -g -fno-strict-aliasing"
+ ac_cv_func_malloc_0_nonnull: "yes"
+ ac_cv_func_realloc_0_nonnull: "yes"
+ - run: make -j ${{ env.CPUS }}
+ env:
+ CC: "clang-14"
+ CXX: "clang++-14"
+ RUSTFLAGS: "-C instrument-coverage"
+ - run: |
+ ./qa/unix.sh "suricata-verify/"
+ env:
+ LLVM_PROFILE_FILE: "/tmp/unix.profraw"
+ - run: llvm-profdata-14 merge -o default.profdata $(find /tmp/ -name '*.profraw')
+ - run: llvm-cov-14 show ./src/suricata -instr-profile=default.profdata --show-instantiations --ignore-filename-regex="^/root/.*" > coverage.txt
+ - name: Upload coverage to Codecov
+ uses: codecov/codecov-action@c16abc29c95fcf9174b58eb7e1abf4c866893bc8
+ with:
+ fail_ci_if_error: false
+ flags: pcap
+
ubuntu-22-04-cov-afpdpdk:
name: Ubuntu 22.04 (afpacket and dpdk coverage)
runs-on: ubuntu-latest