diff options
Diffstat (limited to 'scripts/testing/run-test-baremetal.sh')
| -rwxr-xr-x | scripts/testing/run-test-baremetal.sh | 38 |
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 |
