Skip to content

JIT hardening

JIT hardening #1

Workflow file for this run

name: JIT hardening
on:
workflow_dispatch:
schedule:
# Weekly bounded hardening sweep. Fuzz targets are capped by
# `-max_total_time=60`; this schedule gives them continuity without making
# every pull request pay the nightly/cargo-fuzz install cost.
- cron: "17 10 * * 6"
concurrency:
group: jit-hardening-${{ github.ref }}
cancel-in-progress: true
jobs:
hardening:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v5
- name: Build dev container
run: docker compose build dev
- name: Native JIT hardening gate
run: |
docker compose run --rm dev cargo test -p rsscript --lib register_window_tests --features native-jit -- --test-threads=1
docker compose run --rm dev cargo test -p rsscript child_native --features native-jit -- --test-threads=1
docker compose run --rm dev cargo test -p rsscript --test runtime native_jit_fast_backends_include_deopt_every_safepoint --features native-jit -- --test-threads=1
docker compose run --rm dev cargo test -p rsscript --test runtime jit_acceptance_runs_ --features native-jit -- --test-threads=1
docker compose run --rm dev cargo test -p rsscript --test runtime native_jit_acceptance_reports_real_native_execution --features native-jit -- --test-threads=1
docker compose run --rm dev cargo test -p rsscript --test runtime native_jit_precompiles_cold_scalar_call_chains --features native-jit -- --test-threads=1
docker compose run --rm dev cargo test -p rsscript --test runtime native_jit_precompiles_handle_return_call_chains --features native-jit -- --test-threads=1
docker compose run --rm dev cargo test -p vm-jit native_call_can_pass_flat -- --test-threads=1
docker compose run --rm dev cargo test -p rsscript --lib native_direct_dispatch_consumes_handle_return_compiled_call --features native-jit -- --test-threads=1
docker compose run --rm dev cargo test -p rsscript --lib native_direct_dispatch_passes_bool_args_and_return --features native-jit -- --test-threads=1
docker compose run --rm dev cargo test -p rsscript --lib native_direct_dispatch_passes_float_args_and_return --features native-jit -- --test-threads=1
docker compose run --rm dev cargo test -p rsscript --lib native_direct_dispatch_passes_flat_int_arg_to_compiled_call --features native-jit -- --test-threads=1
docker compose run --rm dev cargo test -p rsscript --lib native_direct_dispatch_passes_flat_float_arg_to_compiled_call --features native-jit -- --test-threads=1
docker compose run --rm dev cargo test -p rsscript --lib native_direct_dispatch_passes_flat_int_mut_arg_to_compiled_call --features native-jit -- --test-threads=1
docker compose run --rm dev cargo test -p rsscript --lib native_direct_dispatch_passes_handle_arg_to_compiled_call --features native-jit -- --test-threads=1
docker compose run --rm dev cargo test -p rsscript --lib native_direct_dispatch_invokes_mut_handle_compiled_call --features native-jit -- --test-threads=1
docker compose run --rm dev cargo test -p rsscript --lib precise_deopt_with_nested_child_native_frames_resumes_leaf_safepoint --features native-jit -- --test-threads=1
docker compose run --rm dev cargo test -p rsscript --test runtime report_profile_guided_pic_shows_hottest_first_order --features native-jit -- --test-threads=1
docker compose run --rm dev cargo test -p rsscript --test runtime report_shows_profile_guided_branch_feedback --features native-jit -- --test-threads=1
docker compose run --rm dev cargo test -p rsscript --test runtime report_groups_native_decline_reasons_by_count --features native-jit -- --test-threads=1
docker compose run --rm dev bash -lc 'RSS_DIFF_PROPTEST_CASES=16 RSS_DIFF_SHRINK_ITERS=0 cargo test -p rsscript --test differential backends_agree_on_seed_decoded_programs --features native-jit -- --test-threads=1'
docker compose run --rm dev cargo test --release -p rsscript --test runtime jit_perf_gate_against_baseline --features native-jit -- --test-threads=1 --nocapture
docker compose run --rm dev bash -lc 'rustup toolchain install nightly --component rust-src && target="$(rustc -vV | sed -n "s/^host: //p")" && RUSTFLAGS="-Zsanitizer=address" cargo +nightly test -Zbuild-std --target "$target" -p vm-jit native_scalar_call -- --test-threads=1 && RUSTFLAGS="-Zsanitizer=address" cargo +nightly test -Zbuild-std --target "$target" -p rsscript child_native --features native-jit -- --test-threads=1 && RUSTFLAGS="-Zsanitizer=address" cargo +nightly test -Zbuild-std --target "$target" -p rsscript forced_all_native_safepoints_exercises_child_native_deopt --features native-jit -- --test-threads=1 && RUSTFLAGS="-Zsanitizer=address" cargo +nightly test -Zbuild-std --target "$target" -p vm-jit guard_closure_id_passes_or_bails -- --test-threads=1 && RUSTFLAGS="-Zsanitizer=address" cargo +nightly test -Zbuild-std --target "$target" -p vm-jit direct_flat_reads_index_in_register -- --test-threads=1'
- name: Miri pure-core smoke
run: docker compose run --rm dev bash -lc 'rustup toolchain install nightly --component miri,rust-src && cargo +nightly miri test -p rss-testgen --lib'
- name: No-panic fuzz smoke
run: docker compose run --rm dev bash -lc 'rustup toolchain install nightly && (command -v cargo-fuzz >/dev/null || cargo install cargo-fuzz --locked) && cd fuzz && cargo +nightly fuzz run no_panic -- -runs=20000 -max_total_time=60'
- name: Native JIT differential fuzz smoke
run: docker compose run --rm dev bash -lc 'rustup toolchain install nightly && (command -v cargo-fuzz >/dev/null || cargo install cargo-fuzz --locked) && cd fuzz && cargo +nightly fuzz run differential --features native-jit -- -runs=5000 -max_total_time=60'