mirror of
https://github.com/ScuroNeko/mtg.git
synced 2026-08-31 22:34:02 +03:00
FILE / ScuroNeko/mtg
mtglib/internal/doppel/scout_test.go
Исходный файл и его история в репозитории.
Instead of a separate cert_probe.go that duplicates the scout's TLS connection logic, measure the cert chain size directly from the same HTTPS connections the scout already makes. Changes: - Extend ScoutConnResult with payloadLen field - Add Write interception to ScoutConn for handshake boundary detection - Scout.learn() now computes cert size (sum of ApplicationData between CCS and first client Write) alongside inter-record durations - Ganger aggregates cert sizes across raids and exposes NoiseParams() via atomic pointer for lock-free reads from proxy goroutines - Proxy reads NoiseParams from Ganger on each handshake instead of probing at startup - Remove cert_probe.go, disk cache, and related config options (noise-cache-path, noise-cache-ttl, noise-probe-count) Falls back to legacy 2500-4700 range until the first scout raid completes (typically within 1-2 seconds of startup).
40 lines
661 B
Go
40 lines
661 B
Go
package doppel
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/suite"
|
|
)
|
|
|
|
type ScoutTestSuite struct {
|
|
TLSServerTestSuite
|
|
|
|
scout Scout
|
|
}
|
|
|
|
func (suite *ScoutTestSuite) SetupSuite() {
|
|
suite.TLSServerTestSuite.SetupSuite()
|
|
|
|
suite.scout = Scout{
|
|
network: suite.network,
|
|
urls: suite.urls,
|
|
}
|
|
}
|
|
|
|
func (suite *ScoutTestSuite) TestCollectResults() {
|
|
result, err := suite.scout.Learn(suite.ctx)
|
|
suite.NoError(err)
|
|
suite.Less(3, len(result.Durations))
|
|
}
|
|
|
|
func (suite *ScoutTestSuite) TestCollectNothing() {
|
|
suite.ctxCancel()
|
|
|
|
_, err := suite.scout.Learn(suite.ctx)
|
|
suite.Error(err)
|
|
}
|
|
|
|
func TestScout(t *testing.T) {
|
|
suite.Run(t, &ScoutTestSuite{})
|
|
}
|