Commit Graph

1308 Commits (d8709de9f232483943132e6ffdf54ae8fdb0839d)
 

Author SHA1 Message Date
Tamir Duberstein d62ae98889
integration-test: Remove RUSTC from cargo-in-cargo
Fixes #686.
1 year ago
Tamir Duberstein f334cbd86e
Merge pull request #693 from aya-rs/public-diff-backwards
xtask: reverse public API diff direction
1 year ago
Tamir Duberstein 8d7545aff8
xtask: reverse public API diff direction
This is currently producing inverse diffs.
1 year ago
Dave Tucker 41fc87c2e6
Merge pull request #691 from aya-rs/public-api-followup
public api followup
1 year ago
Tamir Duberstein 321bda7539
public-api: simplify and improve output 1 year ago
Tamir Duberstein 06d6a3e7a6
vscode: exclude public-api fixtures from search 1 year ago
ajwerner 8e144a5c29
Merge pull request #661 from ajwerner/integration-tests-in-release
integration-tests: run in release also
1 year ago
Dave Tucker e30df50fb7
Merge pull request #682 from dave-tucker/public-api
xtask: Add cargo-public-api
1 year ago
Dave Tucker f833f1fc1d xtask: Add cargo-public-api
Adds cargo-public-api. This allows for public API changes to get caught
in CI, requiring new changes to be "blessed" by using:

  cargo xtask public-api --bless

When this file is changed for aya, Alessandro will need to review the PR.

Signed-off-by: Dave Tucker <dave@dtucker.co.uk>
1 year ago
Andrew Werner 7575628d1b integration-tests: run in release also
In release, the trigger functions were being optimized out and the
tests did not work. Use core::hint::black_box to ensure that the
functions are not optimized out. Also, run these integration tests
in CI to ensure that we don't regress.
1 year ago
Tamir Duberstein 53d36a3fe0
Merge pull request #688 from aya-rs/get-fd-owned
sys: bpf_prog_get_fd_by_id returns OwnedFd
1 year ago
Tamir Duberstein eb80e6f37e
Merge pull request #689 from aya-rs/parallel-ci
github: parallel all the CI
1 year ago
Tamir Duberstein d6322d2da3
github: parallel all the CI
Human time is more precious than computer time.
1 year ago
Tamir Duberstein 76c78e3bf8
sys: bpf_prog_get_fd_by_id returns OwnedFd 1 year ago
Tamir Duberstein 51cd36378a
Merge pull request #687 from ajwerner/cargo-args
xtask: allow arbitrary flags to cargo build
1 year ago
Tamir Duberstein a6b1fb9a1e xtask: allow arbitrary flags to cargo build 1 year ago
Tamir Duberstein 5ebaf5f393
Merge pull request #683 from aya-rs/logs-wtf
Refactor log macro for readability
1 year ago
Dave Tucker 68174d7d73
Merge pull request #685 from aya-rs/dependabot/cargo/cargo_metadata-0.17.0
build(deps): update cargo_metadata requirement from 0.15.4 to 0.17.0
1 year ago
dependabot[bot] 4b6579e2f1
build(deps): update cargo_metadata requirement from 0.15.4 to 0.17.0
Updates the requirements on [cargo_metadata](https://github.com/oli-obk/cargo_metadata) to permit the latest version.
- [Release notes](https://github.com/oli-obk/cargo_metadata/releases)
- [Changelog](https://github.com/oli-obk/cargo_metadata/blob/main/CHANGELOG.md)
- [Commits](https://github.com/oli-obk/cargo_metadata/compare/0.15.4...0.15.4)

---
updated-dependencies:
- dependency-name: cargo_metadata
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
1 year ago
vadorovsky aed74d5ab3
Merge pull request #669 from aya-rs/bpf-linker-hella-warnings
integration-test: shuttle linker logs to user
1 year ago
Tamir Duberstein b3db9161eb
Refactor log macro for readability
This happens to fix the miscompilation that occurs when bpf-linker is
moved to LLVM's new pass manager. A later commit will avoid the
miscompilation more convincingly.
1 year ago
Tamir Duberstein 74fc50bf7e
integration-test: shuttle stdio to user
Trampoline cargo-in-cargo stdio through cargo:warning to ensure the user
sees all the output.

Use bpf-linker from git in CI so we can see what's going on there.
1 year ago
Dave Tucker ec5ff01e41
Merge pull request #681 from aya-rs/fix-cargo-test
test: document cargo build scripts
1 year ago
Tamir Duberstein a84bd1a95d
test: document cargo build scripts 1 year ago
Tamir Duberstein 8cec4b25f9
Revert "integration-test: add to default-members"
This reverts commit 025c76780c.

Fixes #678.
1 year ago
Dave Tucker ff11c65734
Merge pull request #680 from dave-tucker/ci-cleanup
.github: Consolidate CI workflows into one
1 year ago
Dave Tucker 3b859ba70a ci: Bump ubunutu
Signed-off-by: Dave Tucker <dave@dtucker.co.uk>
1 year ago
Dave Tucker cf0c866458 .github: Consolidate CI workflows into one
This gives a better view of the CI pipeline in Github.
Gives us control over what runs and when.
And finally, lets us check only a single status in mergify.

Signed-off-by: Dave Tucker <dave@dtucker.co.uk>
1 year ago
vadorovsky f554d42105
Merge pull request #667 from vadorovsky/workspace-dependencies
cargo: Define dependencies on the workspace level
1 year ago
Mike Rostecki 96fa08bd82 cargo: Define dependencies on the workspace level
This way we will avoid version mismatches and make differences in
features across our crates clearer.
1 year ago
Tamir Duberstein 05e782abbf
Merge pull request #677 from aya-rs/ebpf-dep-better
rebuild ebpf on bpf-linker
1 year ago
Tamir Duberstein 6fc09ca07a
integration-test: build-dep on integration-ebpf
Remove the manual dependency tracking machinery in
integration-test/build.rs in favor of a build-dependency on
integration-ebpf. This required adding an empty lib.rs to create the
library target.

This allows integration-test/build.rs to be ignorant of bpf-linker.
Remove that in favor of the logic now in integration-ebpf.
1 year ago
Tamir Duberstein e276c07f73
integration-ebpf: invalidate on bpf-linker
Extract the symlink-to-bpf-linker logic from integration-test to xtask
and use it in a new build script in integration-ebpf, causing ebpf
probes to be rebuilt when bpf-linker changes. Previously bpf-linker
changes would rebuild integration-test, but not integration-ebpf,
resulting in stale tests.

Note that this still doesn't address the possibility that a new
bpf-linker is added to the PATH ahead of the cached one. Solving this in
the general case would require rebuild-if-changed-env=PATH *and*
rebuild-if-changed={every-directory-in-PATH} which would likely mean far
too much cache invalidation.
1 year ago
Tamir Duberstein 0168396604
integration-ebpf: add cargo config
Same reasoning as the one in bpf.
1 year ago
Tamir Duberstein 025c76780c
integration-test: add to default-members
This works now that build.rs does the right thing.

Update the `miri test` command in the lint job so it has the proper
exclusions; it is now in line with the invocations in the build-test job.
1 year ago
ajwerner b28d4c34ee
Merge pull request #674 from ajwerner/use-nightly-to-build-ebpf
test/integration-test: use +nightly for ebpf
1 year ago
Andrew Werner 97eb8afeac integration-test: use nightly toolchain with ebpf
The ebpf probes require a nightly compiler. Before this change, if you
ran `cargo xtask integration-test` with a stable compiler toolchain as
default, or you ran `cargo +stable xtask integration-test`, you would
have seen an error like the one below. This is now fixed by running the
cargo build command in the integration-ebpf directory and making sure
to clear the RUSTUP_TOOLCHAIN env var.

```
  --- stderr
  /home/ajwerner/src/github.com/aya-rs/aya/test/integration-test/bpf/ring_buf_sched_tracepoint.bpf.c:18:21: warning: declaration of 'struct switch_args' will not be visible outside of this function [-Wvisibility]
  int bpf_prog(struct switch_args* ctx)
                      ^
  1 warning generated.
  error: the `-Z` flag is only accepted on the nightly channel of Cargo, but this is the `stable` channel
  See https://doc.rust-lang.org/book/appendix-07-nightly-rust.html for more information about Rust release channels.
  thread 'main' panicked at '"cargo" "build" "-p" "integration-ebpf" "-Z" "build-std=core" "--release" "--message-format=json" "--target" "bpfel-unknown-none" "--target-dir" "/home/ajwerner/src/github.com/aya-rs/aya/target/debug/build/integration-test-9bbcb3db5e9f8f57/out/integration-ebpf" exited
with status code 101:
  ', test/integration-test/build.rs:219:25
  note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
Error: error while building userspace application

Caused by:
    Child { stdin: None, stdout: None, stderr: None, .. } exited with status code 101:
```
1 year ago
ajwerner 54ba471b41
Merge pull request #673 from ajwerner/update-test-readme
test: update README.md
1 year ago
Dave Tucker 7ac808cf55
Merge pull request #671 from dave-tucker/misc-fixes
Clippy fixes for latest nightly
1 year ago
Andrew Werner af747f8caa test: update README.md
A checkout of libbpf is no longer required.
1 year ago
Dave Tucker 764eb309b0 Clippy fixes for latest nightly
Signed-off-by: Dave Tucker <dave@dtucker.co.uk>
1 year ago
ajwerner 78ede184bd
Merge pull request #664 from ajwerner/always-initialize-submodules
xtask: ensure libbpf submodule is initialized
1 year ago
vadorovsky 2755713cf0
Merge pull request #668 from aya-rs/invalidate-bpf-linker
integration-test: invalidate on bpf-linker
1 year ago
Tamir Duberstein 55b2010f19
integration-test: invalidate on bpf-linker
It turns out that cargo ignores rerun-if-changed directives that point
into $CARGO_HOME; use a symlink to trick cargo into respecting my
authoritah.
1 year ago
Andrew Werner d5259ce789 xtask: move libbpf submodule 1 year ago
Andrew Werner 15b3c459ae xtask: ensure libbpf submodule is initialized
Libbpf is used by xtasks, in the command, ensure that the submodules
are initialized. This eases the user-experience so that users don't
need to think about the submodule, while retaining all the benefits
of using a submodule vs forcing the user to manually check out libbpf
and stick it in some pre-defined place.

We use the symbol pointing to libbpf in xtask in the build script
to avoid repeating this constant.

Also, we install git in the vm so that we can init the submodule
when we build in the vm.
1 year ago
vadorovsky dc3b0b8730
Merge pull request #666 from aya-rs/toml-fmt
toml: add formatter and check in CI
1 year ago
Tamir Duberstein c8bf646ef0
toml: add formatter and check in CI 1 year ago
Andrew Werner 4306b222d8 .github: update codegen workflow to use submodule 1 year ago
Tamir Duberstein 893ab76afa
Merge pull request #665 from aya-rs/dead-code-rm
aya: avoid an allocation
1 year ago