Update test.sh
All checks were successful
Build-Test-Publish / build (linux/amd64) (push) Successful in 28s
Build-Test-Publish / build (linux/arm64) (push) Successful in 29s

This commit is contained in:
Your Name
2025-09-02 14:03:05 +12:00
parent fd2aa1a5f0
commit e728654fe0

34
test.sh
View File

@@ -461,6 +461,34 @@ test_metadata_empty_value() {
fi
}
test_metadata_invalid_format() {
log_info "Testing invalid metadata format rejection..."
echo "metadata test invalid" > "${TEST_DIR}/test_files/meta_invalid.txt"
# Test invalid format (no equals sign) - directly call sos to capture exit code
export SOS_WRITE_TOKEN="${TEST_TOKEN}"
export SOS_TEST_MODE=1
local host="${SOS_TEST_HOST:-localhost:${TEST_PORT}}"
set +e
"${SCRIPT_DIR}/sos" upload "$host" "${TEST_DIR}/test_files/meta_invalid.txt" "meta:invalid" --metadata "noequals" >"${TEST_DIR}/invalid_meta_output.txt" 2>&1
local exit_code=$?
set -e
local output=$(cat "${TEST_DIR}/invalid_meta_output.txt")
if [[ $exit_code -ne 0 ]] && echo "$output" | grep -q "Metadata must be in \"key=value\" format"; then
log_info "Invalid metadata format correctly rejected (exit code: $exit_code)"
return 0
else
log_error "Invalid metadata format not rejected properly"
echo "Exit code: $exit_code"
echo "$output" | head -5
return 1
fi
}
# Run all tests
run_tests() {
local tests=(
@@ -473,6 +501,12 @@ run_tests() {
"test_metadata_update"
"test_api_endpoints"
"test_invalid_auth"
"test_metadata_single"
"test_metadata_multiple"
"test_metadata_special_chars"
"test_metadata_mixed_labels"
"test_metadata_empty_value"
"test_metadata_invalid_format"
)
local total=${#tests[@]}