Jason Lyu
2 months ago
committed by
GitHub
4 changed files with 118 additions and 30 deletions
@ -0,0 +1,84 @@ |
|||
package socks4 |
|||
|
|||
import ( |
|||
"net/netip" |
|||
"testing" |
|||
|
|||
"github.com/stretchr/testify/assert" |
|||
) |
|||
|
|||
func TestIsReservedIP(t *testing.T) { |
|||
reservedIPs := []string{ |
|||
"0.0.0.1", |
|||
"0.0.0.2", |
|||
"0.0.0.50", |
|||
"0.0.0.100", |
|||
"0.0.0.255", |
|||
} |
|||
for _, ip := range reservedIPs { |
|||
assert.True(t, isReservedIP(netip.MustParseAddr(ip))) |
|||
} |
|||
|
|||
unReservedIPs := []string{ |
|||
"0.0.0.0", |
|||
"0.0.1.0", |
|||
"1.1.1.1", |
|||
"10.0.0.0", |
|||
"255.255.255.255", |
|||
} |
|||
for _, ip := range unReservedIPs { |
|||
assert.False(t, isReservedIP(netip.MustParseAddr(ip))) |
|||
} |
|||
} |
|||
|
|||
func TestSplitHostPort(t *testing.T) { |
|||
tests := []struct { |
|||
addr string |
|||
host string |
|||
port uint16 |
|||
}{ |
|||
{ |
|||
"1.1.1.1:80", |
|||
"1.1.1.1", |
|||
80, |
|||
}, |
|||
{ |
|||
"1.1.1.1:0", |
|||
"1.1.1.1", |
|||
0, |
|||
}, |
|||
{ |
|||
"0.0.0.0:0", |
|||
"0.0.0.0", |
|||
0, |
|||
}, |
|||
{ |
|||
"[::1]:443", |
|||
"::1", |
|||
443, |
|||
}, |
|||
{ |
|||
"example.com:80", |
|||
"example.com", |
|||
80, |
|||
}, |
|||
} |
|||
for _, tt := range tests { |
|||
host, port, err := splitHostPort(tt.addr) |
|||
assert.NoError(t, err) |
|||
assert.Equal(t, tt.host, host) |
|||
assert.Equal(t, tt.port, port) |
|||
} |
|||
|
|||
addrs := []string{ |
|||
"1.1.1.1:-80", |
|||
"1.1.1.1:abcd", |
|||
"::1:80", |
|||
"[::1]", |
|||
"example.com", |
|||
} |
|||
for _, addr := range addrs { |
|||
_, _, err := splitHostPort(addr) |
|||
assert.Error(t, err) |
|||
} |
|||
} |
Loading…
Reference in new issue