Skip to content

bfd: fix partial write handling in bwritev() #298

bfd: fix partial write handling in bwritev()

bfd: fix partial write handling in bwritev() #298

Workflow file for this run

name: CI
on: [push, pull_request]
# Cancel any preceding run on the pull request.
concurrency:
group: ci-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: ${{ github.ref != 'refs/heads/criu-dev' }}
jobs:
alpine-test:
name: Alpine Test
strategy:
matrix:
os: [ubuntu-22.04]
target: [GCC=1, CLANG=1]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
- name: Run Alpine ${{ matrix.target }} Test
run: sudo -E make -C scripts/ci alpine ${{ matrix.target }}
alpine-test-arm64:
name: Alpine Test ARM64
needs: [alpine-test]
strategy:
matrix:
os: [ubuntu-22.04-arm]
target: [GCC=1, CLANG=1]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
- name: Run Alpine ${{ matrix.target }} Test
run: sudo -E make -C scripts/ci alpine ${{ matrix.target }}
aarch64-test:
needs: [alpine-test]
strategy:
matrix:
os: [ubuntu-24.04-arm, ubuntu-22.04-arm]
target: [GCC=1, CLANG=1]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
- name: Run Tests ${{ matrix.target }} on ${{ matrix.os }}
run: |
# The 'sched_policy00' needs the following:
sudo sysctl -w kernel.sched_rt_runtime_us=-1
# etc/hosts entry is needed for netns_lock_iptables
echo "127.0.0.1 localhost" | sudo tee -a /etc/hosts
sudo -E make -C scripts/ci local ${{ matrix.target }} RUN_TESTS=1 \
ZDTM_OPTS="-x zdtm/static/change_mnt_context -x zdtm/static/maps05"
archlinux-test:
needs: [alpine-test]
# archlinux:latest + pacman -Syu is a rolling-release build; failures
# caused by upstream package churn are outside CRIU's control.
continue-on-error: true
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v4
- name: Run Arch Linux Test
run: sudo -E make -C scripts/ci archlinux
compat-test:
needs: [alpine-test]
runs-on: ubuntu-22.04
strategy:
matrix:
target: [GCC, CLANG]
steps:
- uses: actions/checkout@v4
- name: Run Compat Tests (${{ matrix.target }})
run: sudo -E make -C scripts/ci local COMPAT_TEST=y ${{ matrix.target }}=1
cross-compile:
needs: [alpine-test]
runs-on: ubuntu-latest
continue-on-error: ${{ matrix.experimental }}
strategy:
fail-fast: false
matrix:
experimental: [false]
target: [
armv7-stable-cross,
aarch64-stable-cross,
ppc64-stable-cross,
riscv64-stable-cross,
]
include:
- experimental: true
target: armv7-unstable-cross
- experimental: true
target: aarch64-unstable-cross
- experimental: true
target: ppc64-unstable-cross
steps:
- uses: actions/checkout@v4
- name: Run Cross Compilation Targets
run: >
sudo make -C scripts/ci ${{ matrix.target }}
docker-test:
needs: [alpine-test]
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-22.04]
steps:
- uses: actions/checkout@v4
- name: Run Docker Test (${{ matrix.os }})
run: sudo make -C scripts/ci docker-test
fedora-asan-test:
needs: [alpine-test]
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v4
- name: Run Fedora ASAN Test
run: sudo -E make -C scripts/ci fedora-asan
fedora-rawhide-test:
needs: [alpine-test]
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v4
- name: Run Fedora Rawhide Test
# We need to pass environment variables from the CI environment to
# distinguish between CI environments. However, we need to make sure that
# XDG_RUNTIME_DIR environment variable is not set due to a bug in Podman.
# FIXME: https://github.com/containers/podman/issues/14920
run: sudo -E XDG_RUNTIME_DIR= make -C scripts/ci fedora-rawhide CONTAINER_RUNTIME=podman BUILD_OPTIONS="--security-opt seccomp=unconfined"
gcov-test:
needs: [alpine-test]
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v4
- name: Run Coverage Tests
run: sudo -E make -C scripts/ci local GCOV=1
- name: Run gcov
run: sudo -E find . -name '*gcda' -type f -print0 | sudo -E xargs --null --max-args 128 gcov
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v5
with:
token: ${{ secrets.CODECOV_TOKEN }}
java-test:
needs: [alpine-test]
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v4
- name: Run Java Test
run: sudo make -C scripts/ci java-test
loongarch64-qemu-test:
needs: [alpine-test]
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v4
- run: sudo make -C scripts/ci loongarch64-qemu-test
nftables-test:
needs: [alpine-test]
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@v4
- name: Remove iptables
run: sudo apt remove -y iptables
- name: Install libnftables-dev
run: sudo contrib/apt-install libnftables-dev
- name: chmod 755 /home/runner
# CRIU's tests are sometimes running as some random user and need
# to be able to access the test files.
run: sudo chmod 755 /home/runner
- name: Build with nftables network locking backend
run: sudo make -C scripts/ci local COMPILE_FLAGS="NETWORK_LOCK_DEFAULT=NETWORK_LOCK_NFTABLES"
podman-test:
needs: [alpine-test]
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v4
- name: Run Podman Test
run: sudo make -C scripts/ci podman-test
stream-test:
needs: [alpine-test]
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v4
- name: Run CRIU Image Streamer Test
run: sudo -E make -C scripts/ci local STREAM_TEST=1
x86-64-clang-test:
needs: [alpine-test]
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v4
- name: Run X86_64 CLANG Test
run: sudo make -C scripts/ci x86_64 CLANG=1
x86-64-gcc-test:
needs: [alpine-test]
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v4
- name: Run X86_64 GCC Test
run: sudo make -C scripts/ci x86_64