@@ -214,10 +214,6 @@ func testCode(
214214 return network .Host , true
215215 }
216216
217- runner := cdcTests .NewTestRunner ().
218- WithLogger (logger ).
219- WithNetworkResolver (resolveNetworkFromState )
220-
221217 // Configure fork mode if requested
222218 var effectiveForkHost string
223219
@@ -257,7 +253,6 @@ func testCode(
257253 ForkHeight : flags .ForkHeight ,
258254 }
259255 forkCfg = & cfg
260- runner = runner .WithFork (cfg )
261256
262257 // Map chain ID to a sensible network label if not provided explicitly
263258 if strings .TrimSpace (flags .Fork ) == "" {
@@ -270,9 +265,6 @@ func testCode(
270265 }
271266 }
272267
273- // Apply the network label on the base runner now that it is known
274- runner = runner .WithNetworkLabel (networkLabel )
275-
276268 var coverageReport * runtime.CoverageReport
277269 if flags .Cover {
278270 coverageReport = state .CreateCoverageReport ("testing" )
@@ -287,16 +279,13 @@ func testCode(
287279 },
288280 )
289281 }
290- runner = runner .WithCoverageReport (coverageReport )
291282 }
292283
293284 var seed int64
294285 if flags .Seed > 0 {
295286 seed = flags .Seed
296- runner = runner .WithRandomSeed (seed )
297287 } else if flags .Random {
298288 seed = int64 (rand .Intn (150000 ))
299- runner = runner .WithRandomSeed (seed )
300289 }
301290
302291 testResults := make (map [string ]cdcTests.Results , 0 )
@@ -305,7 +294,12 @@ func testCode(
305294 // Set current test file for network resolution tracking
306295 currentTestFile = scriptPath
307296
308- fileRunner := runner .
297+ // Create a new test runner per file to ensure complete isolation.
298+ // Each file gets its own runner with its own backend state.
299+ fileRunner := cdcTests .NewTestRunner ().
300+ WithLogger (logger ).
301+ WithNetworkResolver (resolveNetworkFromState ).
302+ WithNetworkLabel (networkLabel ).
309303 WithImportResolver (importResolver (scriptPath , state )).
310304 WithFileResolver (fileResolver (scriptPath , state )).
311305 WithContractAddressResolver (func (network string , contractName string ) (common.Address , error ) {
@@ -328,11 +322,15 @@ func testCode(
328322 return common.Address {}, fmt .Errorf ("no address for contract %s on network %s" , contractName , network )
329323 })
330324
331- // Ensure the file runner has the correct network label and fork config
332- fileRunner = fileRunner .WithNetworkLabel (networkLabel )
333325 if forkCfg != nil {
334326 fileRunner = fileRunner .WithFork (* forkCfg )
335327 }
328+ if coverageReport != nil {
329+ fileRunner = fileRunner .WithCoverageReport (coverageReport )
330+ }
331+ if seed > 0 {
332+ fileRunner = fileRunner .WithRandomSeed (seed )
333+ }
336334
337335 if flags .Name != "" {
338336 testFunctions , err := fileRunner .GetTests (string (code ))
0 commit comments