commit 5f5837ca8093d3c13fc482e4caa92f3d33af8cf2
parent ae02f80b1cdeacdc34fe3eaaa94f750f3b54cb41
Author: Joris Hartog <jorishartog@hotmail.com>
Date: Tue, 25 Aug 2026 22:54:43 +0200
Speed up release checks and update fuzz lock
Diffstat:
3 files changed, 33 insertions(+), 9 deletions(-)
diff --git a/README.md b/README.md
@@ -68,6 +68,14 @@ Release and deploy with:
./deployment.sh 0.2.48
```
+By default, deployment runs the regular unit tests and verifies that the fuzz
+targets compile against their locked dependencies. Run the extended adversarial,
+fuzz, and release-property suites explicitly when needed:
+
+```sh
+./deployment.sh --full-tests 0.2.48
+```
+
To start a new chain, deploy with `--genesis`. This asks for confirmation,
deletes and recreates the permanent `local-path-db-pvc`, and starts the node
once with `--genesis`. The existing chain data is permanently removed:
diff --git a/deployment.sh b/deployment.sh
@@ -4,9 +4,10 @@ set -euo pipefail
cd "$(dirname "${BASH_SOURCE[0]}")"
usage() {
- echo "Usage: $0 [--genesis] <version>" >&2
+ echo "Usage: $0 [--genesis] [--full-tests] <version>" >&2
echo "Example: $0 0.2.48" >&2
echo " $0 --genesis 0.4.0" >&2
+ echo " $0 --full-tests 0.4.0" >&2
}
die() {
@@ -80,16 +81,24 @@ ensure_tauri_cli() {
}
run_release_tests() {
+ local full_tests="$1"
+
require_command cargo
+ cargo test --locked
+ cargo check --locked --manifest-path fuzz/Cargo.toml
+
+ if [ "$full_tests" != "true" ]; then
+ echo "Quick release checks passed; use --full-tests to run adversarial, fuzz, and property suites"
+ return 0
+ fi
+
local fuzz_runs="${IUNA_FUZZ_RUNS:-256}"
local vdf_fuzz_runs="${IUNA_VDF_FUZZ_RUNS:-16}"
validate_positive_integer IUNA_FUZZ_RUNS "$fuzz_runs"
validate_positive_integer IUNA_VDF_FUZZ_RUNS "$vdf_fuzz_runs"
- cargo test --locked
cargo test --locked domain::adversarial_tests:: -- --ignored
- cargo check --locked --manifest-path fuzz/Cargo.toml
cargo run --locked --manifest-path fuzz/Cargo.toml --bin p2p_envelope -- -runs="$fuzz_runs" fuzz/corpus/p2p_envelope
cargo run --locked --manifest-path fuzz/Cargo.toml --bin compact_snapshot -- -runs="$fuzz_runs" fuzz/corpus/compact_snapshot
cargo run --locked --manifest-path fuzz/Cargo.toml --bin domain_json -- -runs="$fuzz_runs" fuzz/corpus/domain_json
@@ -111,10 +120,12 @@ update_versions() {
replace_in_file README.md 'downloads/iuna-v[0-9]+\.[0-9]+\.[0-9]+-macos-aarch64-desktop\.app\.zip' "downloads/iuna-v${version}-macos-aarch64-desktop.app.zip"
replace_in_file README.md 'downloads/iuna-v[0-9]+\.[0-9]+\.[0-9]+-windows-x86_64-desktop-setup\.exe' "downloads/iuna-v${version}-windows-x86_64-desktop-setup.exe"
- cargo update -p iuna --precise "$version"
- cargo update --manifest-path src-tauri/Cargo.toml -p iuna-desktop --precise "$version"
+ cargo update --offline -p iuna --precise "$version"
+ cargo update --offline --manifest-path src-tauri/Cargo.toml -p iuna-desktop --precise "$version"
+ cargo update --offline --manifest-path fuzz/Cargo.toml -p iuna --precise "$version"
cargo check --locked >/dev/null
cargo check --locked --manifest-path src-tauri/Cargo.toml >/dev/null
+ cargo check --locked --manifest-path fuzz/Cargo.toml >/dev/null
}
commit_and_tag() {
@@ -123,7 +134,7 @@ commit_and_tag() {
require_command git
- git add Cargo.toml Cargo.lock src-tauri/Cargo.toml src-tauri/Cargo.lock src-tauri/tauri.conf.json README.md
+ git add Cargo.toml Cargo.lock fuzz/Cargo.lock src-tauri/Cargo.toml src-tauri/Cargo.lock src-tauri/tauri.conf.json README.md
git commit -m "Release ${tag}" --no-verify
git tag -a "$tag" -m "Release ${tag}"
}
@@ -482,6 +493,7 @@ deploy_docker_image() {
main() {
local genesis=false
+ local full_tests=false
local version=""
while [ "$#" -gt 0 ]; do
@@ -490,6 +502,10 @@ main() {
[ "$genesis" = "false" ] || die "--genesis may only be specified once"
genesis=true
;;
+ --full-tests)
+ [ "$full_tests" = "false" ] || die "--full-tests may only be specified once"
+ full_tests=true
+ ;;
-*)
die "unknown option: $1"
;;
@@ -524,7 +540,7 @@ main() {
echo "Aborting deployment"
exit 1
fi
- run_release_tests
+ run_release_tests "$full_tests"
build_linux_cli_archives "$version"
build_docker_image "$version"
deploy_docker_image "$version" "$genesis"
@@ -532,7 +548,7 @@ main() {
fi
update_versions "$version"
- run_release_tests
+ run_release_tests "$full_tests"
build_versions "$version"
commit_and_tag "$version"
build_docker_image "$version"
diff --git a/fuzz/fuzz_targets/domain_json.rs b/fuzz/fuzz_targets/domain_json.rs
@@ -17,7 +17,7 @@ fuzz_target!(|data: &[u8]| {
let _ = serde_json::from_str::<Transaction>(line);
let _ = serde_json::from_str::<BurnBundle>(line);
let _ = serde_json::from_str::<Block>(line).map(|block| {
- let _ = block.serialized_size_bytes();
+ let _ = block.json_size_bytes();
let _ = block.compute_hash();
});
let _ = serde_json::from_str::<ChainSnapshot>(line);