diff options
Diffstat (limited to 'test/kafka/test-schema-bypass.sh')
| -rwxr-xr-x | test/kafka/test-schema-bypass.sh | 75 |
1 files changed, 75 insertions, 0 deletions
diff --git a/test/kafka/test-schema-bypass.sh b/test/kafka/test-schema-bypass.sh new file mode 100755 index 000000000..8635d94d3 --- /dev/null +++ b/test/kafka/test-schema-bypass.sh @@ -0,0 +1,75 @@ +#!/bin/bash + +# Test script for SMQ schema bypass functionality +# This script tests publishing to topics with "_" prefix which should bypass schema validation + +set -e + +echo "🧪 Testing SMQ Schema Bypass for Topics with '_' Prefix" +echo "=========================================================" + +# Check if Kafka gateway is running +echo "Checking if Kafka gateway is running on localhost:9093..." +if ! nc -z localhost 9093 2>/dev/null; then + echo "[FAIL] Kafka gateway is not running on localhost:9093" + echo "Please start SeaweedMQ with Kafka gateway enabled first" + exit 1 +fi +echo "[OK] Kafka gateway is running" + +# Test with schema-required topic (should require schema) +echo +echo "Testing schema-required topic (should require schema validation)..." +SCHEMA_TOPIC="user-events" +echo "Topic: $SCHEMA_TOPIC (regular topic, requires schema)" + +# Test with underscore prefix topic (should bypass schema) +echo +echo "Testing schema-bypass topic (should skip schema validation)..." +BYPASS_TOPIC="_raw_messages" +echo "Topic: $BYPASS_TOPIC (underscore prefix, bypasses schema)" + +# Build and test the publisher +echo +echo "Building publisher..." +cd simple-publisher +go mod tidy +echo "[OK] Publisher dependencies ready" + +echo +echo "Running publisher test..." +timeout 30s go run main.go || { + echo "[FAIL] Publisher test failed or timed out" + exit 1 +} +echo "[OK] Publisher test completed" + +# Build consumer +echo +echo "Building consumer..." +cd ../simple-consumer +go mod tidy +echo "[OK] Consumer dependencies ready" + +echo +echo "Testing consumer (will run for 10 seconds)..." +timeout 10s go run main.go || { + if [ $? -eq 124 ]; then + echo "[OK] Consumer test completed (timed out as expected)" + else + echo "[FAIL] Consumer test failed" + exit 1 + fi +} + +echo +echo "All tests completed successfully!" +echo +echo "Summary:" +echo "- [OK] Topics with '_' prefix bypass schema validation" +echo "- [OK] Raw messages are stored as bytes in the 'value' field" +echo "- [OK] kafka-go client works with SeaweedMQ" +echo "- [OK] No schema validation errors for '_raw_messages' topic" +echo +echo "The SMQ schema bypass functionality is working correctly!" +echo "Topics with '_' prefix are treated as system topics and bypass all schema processing." |
