(signals)
| 99 | } |
| 100 | |
| 101 | function extractErrorSignature(signals) { |
| 102 | const errSig = signals.find(function (s) { return s.startsWith('recurring_errsig'); }); |
| 103 | if (errSig) { |
| 104 | return errSig.replace(/^recurring_errsig\(\d+x\):/, '').trim().slice(0, 200); |
| 105 | } |
| 106 | const banned = signals.find(function (s) { return s.startsWith('ban_gene:'); }); |
| 107 | if (banned) return 'Repeated failures with gene: ' + banned.replace('ban_gene:', ''); |
| 108 | return 'Persistent evolution failure'; |
| 109 | } |
| 110 | |
| 111 | function extractStreakCount(signals) { |
| 112 | for (let i = 0; i < signals.length; i++) { |
no outgoing calls
no test coverage detected