Files
test_server/AGENTS.md
T
2026-04-09 22:31:31 +03:00

67 lines
1.5 KiB
Markdown

# test_server
A C++ HTTP server using the PIP library.
## Build & Run
```bash
mkdir build && cd build
cmake ..
make
./test_server
```
## Key Facts
- **C++ Standard**: C++11 (enforced)
- **Build System**: CMake (generates `compile_commands.json` automatically)
- **Build Directory**: `build/` (ignored in git)
- **PIP Library**: Installed at `/usr/local/include/pip`
- **Entrypoint**: `src/main.cpp`
## Dependencies
The project uses a custom **PIP C++ library** (not Python pip). Required components:
- `PIP::Console` - Console output (`piCout`)
- `PIP::HTTPServer` - HTTP server functionality
- `PIP::IOUtils` - I/O utilities
- `PIP::ClientServer` - Client/server infrastructure
## Code Style
- **Formatter**: clang-format (config in `.clang-format`)
- **Indent**: Tabs, width 4
- **Column Limit**: 140 characters
- **Encoding**: UTF-8
Run formatter:
```bash
clang-format -i src/*.cpp src/*.h
```
## Architecture
The server creates a `PIKbdListener` that:
- Captures F10 key press for graceful exit
- Starts an HTTP server on `0.0.0.0:8888`
- Waits for exit signal via `WAIT_FOR_EXIT` macro
## API Endpoints
| Endpoint | Method | Description |
|----------|--------|-------------|
| `/api/connect` | GET | Connects TCP client to 127.0.0.1:1234 |
| `/api/disconnect` | GET | Disconnects TCP client |
## Testing
Use `reproduce_crash.sh` to test the TCP connect/disconnect functionality:
```bash
./reproduce_crash.sh
```
## Notes
- Qt Creator is the primary IDE (`.qtcreator/` config present)
- No unit tests or CI configured