aboutsummaryrefslogtreecommitdiff
path: root/test/kafka/test-schema-bypass.sh
diff options
context:
space:
mode:
Diffstat (limited to 'test/kafka/test-schema-bypass.sh')
-rwxr-xr-xtest/kafka/test-schema-bypass.sh75
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."