Coverage Results: - trading_engine: 33.87% (1,664/4,910 lines) - api_gateway: 18.95% (659/3,477 lines) - risk: 51.52% (1,061/2,059 lines) - common: 82.89% (366/441 lines) - config: 67.59% (73/108 lines) - storage: 21.79% (119/546 lines) - ml: ~30% (estimated) - data: 22.53% (340/1,509 lines) - services: 5.3% (critical gap) Workspace Total: 29.8% (weighted by LOC) Generated 12+ detailed HTML coverage reports with actionable roadmaps
1 line
16 KiB
HTML
1 line
16 KiB
HTML
<!doctype html><html><head><meta name='viewport' content='width=device-width,initial-scale=1'><meta charset='UTF-8'><link rel='stylesheet' type='text/css' href='style.css'><script src='control.js'></script></head><body><h2>Coverage Report</h2><h4>Created: 2025-10-05 19:37</h4><p>Click <a href='http://clang.llvm.org/docs/SourceBasedCodeCoverage.html#interpreting-reports'>here</a> for information about interpreting this report.</p><div class='centered'><table><tr><td class='column-entry-bold'>Filename</td><td class='column-entry-bold'>Function Coverage</td><td class='column-entry-bold'>Line Coverage</td><td class='column-entry-bold'>Region Coverage</td><td class='column-entry-bold'>Branch Coverage</td></tr><tr class='light-row'><td><pre><a href='coverage/home/jgrusewski/Work/foxhunt/config/src/asset_classification.rs.html'>config/src/asset_classification.rs</a></pre></td><td class='column-entry-red'><pre> 0.00% (0/19)</pre></td><td class='column-entry-red'><pre> 0.00% (0/305)</pre></td><td class='column-entry-red'><pre> 0.00% (0/251)</pre></td><td class='column-entry-gray'><pre>- (0/0)</pre></td></tr><tr class='light-row'><td><pre><a href='coverage/home/jgrusewski/Work/foxhunt/config/src/compliance_config.rs.html'>config/src/compliance_config.rs</a></pre></td><td class='column-entry-red'><pre> 0.00% (0/21)</pre></td><td class='column-entry-red'><pre> 0.00% (0/163)</pre></td><td class='column-entry-red'><pre> 0.00% (0/231)</pre></td><td class='column-entry-gray'><pre>- (0/0)</pre></td></tr><tr class='light-row'><td><pre><a href='coverage/home/jgrusewski/Work/foxhunt/config/src/data_config.rs.html'>config/src/data_config.rs</a></pre></td><td class='column-entry-red'><pre> 0.00% (0/13)</pre></td><td class='column-entry-red'><pre> 0.00% (0/145)</pre></td><td class='column-entry-red'><pre> 0.00% (0/71)</pre></td><td class='column-entry-gray'><pre>- (0/0)</pre></td></tr><tr class='light-row'><td><pre><a href='coverage/home/jgrusewski/Work/foxhunt/config/src/data_providers.rs.html'>config/src/data_providers.rs</a></pre></td><td class='column-entry-red'><pre> 0.00% (0/21)</pre></td><td class='column-entry-red'><pre> 0.00% (0/113)</pre></td><td class='column-entry-red'><pre> 0.00% (0/121)</pre></td><td class='column-entry-gray'><pre>- (0/0)</pre></td></tr><tr class='light-row'><td><pre><a href='coverage/home/jgrusewski/Work/foxhunt/config/src/database.rs.html'>config/src/database.rs</a></pre></td><td class='column-entry-red'><pre> 0.00% (0/142)</pre></td><td class='column-entry-red'><pre> 0.00% (0/1163)</pre></td><td class='column-entry-red'><pre> 0.00% (0/1552)</pre></td><td class='column-entry-gray'><pre>- (0/0)</pre></td></tr><tr class='light-row'><td><pre><a href='coverage/home/jgrusewski/Work/foxhunt/config/src/lib.rs.html'>config/src/lib.rs</a></pre></td><td class='column-entry-red'><pre> 0.00% (0/2)</pre></td><td class='column-entry-red'><pre> 0.00% (0/11)</pre></td><td class='column-entry-red'><pre> 0.00% (0/15)</pre></td><td class='column-entry-gray'><pre>- (0/0)</pre></td></tr><tr class='light-row'><td><pre><a href='coverage/home/jgrusewski/Work/foxhunt/config/src/manager.rs.html'>config/src/manager.rs</a></pre></td><td class='column-entry-red'><pre> 0.00% (0/25)</pre></td><td class='column-entry-red'><pre> 0.00% (0/176)</pre></td><td class='column-entry-red'><pre> 0.00% (0/223)</pre></td><td class='column-entry-gray'><pre>- (0/0)</pre></td></tr><tr class='light-row'><td><pre><a href='coverage/home/jgrusewski/Work/foxhunt/config/src/ml_config.rs.html'>config/src/ml_config.rs</a></pre></td><td class='column-entry-red'><pre> 0.00% (0/4)</pre></td><td class='column-entry-red'><pre> 0.00% (0/136)</pre></td><td class='column-entry-red'><pre> 0.00% (0/55)</pre></td><td class='column-entry-gray'><pre>- (0/0)</pre></td></tr><tr class='light-row'><td><pre><a href='coverage/home/jgrusewski/Work/foxhunt/config/src/risk_config.rs.html'>config/src/risk_config.rs</a></pre></td><td class='column-entry-red'><pre> 0.00% (0/5)</pre></td><td class='column-entry-red'><pre> 0.00% (0/190)</pre></td><td class='column-entry-red'><pre> 0.00% (0/334)</pre></td><td class='column-entry-gray'><pre>- (0/0)</pre></td></tr><tr class='light-row'><td><pre><a href='coverage/home/jgrusewski/Work/foxhunt/config/src/runtime.rs.html'>config/src/runtime.rs</a></pre></td><td class='column-entry-red'><pre> 0.00% (0/34)</pre></td><td class='column-entry-red'><pre> 0.00% (0/344)</pre></td><td class='column-entry-red'><pre> 0.00% (0/409)</pre></td><td class='column-entry-gray'><pre>- (0/0)</pre></td></tr><tr class='light-row'><td><pre><a href='coverage/home/jgrusewski/Work/foxhunt/config/src/schemas.rs.html'>config/src/schemas.rs</a></pre></td><td class='column-entry-red'><pre> 0.00% (0/5)</pre></td><td class='column-entry-red'><pre> 0.00% (0/76)</pre></td><td class='column-entry-red'><pre> 0.00% (0/144)</pre></td><td class='column-entry-gray'><pre>- (0/0)</pre></td></tr><tr class='light-row'><td><pre><a href='coverage/home/jgrusewski/Work/foxhunt/config/src/storage_config.rs.html'>config/src/storage_config.rs</a></pre></td><td class='column-entry-red'><pre> 0.00% (0/5)</pre></td><td class='column-entry-red'><pre> 0.00% (0/26)</pre></td><td class='column-entry-red'><pre> 0.00% (0/26)</pre></td><td class='column-entry-gray'><pre>- (0/0)</pre></td></tr><tr class='light-row'><td><pre><a href='coverage/home/jgrusewski/Work/foxhunt/config/src/structures.rs.html'>config/src/structures.rs</a></pre></td><td class='column-entry-red'><pre> 0.00% (0/27)</pre></td><td class='column-entry-red'><pre> 0.00% (0/349)</pre></td><td class='column-entry-red'><pre> 0.00% (0/291)</pre></td><td class='column-entry-gray'><pre>- (0/0)</pre></td></tr><tr class='light-row'><td><pre><a href='coverage/home/jgrusewski/Work/foxhunt/config/src/symbol_config.rs.html'>config/src/symbol_config.rs</a></pre></td><td class='column-entry-red'><pre> 0.00% (0/44)</pre></td><td class='column-entry-red'><pre> 0.00% (0/317)</pre></td><td class='column-entry-red'><pre> 0.00% (0/333)</pre></td><td class='column-entry-gray'><pre>- (0/0)</pre></td></tr><tr class='light-row'><td><pre><a href='coverage/home/jgrusewski/Work/foxhunt/config/src/vault.rs.html'>config/src/vault.rs</a></pre></td><td class='column-entry-red'><pre> 0.00% (0/8)</pre></td><td class='column-entry-red'><pre> 0.00% (0/48)</pre></td><td class='column-entry-red'><pre> 0.00% (0/56)</pre></td><td class='column-entry-gray'><pre>- (0/0)</pre></td></tr><tr class='light-row'><td><pre><a href='coverage/home/jgrusewski/Work/foxhunt/services/api_gateway/src/auth/interceptor.rs.html'>services/api_gateway/src/auth/interceptor.rs</a></pre></td><td class='column-entry-red'><pre> 43.42% (33/76)</pre></td><td class='column-entry-red'><pre> 56.50% (313/554)</pre></td><td class='column-entry-red'><pre> 57.65% (437/758)</pre></td><td class='column-entry-gray'><pre>- (0/0)</pre></td></tr><tr class='light-row'><td><pre><a href='coverage/home/jgrusewski/Work/foxhunt/services/api_gateway/src/auth/mfa/backup_codes.rs.html'>services/api_gateway/src/auth/mfa/backup_codes.rs</a></pre></td><td class='column-entry-red'><pre> 55.88% (19/34)</pre></td><td class='column-entry-red'><pre> 57.36% (113/197)</pre></td><td class='column-entry-red'><pre> 63.85% (189/296)</pre></td><td class='column-entry-gray'><pre>- (0/0)</pre></td></tr><tr class='light-row'><td><pre><a href='coverage/home/jgrusewski/Work/foxhunt/services/api_gateway/src/auth/mfa/enrollment.rs.html'>services/api_gateway/src/auth/mfa/enrollment.rs</a></pre></td><td class='column-entry-yellow'><pre> 90.00% (9/10)</pre></td><td class='column-entry-yellow'><pre> 93.26% (83/89)</pre></td><td class='column-entry-yellow'><pre> 93.60% (117/125)</pre></td><td class='column-entry-gray'><pre>- (0/0)</pre></td></tr><tr class='light-row'><td><pre><a href='coverage/home/jgrusewski/Work/foxhunt/services/api_gateway/src/auth/mfa/mod.rs.html'>services/api_gateway/src/auth/mfa/mod.rs</a></pre></td><td class='column-entry-red'><pre> 6.06% (2/33)</pre></td><td class='column-entry-red'><pre> 4.03% (11/273)</pre></td><td class='column-entry-red'><pre> 5.97% (23/385)</pre></td><td class='column-entry-gray'><pre>- (0/0)</pre></td></tr><tr class='light-row'><td><pre><a href='coverage/home/jgrusewski/Work/foxhunt/services/api_gateway/src/auth/mfa/qr_code.rs.html'>services/api_gateway/src/auth/mfa/qr_code.rs</a></pre></td><td class='column-entry-red'><pre> 62.50% (10/16)</pre></td><td class='column-entry-yellow'><pre> 86.96% (80/92)</pre></td><td class='column-entry-yellow'><pre> 86.33% (120/139)</pre></td><td class='column-entry-gray'><pre>- (0/0)</pre></td></tr><tr class='light-row'><td><pre><a href='coverage/home/jgrusewski/Work/foxhunt/services/api_gateway/src/auth/mfa/totp.rs.html'>services/api_gateway/src/auth/mfa/totp.rs</a></pre></td><td class='column-entry-red'><pre> 73.08% (19/26)</pre></td><td class='column-entry-yellow'><pre> 88.56% (178/201)</pre></td><td class='column-entry-yellow'><pre> 88.86% (343/386)</pre></td><td class='column-entry-gray'><pre>- (0/0)</pre></td></tr><tr class='light-row'><td><pre><a href='coverage/home/jgrusewski/Work/foxhunt/services/api_gateway/src/auth/mfa/verification.rs.html'>services/api_gateway/src/auth/mfa/verification.rs</a></pre></td><td class='column-entry-green'><pre> 100.00% (5/5)</pre></td><td class='column-entry-green'><pre> 100.00% (62/62)</pre></td><td class='column-entry-green'><pre> 100.00% (58/58)</pre></td><td class='column-entry-gray'><pre>- (0/0)</pre></td></tr><tr class='light-row'><td><pre><a href='coverage/home/jgrusewski/Work/foxhunt/services/api_gateway/src/config/authz.rs.html'>services/api_gateway/src/config/authz.rs</a></pre></td><td class='column-entry-red'><pre> 12.00% (3/25)</pre></td><td class='column-entry-red'><pre> 7.96% (16/201)</pre></td><td class='column-entry-red'><pre> 4.86% (12/247)</pre></td><td class='column-entry-gray'><pre>- (0/0)</pre></td></tr><tr class='light-row'><td><pre><a href='coverage/home/jgrusewski/Work/foxhunt/services/api_gateway/src/config/endpoints.rs.html'>services/api_gateway/src/config/endpoints.rs</a></pre></td><td class='column-entry-red'><pre> 0.00% (0/13)</pre></td><td class='column-entry-red'><pre> 0.00% (0/40)</pre></td><td class='column-entry-red'><pre> 0.00% (0/64)</pre></td><td class='column-entry-gray'><pre>- (0/0)</pre></td></tr><tr class='light-row'><td><pre><a href='coverage/home/jgrusewski/Work/foxhunt/services/api_gateway/src/config/manager.rs.html'>services/api_gateway/src/config/manager.rs</a></pre></td><td class='column-entry-red'><pre> 0.00% (0/26)</pre></td><td class='column-entry-red'><pre> 0.00% (0/199)</pre></td><td class='column-entry-red'><pre> 0.00% (0/259)</pre></td><td class='column-entry-gray'><pre>- (0/0)</pre></td></tr><tr class='light-row'><td><pre><a href='coverage/home/jgrusewski/Work/foxhunt/services/api_gateway/src/config/validator.rs.html'>services/api_gateway/src/config/validator.rs</a></pre></td><td class='column-entry-yellow'><pre> 80.00% (16/20)</pre></td><td class='column-entry-yellow'><pre> 90.69% (185/204)</pre></td><td class='column-entry-yellow'><pre> 92.31% (336/364)</pre></td><td class='column-entry-gray'><pre>- (0/0)</pre></td></tr><tr class='light-row'><td><pre><a href='coverage/home/jgrusewski/Work/foxhunt/services/api_gateway/src/grpc/backtesting_proxy.rs.html'>services/api_gateway/src/grpc/backtesting_proxy.rs</a></pre></td><td class='column-entry-red'><pre> 40.54% (15/37)</pre></td><td class='column-entry-red'><pre> 42.20% (73/173)</pre></td><td class='column-entry-red'><pre> 43.70% (118/270)</pre></td><td class='column-entry-gray'><pre>- (0/0)</pre></td></tr><tr class='light-row'><td><pre><a href='coverage/home/jgrusewski/Work/foxhunt/services/api_gateway/src/grpc/ml_training_proxy.rs.html'>services/api_gateway/src/grpc/ml_training_proxy.rs</a></pre></td><td class='column-entry-red'><pre> 10.00% (1/10)</pre></td><td class='column-entry-red'><pre> 5.56% (2/36)</pre></td><td class='column-entry-red'><pre> 4.55% (2/44)</pre></td><td class='column-entry-gray'><pre>- (0/0)</pre></td></tr><tr class='light-row'><td><pre><a href='coverage/home/jgrusewski/Work/foxhunt/services/api_gateway/src/grpc/server.rs.html'>services/api_gateway/src/grpc/server.rs</a></pre></td><td class='column-entry-red'><pre> 77.78% (7/9)</pre></td><td class='column-entry-red'><pre> 72.88% (43/59)</pre></td><td class='column-entry-red'><pre> 62.96% (51/81)</pre></td><td class='column-entry-gray'><pre>- (0/0)</pre></td></tr><tr class='light-row'><td><pre><a href='coverage/home/jgrusewski/Work/foxhunt/services/api_gateway/src/grpc/trading_proxy.rs.html'>services/api_gateway/src/grpc/trading_proxy.rs</a></pre></td><td class='column-entry-red'><pre> 13.95% (6/43)</pre></td><td class='column-entry-red'><pre> 20.00% (31/155)</pre></td><td class='column-entry-red'><pre> 20.81% (41/197)</pre></td><td class='column-entry-gray'><pre>- (0/0)</pre></td></tr><tr class='light-row'><td><pre><a href='coverage/home/jgrusewski/Work/foxhunt/services/api_gateway/src/metrics/auth_metrics.rs.html'>services/api_gateway/src/metrics/auth_metrics.rs</a></pre></td><td class='column-entry-red'><pre> 0.00% (0/5)</pre></td><td class='column-entry-red'><pre> 0.00% (0/189)</pre></td><td class='column-entry-red'><pre> 0.00% (0/406)</pre></td><td class='column-entry-gray'><pre>- (0/0)</pre></td></tr><tr class='light-row'><td><pre><a href='coverage/home/jgrusewski/Work/foxhunt/services/api_gateway/src/metrics/config_metrics.rs.html'>services/api_gateway/src/metrics/config_metrics.rs</a></pre></td><td class='column-entry-red'><pre> 0.00% (0/5)</pre></td><td class='column-entry-red'><pre> 0.00% (0/99)</pre></td><td class='column-entry-red'><pre> 0.00% (0/212)</pre></td><td class='column-entry-gray'><pre>- (0/0)</pre></td></tr><tr class='light-row'><td><pre><a href='coverage/home/jgrusewski/Work/foxhunt/services/api_gateway/src/metrics/exporter.rs.html'>services/api_gateway/src/metrics/exporter.rs</a></pre></td><td class='column-entry-red'><pre> 38.46% (5/13)</pre></td><td class='column-entry-red'><pre> 57.97% (40/69)</pre></td><td class='column-entry-red'><pre> 69.40% (93/134)</pre></td><td class='column-entry-gray'><pre>- (0/0)</pre></td></tr><tr class='light-row'><td><pre><a href='coverage/home/jgrusewski/Work/foxhunt/services/api_gateway/src/metrics/mod.rs.html'>services/api_gateway/src/metrics/mod.rs</a></pre></td><td class='column-entry-red'><pre> 0.00% (0/3)</pre></td><td class='column-entry-red'><pre> 0.00% (0/18)</pre></td><td class='column-entry-red'><pre> 0.00% (0/32)</pre></td><td class='column-entry-gray'><pre>- (0/0)</pre></td></tr><tr class='light-row'><td><pre><a href='coverage/home/jgrusewski/Work/foxhunt/services/api_gateway/src/metrics/proxy_metrics.rs.html'>services/api_gateway/src/metrics/proxy_metrics.rs</a></pre></td><td class='column-entry-red'><pre> 0.00% (0/8)</pre></td><td class='column-entry-red'><pre> 0.00% (0/189)</pre></td><td class='column-entry-red'><pre> 0.00% (0/300)</pre></td><td class='column-entry-gray'><pre>- (0/0)</pre></td></tr><tr class='light-row'><td><pre><a href='coverage/home/jgrusewski/Work/foxhunt/services/api_gateway/src/routing/rate_limiter.rs.html'>services/api_gateway/src/routing/rate_limiter.rs</a></pre></td><td class='column-entry-red'><pre> 31.25% (10/32)</pre></td><td class='column-entry-red'><pre> 31.62% (80/253)</pre></td><td class='column-entry-red'><pre> 32.46% (87/268)</pre></td><td class='column-entry-gray'><pre>- (0/0)</pre></td></tr><tr class='light-row-bold'><td><pre>Totals</pre></td><td class='column-entry-red'><pre> 19.42% (160/824)</pre></td><td class='column-entry-red'><pre> 18.95% (1310/6914)</pre></td><td class='column-entry-red'><pre> 22.18% (2027/9137)</pre></td><td class='column-entry-gray'><pre>- (0/0)</pre></td></tr></table></div><h5>Generated by llvm-cov -- llvm version 20.1.7-rust-1.89.0-stable</h5></body></html> |