mirror of
https://github.com/netbirdio/gvisor.git
synced 2026-05-22 17:12:49 -07:00
Move RunImmediatelyScheduledJobs to faketime
Use it everywhere. PiperOrigin-RevId: 375539262
This commit is contained in:
committed by
gVisor bot
parent
b60e23a7d9
commit
df7c82a60c
@@ -218,6 +218,12 @@ func (mc *ManualClock) stopTimerLocked(mt *manualTimer) {
|
||||
}
|
||||
}
|
||||
|
||||
// RunImmediatelyScheduledJobs runs all jobs scheduled to run at the current
|
||||
// time.
|
||||
func (mc *ManualClock) RunImmediatelyScheduledJobs() {
|
||||
mc.Advance(0)
|
||||
}
|
||||
|
||||
// Advance executes all work that have been scheduled to execute within d from
|
||||
// the current time. Blocks until all work has completed execution.
|
||||
func (mc *ManualClock) Advance(d time.Duration) {
|
||||
|
||||
@@ -133,7 +133,7 @@ func TestDADCheckDuplicateAddress(t *testing.T) {
|
||||
t.Errorf("got dad.checkDuplicateAddress(%s, _) = %d, want = %d", addr1, res, stack.DADDisabled)
|
||||
}
|
||||
// Wait for any initially fired timers to complete.
|
||||
clock.Advance(0)
|
||||
clock.RunImmediatelyScheduledJobs()
|
||||
if diff := dad.check(nil); diff != "" {
|
||||
t.Errorf("dad check mismatch (-want +got):\n%s", diff)
|
||||
}
|
||||
@@ -147,7 +147,7 @@ func TestDADCheckDuplicateAddress(t *testing.T) {
|
||||
if res := dad.checkDuplicateAddress(addr1, handler(ch, addr1)); res != stack.DADStarting {
|
||||
t.Errorf("got dad.checkDuplicateAddress(%s, _) = %d, want = %d", addr1, res, stack.DADStarting)
|
||||
}
|
||||
clock.Advance(0)
|
||||
clock.RunImmediatelyScheduledJobs()
|
||||
if diff := dad.check([]tcpip.Address{addr1}); diff != "" {
|
||||
t.Errorf("dad check mismatch (-want +got):\n%s", diff)
|
||||
}
|
||||
@@ -156,7 +156,7 @@ func TestDADCheckDuplicateAddress(t *testing.T) {
|
||||
if res := dad.checkDuplicateAddress(addr1, handler(ch, addr1)); res != stack.DADAlreadyRunning {
|
||||
t.Errorf("got dad.checkDuplicateAddress(%s, _) = %d, want = %d", addr1, res, stack.DADAlreadyRunning)
|
||||
}
|
||||
clock.Advance(0)
|
||||
clock.RunImmediatelyScheduledJobs()
|
||||
if diff := dad.check(nil); diff != "" {
|
||||
t.Errorf("dad check mismatch (-want +got):\n%s", diff)
|
||||
}
|
||||
@@ -170,7 +170,7 @@ func TestDADCheckDuplicateAddress(t *testing.T) {
|
||||
if res := dad.checkDuplicateAddress(addr2, handler(ch, addr2)); res != stack.DADStarting {
|
||||
t.Errorf("got dad.checkDuplicateAddress(%s, _) = %d, want = %d", addr2, res, stack.DADStarting)
|
||||
}
|
||||
clock.Advance(0)
|
||||
clock.RunImmediatelyScheduledJobs()
|
||||
if diff := dad.check([]tcpip.Address{addr2}); diff != "" {
|
||||
t.Errorf("dad check mismatch (-want +got):\n%s", diff)
|
||||
}
|
||||
@@ -208,7 +208,7 @@ func TestDADCheckDuplicateAddress(t *testing.T) {
|
||||
if res := dad.checkDuplicateAddress(addr2, handler(ch, addr2)); res != stack.DADStarting {
|
||||
t.Errorf("got dad.checkDuplicateAddress(%s, _) = %d, want = %d", addr2, res, stack.DADStarting)
|
||||
}
|
||||
clock.Advance(0)
|
||||
clock.RunImmediatelyScheduledJobs()
|
||||
if diff := dad.check([]tcpip.Address{addr2, addr2}); diff != "" {
|
||||
t.Errorf("dad check mismatch (-want +got):\n%s", diff)
|
||||
}
|
||||
@@ -247,7 +247,7 @@ func TestDADStop(t *testing.T) {
|
||||
if res := dad.checkDuplicateAddress(addr3, handler(ch, addr3)); res != stack.DADStarting {
|
||||
t.Errorf("got dad.checkDuplicateAddress(%s, _) = %d, want = %d", addr2, res, stack.DADStarting)
|
||||
}
|
||||
clock.Advance(0)
|
||||
clock.RunImmediatelyScheduledJobs()
|
||||
if diff := dad.check([]tcpip.Address{addr1, addr2, addr3}); diff != "" {
|
||||
t.Errorf("dad check mismatch (-want +got):\n%s", diff)
|
||||
}
|
||||
@@ -272,7 +272,7 @@ func TestDADStop(t *testing.T) {
|
||||
if res := dad.checkDuplicateAddress(addr1, handler(ch, addr1)); res != stack.DADStarting {
|
||||
t.Errorf("got dad.checkDuplicateAddress(%s, _) = %d, want = %d", addr1, res, stack.DADStarting)
|
||||
}
|
||||
clock.Advance(0)
|
||||
clock.RunImmediatelyScheduledJobs()
|
||||
if diff := dad.check([]tcpip.Address{addr1}); diff != "" {
|
||||
t.Errorf("dad check mismatch (-want +got):\n%s", diff)
|
||||
}
|
||||
@@ -347,7 +347,7 @@ func TestNonce(t *testing.T) {
|
||||
t.Errorf("got dad.checkDuplicateAddress(%s, _) = %d, want = %d", addr1, res, stack.DADStarting)
|
||||
}
|
||||
|
||||
clock.Advance(0)
|
||||
clock.RunImmediatelyScheduledJobs()
|
||||
for i, want := range test.expectedResults {
|
||||
if got := dad.extendIfNonceEqual(addr1, test.mockedReceivedNonce); got != want {
|
||||
t.Errorf("(i=%d) got dad.extendIfNonceEqual(%s, _) = %d, want = %d", i, addr1, got, want)
|
||||
|
||||
@@ -15,7 +15,6 @@ go_library(
|
||||
deps = [
|
||||
"//pkg/tcpip",
|
||||
"//pkg/tcpip/buffer",
|
||||
"//pkg/tcpip/faketime",
|
||||
"//pkg/tcpip/header",
|
||||
"//pkg/tcpip/stack",
|
||||
],
|
||||
|
||||
@@ -19,27 +19,13 @@ package testutil
|
||||
import (
|
||||
"fmt"
|
||||
"math/rand"
|
||||
"time"
|
||||
|
||||
"gvisor.dev/gvisor/pkg/tcpip"
|
||||
"gvisor.dev/gvisor/pkg/tcpip/buffer"
|
||||
"gvisor.dev/gvisor/pkg/tcpip/faketime"
|
||||
"gvisor.dev/gvisor/pkg/tcpip/header"
|
||||
"gvisor.dev/gvisor/pkg/tcpip/stack"
|
||||
)
|
||||
|
||||
const (
|
||||
// immediateDuration is a duration of zero for scheduling work that needs to
|
||||
// be done immediately but asynchronously to avoid deadlock.
|
||||
immediateDuration time.Duration = 0
|
||||
)
|
||||
|
||||
// RunImmediatelyScheduledJobs runs all jobs scheduled to run at the current
|
||||
// time.
|
||||
func RunImmediatelyScheduledJobs(clock *faketime.ManualClock) {
|
||||
clock.Advance(immediateDuration)
|
||||
}
|
||||
|
||||
// MockLinkEndpoint is an endpoint used for testing, it stores packets written
|
||||
// to it and can mock errors.
|
||||
type MockLinkEndpoint struct {
|
||||
|
||||
@@ -57,7 +57,6 @@ go_test(
|
||||
"//pkg/tcpip/link/channel",
|
||||
"//pkg/tcpip/link/pipe",
|
||||
"//pkg/tcpip/network/arp",
|
||||
"//pkg/tcpip/network/internal/testutil",
|
||||
"//pkg/tcpip/network/ipv4",
|
||||
"//pkg/tcpip/network/ipv6",
|
||||
"//pkg/tcpip/stack",
|
||||
|
||||
@@ -32,7 +32,6 @@ import (
|
||||
"gvisor.dev/gvisor/pkg/tcpip/link/channel"
|
||||
"gvisor.dev/gvisor/pkg/tcpip/link/pipe"
|
||||
"gvisor.dev/gvisor/pkg/tcpip/network/arp"
|
||||
iptestutil "gvisor.dev/gvisor/pkg/tcpip/network/internal/testutil"
|
||||
"gvisor.dev/gvisor/pkg/tcpip/network/ipv4"
|
||||
"gvisor.dev/gvisor/pkg/tcpip/network/ipv6"
|
||||
"gvisor.dev/gvisor/pkg/tcpip/stack"
|
||||
@@ -599,7 +598,7 @@ func TestForwardingWithLinkResolutionFailure(t *testing.T) {
|
||||
t.Fatalf("s.NUDConfigurations(%d, %d): %s", outgoingNICID, test.networkProtocolNumber, err)
|
||||
}
|
||||
// Trigger the first packet on the endpoint.
|
||||
iptestutil.RunImmediatelyScheduledJobs(clock)
|
||||
clock.RunImmediatelyScheduledJobs()
|
||||
|
||||
for i := 0; i < int(nudConfigs.MaxMulticastProbes); i++ {
|
||||
if request, ok = outgoingEndpoint.Read(); !ok {
|
||||
|
||||
Reference in New Issue
Block a user