@@ -14,12 +14,14 @@ import (
1414 "math/big"
1515 "strings"
1616 "testing"
17+ "time"
1718
1819 "github.com/ethereum/go-ethereum/accounts/abi/bind"
1920 "github.com/ethereum/go-ethereum/common"
2021 "github.com/ethereum/go-ethereum/params"
2122 "github.com/offchainlabs/nitro/arbutil"
2223 "github.com/offchainlabs/nitro/solgen/go/rollupgen"
24+ "github.com/offchainlabs/nitro/util/colors"
2325 "github.com/offchainlabs/nitro/validator"
2426)
2527
@@ -186,7 +188,7 @@ func stakerTestImpl(t *testing.T, faultyStaker bool, honestStakerInactive bool)
186188 defer close (backgroundTxsShutdownChan )
187189 err := makeBackgroundTxs (backgroundTxsCtx , l2info , l2clientA , l2clientB , faultyStaker )
188190 if ! errors .Is (err , context .Canceled ) {
189- t . Error ( "error making background txs" , err )
191+ Fail ( t , "error making background txs" , err )
190192 }
191193 })()
192194
@@ -210,6 +212,14 @@ func stakerTestImpl(t *testing.T, faultyStaker bool, honestStakerInactive bool)
210212 stakerBTxs ++
211213 }
212214 }
215+
216+ if err != nil && strings .Contains (err .Error (), "waiting" ) {
217+ colors .PrintRed ("retrying " , err .Error (), i )
218+ time .Sleep (20 * time .Millisecond )
219+ i --
220+ continue
221+ }
222+
213223 if err != nil && faultyStaker && i % 2 == 1 {
214224 // Check if this is an expected error from the faulty staker.
215225 if strings .Contains (err .Error (), "agreed with entire challenge" ) {
@@ -247,15 +257,15 @@ func stakerTestImpl(t *testing.T, faultyStaker bool, honestStakerInactive bool)
247257 isHonestZombie , err := rollup .IsZombie (& bind.CallOpts {}, valWalletAddrA )
248258 Require (t , err )
249259 if isHonestZombie {
250- t . Fatal ( "staker A became a zombie" )
260+ Fail ( t , "staker A became a zombie" )
251261 }
252262 for j := 0 ; j < 5 ; j ++ {
253263 TransferBalance (t , "Faucet" , "Faucet" , common .Big0 , l1info , l1client , ctx )
254264 }
255265 }
256266
257267 if stakerATxs == 0 || stakerBTxs == 0 {
258- t . Fatal ( "staker didn't make txs: staker A made" , stakerATxs , "staker B made" , stakerBTxs )
268+ Fail ( t , "staker didn't make txs: staker A made" , stakerATxs , "staker B made" , stakerBTxs )
259269 }
260270
261271 latestConfirmedNode , err := rollup .LatestConfirmed (& bind.CallOpts {})
@@ -264,24 +274,24 @@ func stakerTestImpl(t *testing.T, faultyStaker bool, honestStakerInactive bool)
264274 if latestConfirmedNode <= 1 && ! honestStakerInactive {
265275 latestCreatedNode , err := rollup .LatestNodeCreated (& bind.CallOpts {})
266276 Require (t , err )
267- t . Fatal ( "latest confirmed node didn't advance:" , latestConfirmedNode , latestCreatedNode )
277+ Fail ( t , "latest confirmed node didn't advance:" , latestConfirmedNode , latestCreatedNode )
268278 }
269279
270280 if faultyStaker && ! sawStakerZombie {
271- t . Fatal ( "staker B didn't become a zombie despite being faulty" )
281+ Fail ( t , "staker B didn't become a zombie despite being faulty" )
272282 }
273283
274284 isStaked , err := rollup .IsStaked (& bind.CallOpts {}, valWalletAddrA )
275285 Require (t , err )
276286 if ! isStaked {
277- t . Fatal ( "staker A isn't staked" )
287+ Fail ( t , "staker A isn't staked" )
278288 }
279289
280290 if ! faultyStaker {
281291 isStaked , err := rollup .IsStaked (& bind.CallOpts {}, valWalletAddrB )
282292 Require (t , err )
283293 if ! isStaked {
284- t . Fatal ( "staker B isn't staked" )
294+ Fail ( t , "staker B isn't staked" )
285295 }
286296 }
287297}
0 commit comments