CI / test (push) Failing after 15s
- Add .gitea/workflows/ci.yml running scripts/ci-test.sh (fmt, clippy,
test, no_std check) on push/PR to main.
- Fix stale rustyhdf5-py/rustyhdf5-format package names in
ci-test.sh/check-nostd.sh, which had been silently no-op'ing those
checks (cargo warns but doesn't fail on an unknown --exclude/-p
target).
- With those checks actually running, fix the real issues they surface:
- clippy: useless_conversion in chunked_write.rs, byte_char_slices in
global_heap.rs/object_header.rs.
- cargo fmt: apply formatting across the workspace (whitespace only).
- no_std (thumbv7em-none-eabihf) build errors in clawhdf5-format:
core::sync::atomic::AtomicU64 doesn't exist on that target (no
native 64-bit atomics) — switch profiling.rs's counters to
portable-atomic, which falls back to a CAS-based emulation there
and is a no-op wrapper elsewhere. Add missing alloc imports for
Box (filters.rs), Vec (filters_szip.rs), and format! (dict_encoding.rs)
on no_std paths. Replace f64::powi (std/libm-only) with a small
local exponentiation-by-squaring helper in the scale-offset filter.
33 lines
885 B
Bash
Executable File
33 lines
885 B
Bash
Executable File
#!/usr/bin/env bash
|
|
# CI check: verify clawhdf5-format compiles under no_std (thumbv7em-none-eabihf).
|
|
#
|
|
# Usage:
|
|
# ./scripts/check-nostd.sh
|
|
#
|
|
# Prerequisites:
|
|
# rustup target add thumbv7em-none-eabihf
|
|
|
|
set -euo pipefail
|
|
|
|
TARGET="thumbv7em-none-eabihf"
|
|
|
|
echo "==> Checking no_std build for clawhdf5-format (target: $TARGET)"
|
|
|
|
# Ensure the target is installed
|
|
if ! rustup target list --installed | grep -q "$TARGET"; then
|
|
echo "Installing target $TARGET ..."
|
|
rustup target add "$TARGET"
|
|
fi
|
|
|
|
# Build with no default features (no std, no flate2, no sha2)
|
|
cargo build --target "$TARGET" -p clawhdf5-format --no-default-features
|
|
|
|
echo "==> no_std build succeeded"
|
|
|
|
# Also verify the default-features (std) build still works
|
|
echo "==> Checking default-features build"
|
|
cargo build -p clawhdf5-format
|
|
echo "==> default-features build succeeded"
|
|
|
|
echo "==> All no_std checks passed"
|