Files
c-relay/tests/quick_error_tests.sh

150 lines
4.4 KiB
Bash
Executable File

#!/bin/bash
# Quick Error Handling and Recovery Tests for Event-Based Configuration System
# Focused tests for key error scenarios
# Colors for output
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
BLUE='\033[0;34m'
NC='\033[0m' # No Color
# Test results tracking
TESTS_PASSED=0
TESTS_FAILED=0
print_test() {
echo -e "${BLUE}[TEST]${NC} $1"
}
print_pass() {
echo -e "${GREEN}[PASS]${NC} $1"
((TESTS_PASSED++))
}
print_fail() {
echo -e "${RED}[FAIL]${NC} $1"
((TESTS_FAILED++))
}
print_info() {
echo -e "${YELLOW}[INFO]${NC} $1"
}
echo "========================================"
echo "Quick Error Handling and Recovery Tests"
echo "========================================"
echo
# Clean up any existing processes and files
print_info "Cleaning up existing processes..."
pkill -f c_relay 2>/dev/null || true
rm -f *.nrdb* 2>/dev/null || true
sleep 1
# TEST 1: Signature Validation Integration
print_test "Signature Validation Integration Check"
if grep -q "nostr_validate_event_structure\|nostr_verify_event_signature" src/config.c; then
print_pass "Signature validation functions found in code"
else
print_fail "Signature validation functions missing"
fi
# TEST 2: Legacy Schema Cleanup
print_test "Legacy Schema Cleanup Verification"
if ! grep -q "config_file_cache\|active_config" src/sql_schema.h; then
print_pass "Legacy tables removed from schema"
else
print_fail "Legacy tables still present in schema"
fi
# TEST 3: Configuration Event Processing
print_test "Configuration Event Processing Functions"
if grep -q "process_configuration_event\|handle_configuration_event" src/config.c; then
print_pass "Configuration event processing functions present"
else
print_fail "Configuration event processing functions missing"
fi
# TEST 4: Runtime Configuration Handlers
print_test "Runtime Configuration Handlers"
if grep -q "apply_runtime_config_handlers" src/config.c; then
print_pass "Runtime configuration handlers implemented"
else
print_fail "Runtime configuration handlers missing"
fi
# TEST 5: Error Logging Integration
print_test "Error Logging and Validation"
if grep -q "log_error.*signature\|log_error.*validation" src/config.c; then
print_pass "Error logging for validation integrated"
else
print_fail "Error logging for validation missing"
fi
# TEST 6: First-Time vs Existing Relay Detection
print_test "Relay State Detection Logic"
if grep -q "is_first_time_startup\|find_existing_nrdb_files" src/config.c; then
print_pass "Relay state detection functions present"
else
print_fail "Relay state detection functions missing"
fi
# TEST 7: Database Schema Version
print_test "Database Schema Version Check"
if grep -q "('version', '4')\|\"version\", \"4\"" src/sql_schema.h; then
print_pass "Database schema version 4 detected"
else
print_fail "Database schema version not updated"
fi
# TEST 8: Configuration Value Access Functions
print_test "Configuration Value Access"
if grep -q "get_config_value\|get_config_int\|get_config_bool" src/config.c; then
print_pass "Configuration access functions present"
else
print_fail "Configuration access functions missing"
fi
# TEST 9: Resource Cleanup Functions
print_test "Resource Cleanup Implementation"
if grep -q "cleanup_configuration_system\|cJSON_Delete" src/config.c; then
print_pass "Resource cleanup functions present"
else
print_fail "Resource cleanup functions missing"
fi
# TEST 10: Build System Integration
print_test "Build System Validation"
if [ -f "build/c_relay_x86" ]; then
print_pass "Binary built successfully"
else
print_fail "Binary not found - build may have failed"
fi
echo
echo "========================================"
echo "Quick Test Results Summary"
echo "========================================"
echo "Tests Passed: $TESTS_PASSED"
echo "Tests Failed: $TESTS_FAILED"
echo "Total Tests: $((TESTS_PASSED + TESTS_FAILED))"
echo
if [ $TESTS_FAILED -eq 0 ]; then
print_pass "ALL QUICK TESTS PASSED! Core error handling integrated."
echo
print_info "The event-based configuration system has:"
echo " ✓ Comprehensive signature validation"
echo " ✓ Runtime configuration handlers"
echo " ✓ Proper error logging and recovery"
echo " ✓ Clean database schema (v4)"
echo " ✓ Resource management and cleanup"
echo " ✓ First-time vs existing relay detection"
echo
exit 0
else
print_fail "$TESTS_FAILED tests failed. System needs attention."
exit 1
fi