Skip to main content
Glama
quick-stress-test.js4.9 kB
#!/usr/bin/env node /** * Quick Platform Detection Stress Test * * A developer-friendly stress test that focuses on the most critical * scenarios developers will encounter. Runs fast and provides clear * feedback on platform detection reliability. * * Use this for: * - Daily development validation * - Pre-commit testing * - Quick confidence checks * * For comprehensive testing, use: npm run docker:stress-test */ import { detectArchitecture, checkDockerCapabilities, chooseBestConfiguration } from './detect-platform.js'; import { execSync } from 'child_process'; console.log('⚡ Quick Platform Detection Stress Test'); console.log('========================================\n'); let passed = 0; let total = 0; function test(name, testFn) { total++; try { const start = Date.now(); const result = testFn(); const duration = Date.now() - start; if (result) { console.log(`✅ ${name} (${duration}ms)`); passed++; } else { console.log(`❌ ${name} - Test failed`); } } catch (error) { console.log(`❌ ${name} - ${error.message}`); } } // Test 1: Basic detection works test('Architecture Detection', () => { const info = detectArchitecture(); return Boolean(info?.arch && info?.platform); }); // Test 2: Docker capabilities detection test('Docker Capabilities', () => { const info = checkDockerCapabilities(); return typeof info.hasDocker === 'boolean'; }); // Test 3: Configuration selection works test('Configuration Selection', () => { const hostInfo = detectArchitecture(); const dockerInfo = checkDockerCapabilities(); const config = chooseBestConfiguration(hostInfo, dockerInfo); return config.config.image; }); // Test 4: Docker is available (developer environment check) test('Docker Environment', () => { try { execSync('docker --version', { stdio: 'ignore' }); return true; } catch { return false; } }); // Test 5: Detection consistency (run multiple times) test('Detection Consistency', () => { const results = []; for (let i = 0; i < 5; i++) { const info = detectArchitecture(); results.push(`${info.platform}-${info.arch}`); } return results.every(r => r === results[0]); }); // Test 6: File generation works test('File Generation', () => { try { execSync('npm run docker:detect', { stdio: 'ignore' }); return true; } catch { return false; } }); // Test 7: Generated Docker Compose is valid test('Docker Compose Validation', () => { try { execSync('docker-compose -f test/docker/docker-compose.yml config', { stdio: 'ignore' }); return true; } catch { return false; } }); // Test 8: Container can start (quick test) test('Container Startup Test', () => { try { // Start container execSync('docker-compose -f test/docker/docker-compose.yml up -d', { stdio: 'ignore' }); // Check if it's running const output = execSync('docker ps --filter name=warp-mcp-sqlserver --format "{{.Names}}"', { encoding: 'utf8' }); const isRunning = output.includes('warp-mcp-sqlserver'); // Clean up immediately try { execSync('docker-compose -f test/docker/docker-compose.yml down', { stdio: 'ignore' }); } catch { // Ignore cleanup errors } return isRunning; } catch { return false; } }); // Results console.log('\n📊 Results'); console.log('==========='); console.log(`✅ Passed: ${passed}/${total}`); console.log(`❌ Failed: ${total - passed}/${total}`); const successRate = Math.round((passed / total) * 100); console.log(`📈 Success Rate: ${successRate}%\n`); if (successRate >= 90) { console.log('🎉 EXCELLENT - Platform detection is working perfectly!'); } else if (successRate >= 75) { console.log('✅ GOOD - Platform detection is working well with minor issues.'); } else if (successRate >= 50) { console.log('⚠️ WARNING - Platform detection has some issues that need attention.'); } else { console.log('❌ CRITICAL - Platform detection has major issues. Check your environment.'); } // Developer recommendations console.log('\n💡 Developer Tips:'); const hostInfo = detectArchitecture(); const dockerInfo = checkDockerCapabilities(); if (hostInfo.isAppleSilicon) { console.log('🍎 Apple Silicon detected:'); if (dockerInfo.supportsAMD64) { console.log(' ✅ Rosetta 2 emulation is working - optimal configuration selected'); } else { console.log(' ⚠️ AMD64 emulation may have issues - consider Docker settings'); } } if (!dockerInfo.hasDocker) { console.log('🐳 Docker not available:'); console.log(' 📥 Install Docker Desktop: https://docs.docker.com/get-docker/'); } console.log(' 🧪 Run full stress test: npm run docker:stress-test'); console.log(' 📖 View configuration: cat test/docker/.platform-config.json'); process.exit(total - passed); // Exit with number of failures

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/egarcia74/warp-sql-server-mcp'

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