From 0ea326dfb4bba6d3db18091fdb8172b360519540 Mon Sep 17 00:00:00 2001 From: GF Date: Mon, 2 Nov 2026 00:12:49 -0500 Subject: [PATCH] fix(ci): repair full validation tests and runner configuration --- .github/workflows/full-validation.yml | 5 ++++- crates/j2k-native/src/j2c/decode.rs | 10 +++++----- crates/j2k-native/src/j2c/mod.rs | 2 +- crates/j2k-native/src/j2c/segment.rs | 12 ++++++------ typos.toml | 1 + 5 files changed, 17 insertions(+), 13 deletions(-) diff --git a/.github/workflows/full-validation.yml b/.github/workflows/full-validation.yml index 2c8643f5..e73719a8 100644 --- a/.github/workflows/full-validation.yml +++ b/.github/workflows/full-validation.yml @@ -254,6 +254,9 @@ jobs: - uses: crate-ci/typos@bee27e3a4fd1ea2111cf90ab89cd076c870fce14 test: + env: + # Bound full-workspace build artifacts on hosted runners without changing test coverage. + CARGO_PROFILE_TEST_DEBUG: "0" strategy: fail-fast: false matrix: @@ -273,7 +276,7 @@ jobs: toolchain: ${{ matrix.rust }} - uses: Swatinem/rust-cache@c19371144df3bb44fab255c43d04cbc2ab54d1c4 with: - shared-key: full-host-${{ runner.os }}-${{ runner.arch }}-${{ matrix.rust }}-test + shared-key: full-host-${{ runner.os }}-${{ runner.arch }}-${{ matrix.rust }}-test-no-debuginfo cache-bin: false save-if: ${{ github.ref == 'refs/heads/main' && github.event_name != 'workflow_dispatch' }} - run: cargo xtask test diff --git a/crates/j2k-native/src/j2c/decode.rs b/crates/j2k-native/src/j2c/decode.rs index d153ee0a..4e320f20 100644 --- a/crates/j2k-native/src/j2c/decode.rs +++ b/crates/j2k-native/src/j2c/decode.rs @@ -61,7 +61,7 @@ pub(crate) use self::direct_plan::{ }; pub(crate) use self::peak::{record_workspace, WorkspaceBytes, WorkspacePeak}; pub(crate) use self::planes_floor::full_decode_planes_floor; -#[cfg(feature = "std")] +#[cfg(any(test, feature = "std"))] pub(crate) use self::reuse::is_capacity_error; pub(crate) use self::state::{DecompositionStorage, TileDecodeContext, TileDecompositions}; use self::store::{ @@ -722,9 +722,9 @@ impl OutputRegion { #[derive(Default, Debug, Clone, Copy, PartialEq, Eq)] pub(crate) struct DecodeDebugCounters { - #[cfg(all(test, feature = "std"))] + #[cfg(test)] pub(crate) packet_headers: usize, - #[cfg(all(test, feature = "std"))] + #[cfg(test)] pub(crate) directory_skips: usize, pub(crate) decoded_code_blocks: usize, pub(crate) skipped_code_blocks: usize, @@ -938,9 +938,9 @@ fn decode_tile<'a>( // Next, we parse the layers/segments for each code block. let stage_start = profile::profile_now(profile_enabled); let packet_stats = segment::parse_selected(tile, header, storage, selection.as_ref())?; - #[cfg(not(all(test, feature = "std")))] + #[cfg(not(test))] let _ = packet_stats; - #[cfg(all(test, feature = "std"))] + #[cfg(test)] { tile_ctx.debug_counters.packet_headers += packet_stats.parsed_headers; tile_ctx.debug_counters.directory_skips += packet_stats.skipped_packets; diff --git a/crates/j2k-native/src/j2c/mod.rs b/crates/j2k-native/src/j2c/mod.rs index 97a33564..ea07094b 100644 --- a/crates/j2k-native/src/j2c/mod.rs +++ b/crates/j2k-native/src/j2c/mod.rs @@ -49,7 +49,7 @@ use crate::math::{SimdBuffer, SIMD_WIDTH}; pub(crate) use codestream::Header; #[cfg(test)] pub(crate) use decode::decode_with_capacity_retry as decode; -#[cfg(feature = "std")] +#[cfg(any(test, feature = "std"))] pub(crate) use decode::is_capacity_error; #[cfg(test)] pub(crate) use decode::should_decode_classic_sub_band_in_parallel; diff --git a/crates/j2k-native/src/j2c/segment.rs b/crates/j2k-native/src/j2c/segment.rs index b833d53c..0322b4de 100644 --- a/crates/j2k-native/src/j2c/segment.rs +++ b/crates/j2k-native/src/j2c/segment.rs @@ -21,9 +21,9 @@ mod ht; #[derive(Default)] pub(crate) struct PacketParseStats { - #[cfg(all(test, feature = "std"))] + #[cfg(test)] pub(crate) parsed_headers: usize, - #[cfg(all(test, feature = "std"))] + #[cfg(test)] pub(crate) skipped_packets: usize, } @@ -632,12 +632,12 @@ fn parse_inner<'a>( .validate_packet_length(packet_start) .ok_or("packet length marker disagrees with consumed bytes")?; + #[cfg(test)] + { + walk.stats.parsed_headers += 1; + } #[cfg(feature = "std")] { - #[cfg(test)] - { - walk.stats.parsed_headers += 1; - } if let Some(boundaries) = walk.recording.as_mut() { let end = tile_part .inline_offset() diff --git a/typos.toml b/typos.toml index db2d2177..b4fddee2 100644 --- a/typos.toml +++ b/typos.toml @@ -9,6 +9,7 @@ extend-exclude = [ [default] extend-ignore-re = [ "fnv1a64:[0-9a-f]+", + "\\bok:[0-9a-f]{16}\\b", "`[0-9a-f]{8}(?:[0-9a-f]{32})?`", "`[0-9a-f]{7,40}\\.\\.\\.[0-9a-f]{7,40}`", ]