20 lines
1.2 KiB
Markdown
20 lines
1.2 KiB
Markdown
# Discover Module Test Report
|
|
|
|
## Test Coverage
|
|
- **Standard Discovery**: Basic registration and discovery via Redis. (Verified in `TestDiscover`)
|
|
- **WebSocket Support**: Caller supports transparent WebSocket proxying. (Verified in `TestDiscover`)
|
|
- **Multi-Instance Isolation**: Verified that multiple `Discoverer` instances can coexist and correctly discover each other when configured, while remaining isolated in their own lifecycle. (Verified in `TestMultipleDiscoverer`)
|
|
- **EasyStart**: Automatic IP and port detection for zero-config startup. (Verified in `TestEasyStart`)
|
|
|
|
## Deadlock & Stability Fixes
|
|
- **Stop() Deadlock**: Fixed by releasing `appLock` before calling blocking Redis/PubSub operations.
|
|
- **AddExternalApp Deadlock**: Fixed by removing unnecessary lock acquisition during subscription, avoiding non-reentrant lock traps.
|
|
- **Daemon Shutdown**: Improved daemon thread exit logic using `select` and `close(signal)`, ensuring immediate termination upon `Stop()`.
|
|
- **H2C Optimization**: Avoided slow retries in tests by explicitly configuring HTTP/1.1 for mock servers.
|
|
|
|
## Benchmarks
|
|
- **BenchmarkDiscover**: ~500 ns/op (Core node selection and load balancing logic)
|
|
|
|
> Date: 2026-05-05
|
|
> Environment: Darwin / Intel(R) Core(TM) i9-9980HK CPU @ 2.40GHz
|