runtime: add kernel user perf event array and per cpu array #188
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Build and run all integrated tests (examples) | |
on: | |
push: | |
branches: "*" | |
pull_request: | |
branches: "*" | |
jobs: | |
build-runtime: | |
runs-on: ubuntu-22.04 | |
steps: | |
- uses: actions/checkout@v2 | |
with: | |
submodules: 'recursive' | |
- name: Install dependencies | |
run: | | |
sudo apt-get install binutils-dev libboost1.74-all-dev libelf-dev zlib1g-dev libyaml-cpp-dev gcc-12 g++-12 llvm | |
- name: Build and install runtime | |
run: | | |
CC=gcc-12 CXX=g++-12 make release -j | |
- name: Build and install CLI | |
run: | | |
cd tools/cli-rs | |
RUSTFLAGS="-C target-feature=+crt-static" cargo build --release --target x86_64-unknown-linux-gnu | |
mkdir -p ~/.bpftime | |
cp ./target/x86_64-unknown-linux-gnu/release/bpftime ~/.bpftime | |
- name: Upload build results | |
uses: actions/upload-artifact@v3 | |
with: | |
name: runtime-package | |
path: | | |
/home/runner/.bpftime | |
build-and-test: | |
runs-on: ubuntu-22.04 | |
needs: [build-runtime] | |
strategy: | |
fail-fast: true | |
matrix: | |
examples: | |
- path: libbpf-tools/opensnoop | |
executable: opensnoop | |
victim: ./victim | |
syscall_trace: true | |
- path: libbpf-tools/statsnoop | |
executable: statsnoop | |
victim: ./victim | |
syscall_trace: true | |
- path: malloc | |
executable: malloc | |
victim: ./victim | |
syscall_trace: false | |
- path: opensnoop | |
executable: opensnoop | |
victim: ./victim | |
syscall_trace: false | |
- path: sslsniff | |
executable: sslsniff | |
victim: /bin/wget https://www.google.com | |
syscall_trace: false | |
- path: libbpf-tools/bashreadline | |
executable: readline | |
victim: /bin/bash | |
syscall_trace: false | |
steps: | |
- uses: actions/checkout@v2 | |
with: | |
submodules: 'recursive' | |
- name: Download prebuilt runtime | |
uses: actions/download-artifact@v3 | |
with: | |
name: runtime-package | |
path: /home/runner/.bpftime | |
- name: Set permissions | |
run: | | |
chmod +x ~/.bpftime/* | |
- name: Show downloaded artifacts | |
run: | | |
ls ~/.bpftime | |
- name: Install dependencies | |
run: | | |
sudo apt-get update -y | |
sudo apt-get install -y zlib1g-dev libelf-dev | |
- name: Build test assets | |
run: | | |
make -C example/${{matrix.examples.path}} -j | |
- name: Test CLI - show help | |
run: | | |
export PATH=$PATH:~/.bpftime | |
bpftime --help | |
- name: Test CLI - attach by running (syscall_trace) | |
if: matrix.examples.syscall_trace | |
shell: "sudo /bin/bash -e {0}" | |
run: | | |
cd example/${{matrix.examples.path}} | |
timeout -s 2 30s sudo -E /home/runner/.bpftime/bpftime -i /home/runner/.bpftime load ./${{matrix.examples.executable}} || if [ $? = 124 ]; then exit 0; else exit $?; fi & | |
sleep 3s | |
ID1=$! | |
timeout -s 2 15s sudo -E /home/runner/.bpftime/bpftime -i /home/runner/.bpftime start -s ${{matrix.examples.victim}} || if [ $? = 124 ]; then exit 0; else exit $?; fi | |
fg $ID1 || true | |
- name: Test CLI - attach by running (uprobe) | |
if: '!matrix.examples.syscall_trace' | |
shell: "sudo /bin/bash -e {0}" | |
run: | | |
cd example/${{matrix.examples.path}} | |
timeout -s 2 30s sudo -E /home/runner/.bpftime/bpftime -i /home/runner/.bpftime load ./${{matrix.examples.executable}} || if [ $? = 124 ]; then exit 0; else exit $?; fi & | |
sleep 3s | |
ID1=$! | |
timeout -s 2 15s sudo -E /home/runner/.bpftime/bpftime -i /home/runner/.bpftime start ${{matrix.examples.victim}} || if [ $? = 124 ]; then exit 0; else exit $?; fi | |
fg $ID1 || true |