JIT hardening #1
This file contains hidden or 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: 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' |