diff options
author | Steve Loveless <steve.loveless@gmail.com> | 2023-06-26 22:04:24 -0700 |
---|---|---|
committer | git <svn-admin@ruby-lang.org> | 2023-08-15 20:52:06 +0000 |
commit | e6e23b92e3019e27471c9bf7a97db5f95e7a9a29 (patch) | |
tree | db9da4554b9cede85f7994ba36ecfdc003efe38e /.github | |
parent | 0f94e653597dc2ae21ae39ac4c85266f3bb36ab6 (diff) | |
download | ruby-e6e23b92e3019e27471c9bf7a97db5f95e7a9a29.tar.gz |
[ruby/yarp] rust: Initial yarp-sys
Still need to add more tests
Update Cargo.toml; add README
Switch yp_string_t_type variants to SNAKE_CASE
Add unescape tests
Add encoding callback tests
Add pack_parse test
Add diagnostic test
Add comment test
Add node tests
Add string_list tests
Add other string tests
Add shared string test
Add list tests
Fixes for updated branch
Run bundle install before running Rust tests
Fix version test
ci: Add proper config for rust-toolchain step for sanitizers
ci: Fix tests, clippy
Remove extra `bundle install`; run `bundle exec rake`
Didn't realize `setup-ruby`'s `bundle-cache: true` runs `bundle install`.
Remove `rake compile` from build.rs
This is complicating CI for me; maybe we add it back later.
Undo README formatting changes
Fix UB in C callbacks
Use slice+str instead of String for raw things
Move bindings to bindings module
Handle non-UTF-8 strings in paths
rust ci: test with sanitizers; add -D warnings
Update rust-bindings.yml
Update Cargo.toml
Don't need to compile extra crate_types
PR changes
Apply patch from @kddnewton
Delete unescape_tests.rs
Fix things after rebasing
https://github.com/ruby/yarp/commit/273790e40b
Diffstat (limited to '.github')
-rw-r--r-- | .github/workflows/rust-bindings.yml | 101 |
1 files changed, 101 insertions, 0 deletions
diff --git a/.github/workflows/rust-bindings.yml b/.github/workflows/rust-bindings.yml new file mode 100644 index 0000000000..80fa75bce5 --- /dev/null +++ b/.github/workflows/rust-bindings.yml @@ -0,0 +1,101 @@ +--- +name: Rust Bindings + +on: + push: + paths: + - ".github/workflows/rust-bindings.yml" + - "include/" + - "src/" + - "rust/" + - "*akefile*" + branches: + - main + pull_request: + +env: + RUSTFLAGS: "-D warnings" + +jobs: + cargo-test: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - name: Set up Ruby + uses: ruby/setup-ruby@v1 + with: + ruby-version: head + bundler-cache: true + - uses: actions/cache@v3 + with: + path: | + ~/.cargo/registry + ~/.cargo/git + target + key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.toml') }} + restore-keys: | + ${{ runner.os }}-cargo-${{ hashFiles('Cargo.toml') }} + ${{ runner.os }}-cargo + - name: rake compile + run: bundle exec rake compile + - name: cargo test + working-directory: rust/yarp-sys + run: cargo test + + cargo-clippy: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - name: Set up Ruby + uses: ruby/setup-ruby@v1 + with: + ruby-version: head + bundler-cache: true + - uses: actions/cache@v3 + with: + path: | + ~/.cargo/registry + ~/.cargo/git + target + key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.toml') }} + restore-keys: | + ${{ runner.os }}-cargo-${{ hashFiles('Cargo.toml') }} + ${{ runner.os }}-cargo + - name: rake compile + run: bundle exec rake compile + - name: cargo clippy + working-directory: rust/yarp-sys + run: cargo clippy --tests -- -W "clippy::pedantic" + + sanitizer-test: + name: Test with -Zsanitizer=${{ matrix.sanitizer }} + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + sanitizer: [address, leak] + steps: + - uses: actions/checkout@v3 + - name: Set up Ruby + uses: ruby/setup-ruby@v1 + with: + ruby-version: head + bundler-cache: true + - name: rake compile + run: bundle exec rake compile + - uses: dtolnay/rust-toolchain@nightly + with: + target: "x86_64-unknown-linux-gnu" + components: "rust-src" + - name: Test with sanitizer + env: + RUSTFLAGS: -Zsanitizer=${{ matrix.sanitizer }} + RUSTDOCFLAGS: -Zsanitizer=${{ matrix.sanitizer }} + # only needed by asan + ASAN_OPTIONS: detect_stack_use_after_return=1 + # Asan's leak detection occasionally complains + # about some small leaks if backtraces are captured, + # so ensure they're not + RUST_BACKTRACE: 0 + working-directory: rust/yarp-sys + run: cargo test -Zbuild-std --verbose --target=x86_64-unknown-linux-gnu |