107 lines
3.9 KiB
GDScript
107 lines
3.9 KiB
GDScript
extends Node
|
|
|
|
# Test script for the DebugManager logging system
|
|
# This script validates all log levels, filtering, and formatting functionality
|
|
# Usage: Add to scene or autoload temporarily to run tests
|
|
|
|
func _ready():
|
|
# Wait a frame for DebugManager to initialize
|
|
await get_tree().process_frame
|
|
test_logging_system()
|
|
|
|
func test_logging_system():
|
|
print("=== Starting Logging System Tests ===")
|
|
|
|
# Test 1: Basic log level functionality
|
|
test_basic_logging()
|
|
|
|
# Test 2: Log level filtering
|
|
test_log_level_filtering()
|
|
|
|
# Test 3: Category functionality
|
|
test_category_logging()
|
|
|
|
# Test 4: Debug mode integration
|
|
test_debug_mode_integration()
|
|
|
|
print("=== Logging System Tests Complete ===")
|
|
|
|
func test_basic_logging():
|
|
print("\n--- Test 1: Basic Log Level Functionality ---")
|
|
|
|
# Reset to INFO level for consistent testing
|
|
DebugManager.set_log_level(DebugManager.LogLevel.INFO)
|
|
|
|
DebugManager.log_trace("TRACE: This should not appear (below INFO level)")
|
|
DebugManager.log_debug("DEBUG: This should not appear (below INFO level)")
|
|
DebugManager.log_info("INFO: This message should appear")
|
|
DebugManager.log_warn("WARN: This warning should appear")
|
|
DebugManager.log_error("ERROR: This error should appear")
|
|
DebugManager.log_fatal("FATAL: This fatal error should appear")
|
|
|
|
func test_log_level_filtering():
|
|
print("\n--- Test 2: Log Level Filtering ---")
|
|
|
|
# Test DEBUG level
|
|
print("Setting log level to DEBUG...")
|
|
DebugManager.set_log_level(DebugManager.LogLevel.DEBUG)
|
|
DebugManager.log_trace("TRACE: Should not appear (below DEBUG)")
|
|
DebugManager.log_debug("DEBUG: Should appear with debug enabled")
|
|
DebugManager.log_info("INFO: Should appear")
|
|
|
|
# Test ERROR level (very restrictive)
|
|
print("Setting log level to ERROR...")
|
|
DebugManager.set_log_level(DebugManager.LogLevel.ERROR)
|
|
DebugManager.log_debug("DEBUG: Should not appear (below ERROR)")
|
|
DebugManager.log_warn("WARN: Should not appear (below ERROR)")
|
|
DebugManager.log_error("ERROR: Should appear")
|
|
DebugManager.log_fatal("FATAL: Should appear")
|
|
|
|
# Reset to INFO for remaining tests
|
|
DebugManager.set_log_level(DebugManager.LogLevel.INFO)
|
|
|
|
func test_category_logging():
|
|
print("\n--- Test 3: Category Functionality ---")
|
|
|
|
DebugManager.log_info("Message without category")
|
|
DebugManager.log_info("Message with TEST category", "TEST")
|
|
DebugManager.log_info("Message with LOGGING category", "LOGGING")
|
|
DebugManager.log_warn("Warning with VALIDATION category", "VALIDATION")
|
|
DebugManager.log_error("Error with SYSTEM category", "SYSTEM")
|
|
|
|
func test_debug_mode_integration():
|
|
print("\n--- Test 4: Debug Mode Integration ---")
|
|
|
|
# Set to TRACE level to test debug mode dependency
|
|
DebugManager.set_log_level(DebugManager.LogLevel.TRACE)
|
|
|
|
var original_debug_state = DebugManager.is_debug_enabled()
|
|
|
|
# Test with debug mode OFF
|
|
DebugManager.set_debug_enabled(false)
|
|
print("Debug mode OFF - TRACE and DEBUG should not appear:")
|
|
DebugManager.log_trace("TRACE: Should NOT appear (debug mode OFF)")
|
|
DebugManager.log_debug("DEBUG: Should NOT appear (debug mode OFF)")
|
|
DebugManager.log_info("INFO: Should appear regardless of debug mode")
|
|
|
|
# Test with debug mode ON
|
|
DebugManager.set_debug_enabled(true)
|
|
print("Debug mode ON - TRACE and DEBUG should appear:")
|
|
DebugManager.log_trace("TRACE: Should appear (debug mode ON)")
|
|
DebugManager.log_debug("DEBUG: Should appear (debug mode ON)")
|
|
DebugManager.log_info("INFO: Should still appear")
|
|
|
|
# Restore original debug state
|
|
DebugManager.set_debug_enabled(original_debug_state)
|
|
DebugManager.set_log_level(DebugManager.LogLevel.INFO)
|
|
|
|
# Helper function to validate log level enum values
|
|
func test_log_level_enum():
|
|
print("\n--- Log Level Enum Values ---")
|
|
print("TRACE: ", DebugManager.LogLevel.TRACE)
|
|
print("DEBUG: ", DebugManager.LogLevel.DEBUG)
|
|
print("INFO: ", DebugManager.LogLevel.INFO)
|
|
print("WARN: ", DebugManager.LogLevel.WARN)
|
|
print("ERROR: ", DebugManager.LogLevel.ERROR)
|
|
print("FATAL: ", DebugManager.LogLevel.FATAL)
|