41 lines
1.4 KiB
Markdown
41 lines
1.4 KiB
Markdown
# How to contribute
|
|
|
|
Development is on [GitHub](https://github.com/cilium/ebpf) and contributions in
|
|
the form of pull requests and issues reporting bugs or suggesting new features
|
|
are welcome. Please take a look at [the architecture](ARCHITECTURE.md) to get
|
|
a better understanding for the high-level goals.
|
|
|
|
New features must be accompanied by tests. Before starting work on any large
|
|
feature, please [join](https://ebpf.io/slack) the
|
|
[#ebpf-go](https://cilium.slack.com/messages/ebpf-go) channel on Slack to
|
|
discuss the design first.
|
|
|
|
When submitting pull requests, consider writing details about what problem you
|
|
are solving and why the proposed approach solves that problem in commit messages
|
|
and/or pull request description to help future library users and maintainers to
|
|
reason about the proposed changes.
|
|
|
|
## Running the tests
|
|
|
|
Many of the tests require privileges to set resource limits and load eBPF code.
|
|
The easiest way to obtain these is to run the tests with `sudo`.
|
|
|
|
To test the current package with your local kernel you can simply run:
|
|
```
|
|
go test -exec sudo ./...
|
|
```
|
|
|
|
To test the current package with a different kernel version you can use the [run-tests.sh](run-tests.sh) script.
|
|
It requires [virtme](https://github.com/amluto/virtme) and qemu to be installed.
|
|
|
|
Examples:
|
|
|
|
```bash
|
|
# Run all tests on a 5.4 kernel
|
|
./run-tests.sh 5.4
|
|
|
|
# Run a subset of tests:
|
|
./run-tests.sh 5.4 go test ./link
|
|
```
|
|
|