Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions make/help.mk
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,7 @@ help:
@echo " make test:guest-rootfs - Build and qualify the minimal guest rootfs"
@echo " make test:warm-cache:rust - Pre-warm Rust integration image cache"
@echo " make test:integration:rust - Run Rust integration tests (requires VM, FILTER=<pattern>)"
@echo " make test:perf:import-export - Run manual 1 GiB import/export benchmark (release, requires VM)"
Comment thread
ltstriker marked this conversation as resolved.
@echo " make test:unit:ffi - Run BoxLite FFI unit tests"
@echo " make test:unit:gvproxy - Run gvproxy bridge unit tests"
@echo " make test:integration:cli - Run CLI integration tests (FILTER=<pattern>)"
Expand Down
10 changes: 9 additions & 1 deletion make/test.mk
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
PHONY_TARGETS += test test\:unit\:guest test\:guest-perms test\:guest-rootfs _ensure-infra-deps test\:apps\:infra test\:apps\:infra-config test\:skill\:boxlite-diagrams
PHONY_TARGETS += test test\:unit\:guest test\:guest-perms test\:guest-rootfs test\:perf\:import-export _ensure-infra-deps test\:apps\:infra test\:apps\:infra-config test\:skill\:boxlite-diagrams

# Mirrors GitHub Actions strategy.fail-fast. Default false: aggregator
# targets run every sub-suite even if an earlier one fails, then exit
Expand Down Expand Up @@ -320,6 +320,14 @@ test\:integration\:rust: $(if $(SETUP_DONE),,runtime\:debug test\:warm-cache\:ru
$(CARGOTEST_FILTER); \
fi

# Manual release-mode benchmark. Kept out of every aggregate and CI suite.
test\:perf\:import-export: runtime
@echo "📊 Running manual 1 GiB import/export benchmark (release, serial)..."
@echo " Commit: $$(git rev-parse --short HEAD 2>/dev/null || echo unknown)"
@echo " Ensure at least 8 GiB of free disk space and no competing I/O workload."
Comment thread
ltstriker marked this conversation as resolved.
@cargo test --release -p boxlite --features krun,gvproxy \
--test import_export_benchmark -- --ignored --test-threads=1 --nocapture

# BoxLite C SDK unit tests.
test\:unit\:ffi:
@echo "🧪 Running BoxLite C SDK unit tests..."
Expand Down
5 changes: 2 additions & 3 deletions src/boxlite/src/disk/qcow2.rs
Original file line number Diff line number Diff line change
Expand Up @@ -462,9 +462,8 @@ impl Qcow2Helper {
.write_all(&hdr)
.map_err(|e| BoxliteError::Storage(format!("flatten: header write: {}", e)))?;

output
.sync_all()
.map_err(|e| BoxliteError::Storage(format!("flatten: sync: {}", e)))?;
// Export consumes this transient image immediately; syncing it here would
// only extend the VM quiesce window.

tracing::info!(
dst = %dst.display(),
Expand Down
Loading
Loading