mirror of
https://github.com/apernet/hysteria.git
synced 2025-04-03 20:47:38 +03:00
87 lines
2.4 KiB
Go
87 lines
2.4 KiB
Go
package cmd
|
|
|
|
import (
|
|
"reflect"
|
|
"testing"
|
|
"time"
|
|
|
|
"github.com/spf13/viper"
|
|
)
|
|
|
|
// TestClientConfig tests the parsing of the client config
|
|
func TestClientConfig(t *testing.T) {
|
|
viper.SetConfigFile("client_test.yaml")
|
|
err := viper.ReadInConfig()
|
|
if err != nil {
|
|
t.Fatal("failed to read client config", err)
|
|
}
|
|
var config clientConfig
|
|
if err := viper.Unmarshal(&config); err != nil {
|
|
t.Fatal("failed to parse client config", err)
|
|
}
|
|
if !reflect.DeepEqual(config, clientConfig{
|
|
Server: "example.com",
|
|
Auth: "weak_ahh_password",
|
|
TLS: struct {
|
|
SNI string `mapstructure:"sni"`
|
|
Insecure bool `mapstructure:"insecure"`
|
|
CA string `mapstructure:"ca"`
|
|
}{
|
|
SNI: "another.example.com",
|
|
Insecure: true,
|
|
CA: "custom_ca.crt",
|
|
},
|
|
QUIC: struct {
|
|
InitStreamReceiveWindow uint64 `mapstructure:"initStreamReceiveWindow"`
|
|
MaxStreamReceiveWindow uint64 `mapstructure:"maxStreamReceiveWindow"`
|
|
InitConnectionReceiveWindow uint64 `mapstructure:"initConnReceiveWindow"`
|
|
MaxConnectionReceiveWindow uint64 `mapstructure:"maxConnReceiveWindow"`
|
|
MaxIdleTimeout time.Duration `mapstructure:"maxIdleTimeout"`
|
|
KeepAlivePeriod time.Duration `mapstructure:"keepAlivePeriod"`
|
|
DisablePathMTUDiscovery bool `mapstructure:"disablePathMTUDiscovery"`
|
|
}{
|
|
InitStreamReceiveWindow: 1145141,
|
|
MaxStreamReceiveWindow: 1145142,
|
|
InitConnectionReceiveWindow: 1145143,
|
|
MaxConnectionReceiveWindow: 1145144,
|
|
MaxIdleTimeout: 10 * time.Second,
|
|
KeepAlivePeriod: 4 * time.Second,
|
|
DisablePathMTUDiscovery: true,
|
|
},
|
|
Bandwidth: struct {
|
|
Up string `mapstructure:"up"`
|
|
Down string `mapstructure:"down"`
|
|
}{
|
|
Up: "200 mbps",
|
|
Down: "1 gbps",
|
|
},
|
|
FastOpen: true,
|
|
SOCKS5: &socks5Config{
|
|
Listen: "127.0.0.1:1080",
|
|
Username: "anon",
|
|
Password: "bro",
|
|
DisableUDP: true,
|
|
},
|
|
HTTP: &httpConfig{
|
|
Listen: "127.0.0.1:8080",
|
|
Username: "qqq",
|
|
Password: "bruh",
|
|
Realm: "martian",
|
|
},
|
|
Forwarding: []forwardingEntry{
|
|
{
|
|
Listen: "127.0.0.1:8088",
|
|
Remote: "internal.example.com:80",
|
|
Protocol: "tcp",
|
|
},
|
|
{
|
|
Listen: "127.0.0.1:5353",
|
|
Remote: "internal.example.com:53",
|
|
Protocol: "udp",
|
|
UDPTimeout: 50 * time.Second,
|
|
},
|
|
},
|
|
}) {
|
|
t.Fatal("parsed client config is not equal to expected")
|
|
}
|
|
}
|