From e728654fe0413852c3dfa792ca86ec91f74c0d6e Mon Sep 17 00:00:00 2001 From: Your Name Date: Tue, 2 Sep 2025 14:03:05 +1200 Subject: [PATCH] Update test.sh --- test.sh | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/test.sh b/test.sh index b38881d..ca5f2ee 100755 --- a/test.sh +++ b/test.sh @@ -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[@]}