clash/test
MetaCubeX 30f1b29257 Merge remote-tracking branch 'yaling888/with-tun' into Alpha
# Conflicts:
#	.github/workflows/codeql-analysis.yml
#	.github/workflows/linter.yml
#	.github/workflows/release.yml
#	Makefile
#	README.md
#	adapter/outbound/vless.go
#	component/geodata/memconservative/cache.go
#	component/geodata/router/condition.go
#	component/geodata/router/condition_geoip.go
#	component/geodata/standard/standard.go
#	component/geodata/utils.go
#	config/config.go
#	config/initial.go
#	constant/metadata.go
#	constant/path.go
#	constant/rule.go
#	constant/rule_extra.go
#	dns/client.go
#	dns/filters.go
#	dns/resolver.go
#	go.mod
#	go.sum
#	hub/executor/executor.go
#	hub/route/configs.go
#	listener/listener.go
#	listener/tproxy/tproxy_linux_iptables.go
#	listener/tun/dev/dev.go
#	listener/tun/dev/dev_darwin.go
#	listener/tun/dev/dev_linux.go
#	listener/tun/dev/dev_windows.go
#	listener/tun/dev/wintun/config.go
#	listener/tun/dev/wintun/dll_windows.go
#	listener/tun/dev/wintun/session_windows.go
#	listener/tun/dev/wintun/wintun_windows.go
#	listener/tun/ipstack/commons/dns.go
#	listener/tun/ipstack/gvisor/tun.go
#	listener/tun/ipstack/gvisor/tundns.go
#	listener/tun/ipstack/gvisor/utils.go
#	listener/tun/ipstack/stack_adapter.go
#	listener/tun/ipstack/system/dns.go
#	listener/tun/ipstack/system/tcp.go
#	listener/tun/ipstack/system/tun.go
#	listener/tun/tun_adapter.go
#	main.go
#	rule/common/base.go
#	rule/common/domain.go
#	rule/common/domain_keyword.go
#	rule/common/domain_suffix.go
#	rule/common/final.go
#	rule/common/geoip.go
#	rule/common/geosite.go
#	rule/common/ipcidr.go
#	rule/common/port.go
#	rule/parser.go
#	rule/process.go
#	test/go.mod
#	test/go.sum
#	transport/vless/xtls.go
#	tunnel/tunnel.go
2022-03-17 17:41:02 +08:00
..
config Merge remote-tracking branch 'clash/dev' into Alpha 2022-03-15 23:13:41 +08:00
clash_test.go Merge branch 'clash-dev' into Dev 2022-01-25 15:05:24 +08:00
dns_test.go Feature: add protocol test 2021-05-17 20:33:00 +08:00
docker_test.go Test: add direct benchmark 2021-07-18 19:26:51 +08:00
go.mod Merge remote-tracking branch 'clash/dev' into Alpha 2022-03-17 01:41:51 +08:00
go.sum Migration: go 1.18 2022-03-16 22:00:20 +08:00
Makefile Chore: contexify ProxyAdapter ListenPacket 2021-10-15 21:44:53 +08:00
README.md Chore: contexify ProxyAdapter ListenPacket 2021-10-15 21:44:53 +08:00
snell_test.go Merge remote-tracking branch 'clash/dev' into Alpha 2022-03-17 01:41:51 +08:00
ss_test.go Merge remote-tracking branch 'clash/dev' into Alpha 2022-03-17 01:41:51 +08:00
trojan_test.go [fix]Linux TProxy 2021-12-04 14:34:01 +08:00
util.go Test: fix direct listen fail 2021-09-04 22:44:18 +08:00
util_darwin_test.go Test: add basic protocol benchmark 2021-07-18 17:23:30 +08:00
util_other_test.go Migration: go 1.18 2022-03-16 12:10:13 +08:00
vless_test.go [fix]Linux TProxy 2021-12-04 14:34:01 +08:00
vmess_test.go Merge remote-tracking branch 'clash/dev' into Alpha 2022-03-15 23:13:41 +08:00

Clash testing suit

Protocol testing suit

  • TCP pingpong test
  • UDP pingpong test
  • TCP large data test
  • UDP large data test

Protocols

  • Shadowsocks
    • Normal
    • ObfsHTTP
    • ObfsTLS
    • ObfsV2rayPlugin
  • Vmess
    • Normal
    • AEAD
    • HTTP
    • HTTP2
    • TLS
    • Websocket
    • Websocket TLS
    • gRPC
  • Trojan
    • Normal
    • gRPC
  • Snell
    • Normal
    • ObfsHTTP
    • ObfsTLS

Features

  • DNS
    • DNS Server
    • FakeIP
    • Host

Command

Prerequisite

  • docker (support Linux and macOS)
$ make test

benchmark (Linux)

Cannot represent the throughput of the protocol on your machine but you can compare the corresponding throughput of the protocol on clash (change chunkSize to measure the maximum throughput of clash on your machine)

$ make benchmark