@@ -251,69 +251,3 @@ func TestRetryWithBackoffOnPayloadStatus_WrappedRPCErrors(t *testing.T) {
251251 // Should fail immediately without retries on non-syncing errors
252252 assert .Equal (t , 1 , attempts , "expected exactly 1 attempt, got %d" , attempts )
253253}
254-
255- // TestExecuteTxs_GibberishTransactions tests that the EVM executor handles invalid/gibberish transactions gracefully
256- // According to the Executor interface requirements: "Must handle gracefully gibberish transactions"
257- func TestExecuteTxs_GibberishTransactions (t * testing.T ) {
258- t .Parallel ()
259-
260- tests := []struct {
261- name string
262- transactions [][]byte
263- description string
264- }{
265- {
266- name : "completely invalid transaction data" ,
267- transactions : [][]byte {
268- []byte ("not a valid transaction" ),
269- []byte ("gibberish" ),
270- {0x00 , 0x01 , 0x02 , 0x03 },
271- },
272- description : "random bytes that don't form valid RLP-encoded transactions" ,
273- },
274- {
275- name : "empty transactions" ,
276- transactions : [][]byte {{}, {}},
277- description : "empty byte slices" ,
278- },
279- {
280- name : "mix of invalid and potentially valid looking data" ,
281- transactions : [][]byte {
282- []byte ("0xinvalidhex" ),
283- {0xff , 0xff , 0xff , 0xff },
284- []byte ("random string" ),
285- },
286- description : "various forms of invalid transaction data" ,
287- },
288- {
289- name : "empty transaction list" ,
290- transactions : [][]byte {},
291- description : "no transactions at all should still produce a valid block" ,
292- },
293- }
294-
295- for _ , tt := range tests {
296- tt := tt
297- t .Run (tt .name , func (t * testing.T ) {
298- t .Parallel ()
299-
300- // Note: This test documents the expected behavior but cannot run without a real EVM client
301- // The EVM executor should:
302- // 1. Filter out invalid transactions before submitting to engine API
303- // 2. OR handle INVALID payload status gracefully
304- // 3. Still produce a valid block (possibly empty) and return a valid state root
305- // 4. NOT return an error that crashes the node
306-
307- t .Logf ("Testing gibberish transaction handling: %s" , tt .description )
308- t .Logf ("Transactions count: %d" , len (tt .transactions ))
309-
310- // The actual implementation should ensure that when ExecuteTxs is called with
311- // gibberish transactions, it either:
312- // - Filters them out and creates an empty block
313- // - Wraps them in a way the engine accepts
314- // - Catches INVALID status and continues with a valid empty block
315- //
316- // It should NOT propagate the error up as a critical failure
317- })
318- }
319- }
0 commit comments