Skip to content

Commit bcd808e

Browse files
committed
docs: update CLAUDE.md to catch up the current codebase
1 parent 70b7365 commit bcd808e

File tree

1 file changed

+11
-7
lines changed

1 file changed

+11
-7
lines changed

CLAUDE.md

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -11,16 +11,20 @@ tcpulse is a TCP/UDP connection performance load generator written in Go. It pro
1111
## Build Commands
1212

1313
```bash
14-
# Build the binary
14+
# Build the binary (includes vet and staticcheck)
1515
make build
1616

1717
# Build Docker image
1818
make docker/build
1919

20-
# Run tests
20+
# Run tests (includes vet and staticcheck)
2121
make test
2222
# or
2323
go test ./...
24+
25+
# Run linting tools
26+
make vet # go vet
27+
make staticcheck # staticcheck
2428
```
2529

2630
## Development Workflow with GitHub
@@ -40,9 +44,9 @@ The project follows a simple flat structure with all Go files in the top-level d
4044
- `main.go`: Entry point with flag-based CLI using pflag and viper (-c for client, -s for server)
4145
- `server.go`: TCP/UDP server logic with context-based cancellation and errgroup for concurrent handling
4246
- `client.go`: Client implementation with persistent/ephemeral connection modes, rate limiting, and latency measurements
43-
- `option.go`: Default socket option implementations (non-Linux platforms)
44-
- `option_linux.go`: Linux-specific socket optimizations using build tags
45-
- `utils.go`: Utility functions for file descriptor limits and file reading
47+
- `socket_option.go`: Default socket option implementations (non-Linux platforms)
48+
- `socket_option_linux.go`: Linux-specific socket optimizations using build tags
49+
- `printer.go`: Utility functions for formatting and printing output/metrics
4650
- `version.go`: Version information
4751

4852
## Key Design Patterns
@@ -64,11 +68,11 @@ The project follows a simple flat structure with all Go files in the top-level d
6468

6569
## Testing
6670

67-
The project includes test files (connect_test.go, serve_test.go, e2e_test.go). When adding new functionality, follow the existing test patterns and ensure all edge cases are covered, especially around connection handling and error scenarios.
71+
The project includes test files (client_test.go, server_test.go, main_test.go, e2e_test.go, printer_test.go, jsonlines_test.go). When adding new functionality, follow the existing test patterns and ensure all edge cases are covered, especially around connection handling and error scenarios.
6872

6973
## Development Notes
7074

71-
- File descriptor limits are automatically raised via utils.go
75+
- File descriptor limits are automatically raised via printer.go
7276
- Server gracefully handles signals (SIGINT, SIGTERM) for clean shutdown
7377
- Error handling includes specific logic for network timeouts and connection resets
7478
- Build uses Go modules with go 1.24 (toolchain go1.24)

0 commit comments

Comments
 (0)