refactor(mtproto): sync replace result cache with execution ledger
This commit is contained in:
parent
141f2f20c4
commit
c1597696af
39 changed files with 1621 additions and 2320 deletions
|
|
@ -1,6 +1,9 @@
|
|||
package mtprotoedge
|
||||
|
||||
import "testing"
|
||||
import (
|
||||
"testing"
|
||||
"time"
|
||||
)
|
||||
|
||||
func TestRuntimeSnapshotIsNilSafeAndReportsConfiguredLimits(t *testing.T) {
|
||||
if got := (*Server)(nil).RuntimeSnapshot(); got != (RuntimeSnapshot{}) {
|
||||
|
|
@ -25,3 +28,30 @@ func TestRuntimeSnapshotIsNilSafeAndReportsConfiguredLimits(t *testing.T) {
|
|||
t.Fatalf("fresh server reported live ownership: %#v", snapshot)
|
||||
}
|
||||
}
|
||||
|
||||
func TestRuntimeSnapshotSeparatesExecutionOwnersReceiptsAndBudget(t *testing.T) {
|
||||
server := New(Options{})
|
||||
server.rpcResults = newRPCExecutionLedgerForTest(time.Now, 4)
|
||||
auth := [8]byte{1, 2, 3, 4}
|
||||
claim, err := server.rpcResults.Acquire(auth, 5, 6)
|
||||
if err != nil || claim.state != rpcResultAcquireOwner {
|
||||
t.Fatalf("owner = %#v, %v", claim, err)
|
||||
}
|
||||
pending := server.RuntimeSnapshot()
|
||||
if pending.RPCExecutionOwners != 1 || pending.RPCExecutionReservedEntries != 1 ||
|
||||
pending.RPCExecutionReceipts != 0 || pending.RPCExecutionReceiptBudgetBytes != 0 {
|
||||
t.Fatalf("pending execution snapshot = %#v", pending)
|
||||
}
|
||||
server.rpcResults.completeReplayableForTest(auth, 5, 6, &encodedOutboundMessage{body: make([]byte, 4<<20)})
|
||||
completed := server.RuntimeSnapshot()
|
||||
if completed.RPCExecutionOwners != 0 || completed.RPCExecutionReservedEntries != 1 ||
|
||||
completed.RPCExecutionReceipts != 1 || completed.RPCExecutionReceiptBudgetBytes != rpcExecutionReceiptBudgetBytes {
|
||||
t.Fatalf("completed execution snapshot = %#v", completed)
|
||||
}
|
||||
server.rpcResults.Acknowledge(auth, 5, 6)
|
||||
released := server.RuntimeSnapshot()
|
||||
if released.RPCExecutionReservedEntries != 0 || released.RPCExecutionReceipts != 0 ||
|
||||
released.RPCExecutionReceiptBudgetBytes != 0 {
|
||||
t.Fatalf("released execution snapshot = %#v", released)
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue