aboutsummaryrefslogtreecommitdiff
path: root/scripts/testing/run-test-baremetal.sh
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/testing/run-test-baremetal.sh')
-rwxr-xr-xscripts/testing/run-test-baremetal.sh38
1 files changed, 23 insertions, 15 deletions
diff --git a/scripts/testing/run-test-baremetal.sh b/scripts/testing/run-test-baremetal.sh
index c108e6f..3beaefc 100755
--- a/scripts/testing/run-test-baremetal.sh
+++ b/scripts/testing/run-test-baremetal.sh
@@ -47,11 +47,11 @@ VALIDATE_ONLY=false
while [[ $# -gt 0 ]]; do
case $1 in
--host)
- TARGET_HOST="$2"
+ TARGET_HOST="${2:?--host requires a value}"
shift 2
;;
--password)
- ROOT_PASSWORD="$2"
+ ROOT_PASSWORD="${2:?--password requires a value}"
shift 2
;;
--rollback-first)
@@ -86,6 +86,12 @@ fi
TIMESTAMP=$(date +'%Y%m%d-%H%M%S')
TEST_RESULTS_DIR="$PROJECT_ROOT/test-results/baremetal-$TIMESTAMP"
ARCHZFS_INBOX="$HOME/code/archzfs/inbox"
+BUNDLE_FILE=""
+
+cleanup_baremetal() {
+ [ -n "$BUNDLE_FILE" ] && [ -f "$BUNDLE_FILE" ] && rm -f "$BUNDLE_FILE"
+}
+trap cleanup_baremetal EXIT
# Override VM_IP for validation.sh ssh_cmd function
VM_IP="$TARGET_HOST"
@@ -121,12 +127,13 @@ if $ROLLBACK_FIRST; then
DATASETS=$(ssh_cmd "zfs list -H -o name -t snapshot | grep '@genesis$' | sed 's/@genesis$//'")
step "Rolling back all datasets to genesis"
- for ds in $DATASETS; do
+ while IFS= read -r ds; do
+ [ -z "$ds" ] && continue
info "Rolling back $ds@genesis"
- if ! ssh_cmd "zfs rollback -r $ds@genesis" &>> "$LOGFILE"; then
+ if ! ssh_cmd "zfs rollback -r \"$ds@genesis\"" &>> "$LOGFILE"; then
warn "Failed to rollback $ds@genesis"
fi
- done
+ done <<< "$DATASETS"
success "Rollback complete"
# Need to reconnect after rollback
@@ -246,11 +253,11 @@ fi
# Generate reports
generate_issue_report "$TEST_RESULTS_DIR" "$ARCHZFS_INBOX"
-# Set validation result
-if [ $VALIDATION_FAILED -eq 0 ]; then
- VALIDATION_PASSED=true
+# Set validation result (TEST_PASSED is the boolean; VALIDATION_PASSED stays the counter)
+if [ "$VALIDATION_FAILED" -eq 0 ]; then
+ TEST_PASSED=true
else
- VALIDATION_PASSED=false
+ TEST_PASSED=false
fi
# Generate test report
@@ -269,10 +276,10 @@ Test Method: Bare Metal ZFS
Results:
ArchSetup Exit Code: $ARCHSETUP_EXIT_CODE
- Validation: $(if $VALIDATION_PASSED; then echo "PASSED"; else echo "FAILED"; fi)
+ Validation: $(if $TEST_PASSED; then echo "PASSED"; else echo "FAILED"; fi)
Validation Summary:
- Passed: $VALIDATION_PASSED_COUNT
+ Passed: $VALIDATION_PASSED
Failed: $VALIDATION_FAILED
Warnings: $VALIDATION_WARNINGS
@@ -290,17 +297,18 @@ if $ROLLBACK_AFTER; then
section "Rolling Back to Genesis (cleanup)"
DATASETS=$(ssh_cmd "zfs list -H -o name -t snapshot | grep '@genesis$' | sed 's/@genesis$//'")
- for ds in $DATASETS; do
+ while IFS= read -r ds; do
+ [ -z "$ds" ] && continue
info "Rolling back $ds@genesis"
- ssh_cmd "zfs rollback -r $ds@genesis" &>> "$LOGFILE" || true
- done
+ ssh_cmd "zfs rollback -r \"$ds@genesis\"" &>> "$LOGFILE" || true
+ done <<< "$DATASETS"
success "Rollback complete"
fi
# Final summary
section "Test Complete"
-if [ $ARCHSETUP_EXIT_CODE -eq 0 ] && $VALIDATION_PASSED; then
+if [ "$ARCHSETUP_EXIT_CODE" -eq 0 ] && $TEST_PASSED; then
success "TEST PASSED"
exit 0
else