# test_socketbox_comprehensive.hako # 🎯 Comprehensive test to verify SocketBox deadlock fix and functionality static box Main { init { console, results } main() { me.console = new ConsoleBox() me.console.log("🎯 SocketBox Comprehensive Functionality Test") me.results = new StringBox("Test Results: ") # Test 1: Basic creation and method calls me.console.log("Test 1: Basic SocketBox operations...") local socket = new SocketBox() local initial_str = socket.toString() local initial_server = socket.isServer() me.results = new StringBox(me.results.toString() + "create:OK ") me.console.log("✅ Creation and basic methods: " + initial_server.toString()) # Test 2: Bind operation and state change me.console.log("Test 2: Bind operation...") local bind_result = socket.bind("127.0.0.1", 17777) local after_bind_server = socket.isServer() me.results = new StringBox(me.results.toString() + "bind:OK ") me.console.log("✅ Bind result: " + bind_result.toString()) # Test 3: Multiple method calls on same socket me.console.log("Test 3: Multiple operations...") local str1 = socket.toString() local str2 = socket.toString() local server1 = socket.isServer() local server2 = socket.isServer() me.results = new StringBox(me.results.toString() + "multiple:OK ") me.console.log("✅ Multiple calls completed") # Test 4: Close operation me.console.log("Test 4: Close operation...") local close_result = socket.close() local after_close_str = socket.toString() me.results = new StringBox(me.results.toString() + "close:OK ") me.console.log("✅ Close result: " + close_result.toString()) # Test 5: Create new socket after close me.console.log("Test 5: New socket creation...") local socket2 = new SocketBox() local new_str = socket2.toString() local new_server = socket2.isServer() me.results = new StringBox(me.results.toString() + "new:OK ") me.console.log("✅ New socket created successfully") me.console.log("🎉 All tests passed! " + me.results.toString()) return "COMPREHENSIVE_SUCCESS" } }