Refactor api

This commit is contained in:
世界 2022-08-14 11:52:38 +08:00
parent d378b6ca53
commit b828f01643
No known key found for this signature in database
GPG key ID: CD109927C34A63C4
15 changed files with 357 additions and 138 deletions

70
tun_test.go Normal file
View file

@ -0,0 +1,70 @@
package tun
import (
"reflect"
"testing"
"github.com/sagernet/sing/common/ranges"
)
func TestUIDRanges(t *testing.T) {
for _, testRange := range []struct {
include []ranges.Range[uint32]
exclude []ranges.Range[uint32]
androidUser []int
expected []ranges.Range[uint32]
}{
{},
{
include: []ranges.Range[uint32]{
ranges.NewSingle[uint32](0),
ranges.NewSingle[uint32](1000),
},
expected: []ranges.Range[uint32]{
{Start: 1, End: 999},
{Start: 1001, End: userEnd},
},
},
{
androidUser: []int{0},
expected: []ranges.Range[uint32]{
{Start: androidUserRange, End: userEnd},
},
},
{
androidUser: []int{0},
expected: []ranges.Range[uint32]{
{Start: 100000, End: userEnd},
},
},
{
androidUser: []int{10},
include: []ranges.Range[uint32]{
ranges.NewSingle[uint32](0),
},
expected: []ranges.Range[uint32]{
{Start: 1, End: androidUserRange*10 - 1},
{Start: androidUserRange * 11, End: userEnd},
},
},
{
include: []ranges.Range[uint32]{
{Start: 123456, End: 123456},
},
exclude: []ranges.Range[uint32]{
{Start: 1000, End: 1000},
},
androidUser: []int{0},
expected: []ranges.Range[uint32]{
{Start: 1000, End: 1000},
{Start: 100000, End: 123455},
{Start: 123457, End: userEnd},
},
},
} {
result := buildExcludedRanges(testRange.include, testRange.exclude, testRange.androidUser)
if !reflect.DeepEqual(result, testRange.expected) {
t.Fatal("input", testRange.include, testRange.exclude, testRange.androidUser, "\nexpected", testRange.expected, "\ngot", result)
}
}
}