Skip to content

Commit 7483e8d

Browse files
committed
WIP: Use synctest
1 parent f771efa commit 7483e8d

File tree

4 files changed

+42
-2
lines changed

4 files changed

+42
-2
lines changed

go.mod

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
module github.com/pion/bwe-test
22

3-
go 1.21
3+
go 1.25
44

55
toolchain go1.25.1
66

vnet/main.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -204,7 +204,7 @@ func (r *Runner) runVariableAvailableCapacitySingleFlow() error {
204204
},
205205
}
206206
r.runNetworkSimulation(path, nm)
207-
207+
nm.Close()
208208
return nil
209209
}
210210

vnet/manager.go

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ func (r *RouterWithConfig) getIPMapping() (private, public string, err error) {
4444

4545
// NetworkManager manages the virtual network topology for bandwidth estimation tests.
4646
type NetworkManager struct {
47+
wan *vnet.Router
4748
leftRouter *RouterWithConfig
4849
leftTBF *vnet.TokenBucketFilter
4950
rightRouter *RouterWithConfig
@@ -94,6 +95,7 @@ func NewManager() (*NetworkManager, error) {
9495
}
9596

9697
manager := &NetworkManager{
98+
wan: wan,
9799
leftRouter: leftRouter,
98100
leftTBF: leftTBF,
99101
rightRouter: rightRouter,
@@ -107,6 +109,15 @@ func NewManager() (*NetworkManager, error) {
107109
return manager, nil
108110
}
109111

112+
func (m *NetworkManager) Close() error {
113+
m.wan.Stop()
114+
m.leftRouter.Stop()
115+
m.rightRouter.Stop()
116+
m.leftTBF.Close()
117+
m.rightTBF.Close()
118+
return nil
119+
}
120+
110121
// GetLeftNet creates and returns a new Net on the left side of the network topology.
111122
func (m *NetworkManager) GetLeftNet() (*vnet.Net, string, error) {
112123
privateIP, publicIP, err := m.leftRouter.getIPMapping()

vnet/vnet_test.go

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
// SPDX-FileCopyrightText: 2025 The Pion community <https://pion.ly>
2+
// SPDX-License-Identifier: MIT
3+
4+
package main
5+
6+
import (
7+
"testing"
8+
"testing/synctest"
9+
10+
"github.com/pion/logging"
11+
"github.com/stretchr/testify/assert"
12+
)
13+
14+
func TestVnet(t *testing.T) {
15+
synctest.Test(t, func(t *testing.T) {
16+
lf := logging.NewDefaultLoggerFactory()
17+
logger := lf.NewLogger("bwe_vnet_synctest")
18+
runner := Runner{
19+
loggerFactory: lf,
20+
logger: logger,
21+
name: "VariableAvailableCapacitySingleFlow",
22+
senderMode: abrSenderMode,
23+
flowMode: singleFlowMode,
24+
}
25+
err := runner.Run()
26+
assert.NoError(t, err)
27+
synctest.Wait()
28+
})
29+
}

0 commit comments

Comments
 (0)