Skip to main content
Glama
pshempel

MCP Time Server Node

by pshempel
test_memory_leak.py3.88 kB
#!/usr/bin/env python3 """ TDD Test for memory leak detection Written BEFORE implementation """ import unittest # This import will fail initially (RED phase) try: from stress_test import SimpleStressTester except ImportError: # Expected to fail in RED phase SimpleStressTester = None class TestMemoryLeakDetection(unittest.TestCase): """Test our ability to detect memory leaks""" def test_stress_tester_exists(self): """Test that SimpleStressTester class exists""" self.assertIsNotNone(SimpleStressTester, "SimpleStressTester class should exist") def test_can_start_server(self): """Test that we can start the MCP server""" if not SimpleStressTester: self.skipTest("SimpleStressTester not implemented yet") # Use absolute path to dist/index.js import os project_root = os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) server_path = os.path.join(project_root, 'dist', 'index.js') tester = SimpleStressTester(['node', server_path]) tester.start_server() # Server should have a process self.assertIsNotNone(tester.process) self.assertIsNotNone(tester.process.pid) # Cleanup tester.stop_server() def test_can_measure_memory(self): """Test that we can measure server memory""" if not SimpleStressTester: self.skipTest("SimpleStressTester not implemented yet") # Use absolute path to dist/index.js import os project_root = os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) server_path = os.path.join(project_root, 'dist', 'index.js') tester = SimpleStressTester(['node', server_path]) tester.start_server() memory_mb = tester.check_memory() # Should return a reasonable memory value self.assertIsInstance(memory_mb, (int, float)) self.assertGreater(memory_mb, 0) self.assertLess(memory_mb, 1000) # Less than 1GB # Cleanup tester.stop_server() def test_memory_leak_detection_stable(self): """Test that stable memory is not flagged as leak""" if not SimpleStressTester: self.skipTest("SimpleStressTester not implemented yet") # Use absolute path to dist/index.js import os project_root = os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) server_path = os.path.join(project_root, 'dist', 'index.js') tester = SimpleStressTester(['node', server_path]) tester.start_server() # Simulate stable memory initial_memory = 100.0 final_memory = 105.0 # 5% growth is acceptable # Should not be considered a leak is_leak = tester.is_memory_leak(initial_memory, final_memory) self.assertFalse(is_leak, "5% memory growth should not be considered a leak") # Cleanup tester.stop_server() def test_memory_leak_detection_leak(self): """Test that significant growth is flagged as leak""" if not SimpleStressTester: self.skipTest("SimpleStressTester not implemented yet") tester = SimpleStressTester(['node', 'dist/index.js']) # Simulate memory leak initial_memory = 100.0 final_memory = 200.0 # 100% growth is a leak # Should be considered a leak is_leak = tester.is_memory_leak(initial_memory, final_memory) self.assertTrue(is_leak, "100% memory growth should be considered a leak") if __name__ == '__main__': # Run with minimal output for context efficiency unittest.main(verbosity=1)

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/pshempel/mcp-time-server-node'

If you have feedback or need assistance with the MCP directory API, please join our Discord server