Merge pull request #3337 from nspcc-dev/fix-notary-test

notary: fix "Condition never satisfied" in Notary test, fix #2422
This commit is contained in:
Anna Shaleva 2024-03-05 19:11:59 +03:00 committed by GitHub
commit a256eac619
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -133,7 +133,7 @@ func TestNotary(t *testing.T) {
defer mtx.RUnlock() defer mtx.RUnlock()
completedTx = completedTxes[h] completedTx = completedTxes[h]
return completedTx != nil return completedTx != nil
}, time.Second*3, time.Millisecond*50, errors.New("main transaction expected to be completed")) }, time.Second*3, time.Millisecond*50, errors.New("transaction expected to be completed"))
return completedTx return completedTx
} }
@ -600,22 +600,14 @@ func TestNotary(t *testing.T) {
// Add block before allowing tx to finalize to exclude race condition when // Add block before allowing tx to finalize to exclude race condition when
// main transaction is finalized between `finalizeWithError` restore and adding new block. // main transaction is finalized between `finalizeWithError` restore and adding new block.
e.AddNewBlock(t) e.AddNewBlock(t)
mtx.RLock()
start := len(completedTxes)
mtx.RUnlock()
setFinalizeWithError(false) setFinalizeWithError(false)
for i := range requests { for i := range requests[1:] {
if i != 0 {
e.AddNewBlock(t) e.AddNewBlock(t)
}
require.Eventually(t, func() bool { _ = getCompletedTx(t, true, requests[i+1].FallbackTransaction.Hash())
mtx.RLock()
defer mtx.RUnlock()
return len(completedTxes)-start >= i+1
}, time.Second*3, time.Millisecond)
checkMainTx(t, requesters, requests, len(requests), false) checkMainTx(t, requesters, requests, len(requests), false)
checkFallbackTxs(t, requests[:i+1], true) checkFallbackTxs(t, requests[:i+2], true)
checkFallbackTxs(t, requests[i+1:], false) checkFallbackTxs(t, requests[i+2:], false)
} }
// OnRequestRemoval: missing account // OnRequestRemoval: missing account