mirror of
https://github.com/netbirdio/netbird.git
synced 2026-10-07 22:19:08 +02:00
32 lines
955 B
Go
32 lines
955 B
Go
//go:build privileged
|
|
|
|
package ipfwdstate
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
"github.com/stretchr/testify/require"
|
|
)
|
|
|
|
// TestRequestRoutingV6ToV4Transition verifies that a v4-only routing request
|
|
// releases a previously held routing-owned v6 reference.
|
|
func TestRequestRoutingV6ToV4Transition(t *testing.T) {
|
|
f := NewIPForwardingState("wt-fwd-test")
|
|
|
|
require.NoError(t, f.RequestRouting(true), "request routing with v6")
|
|
v4, v6 := f.Counts()
|
|
assert.Equal(t, 1, v4, "v4 reference held")
|
|
assert.Equal(t, 1, v6, "v6 reference held")
|
|
|
|
require.NoError(t, f.RequestRouting(false), "request routing v4-only")
|
|
v4, v6 = f.Counts()
|
|
assert.Equal(t, 1, v4, "v4 reference kept")
|
|
assert.Equal(t, 0, v6, "routing-owned v6 reference released")
|
|
|
|
require.NoError(t, f.ReleaseRouting(), "release routing")
|
|
v4, v6 = f.Counts()
|
|
assert.Equal(t, 0, v4, "all v4 references released")
|
|
assert.Equal(t, 0, v6, "all v6 references released")
|
|
}
|