Skip to content

Commit d025410

Browse files
author
Nicola Spieser
committed
test: add 56 content/transport/API tests, eliminate all source warnings, add TOOLS_REFERENCE.md — bump to v0.27.5
- New test_content_transport.cpp: MCPContent factories, JSON serialization, MCPToolResult variants, tool annotations, transport constants, rate limiting, rich tool integration, dynamic lifecycle, logging levels (883 total tests) - Fix 34 source warnings across 13 tool headers (unused params/captures) - Add docs/TOOLS_REFERENCE.md with all 106 tools across 44 modules - Fix README: accurate tool count (106) and test count (883)
1 parent ef3fd31 commit d025410

24 files changed

Lines changed: 1105 additions & 16 deletions

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,3 +18,4 @@ test/native/test_modules
1818
test/native/test_auth_platform
1919
test/native/test_robustness
2020
test/native/test_session
21+
test/native/test_content_transport

CHANGELOG.md

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,38 @@
22

33
All notable changes to this project will be documented in this file.
44

5+
## [0.27.5] - 2026-02-21
6+
7+
### Tests
8+
- Added **56 new content, transport & API surface tests** (`test_content_transport.cpp`):
9+
- MCPContent factories: text, image, audio, resource (text & blob), empty, unicode
10+
- MCPContent JSON serialization: all content types with field validation
11+
- MCPToolResult: text, error, image (with/without alt), audio, chaining, empty, multi-content JSON
12+
- Tool annotations: defaults, readOnly, idempotent, localOnly, custom, fluent API, JSON presence/absence
13+
- Transport constants: content types, headers
14+
- RateLimit: default allow, burst limiting
15+
- Tool/Resource JSON: name, description, schema, handler invocation
16+
- Prompt JSON: arguments serialization
17+
- LogLevel: ordering, to/from string, invalid input
18+
- Server rich tool integration: listing, multi-content calls, error results, audio, embedded resources
19+
- Dynamic tool lifecycle: add → remove → re-add with different handler
20+
- Resource template removal
21+
- Version/protocol constants validation
22+
- **Total: 883 tests** (827 → 883)
23+
24+
### Code Quality
25+
- **Eliminated all source warnings** (34 unique warnings across 13 tool headers):
26+
- Added `(void)args;` for unused handler parameters in tool lambdas
27+
- Added `(void)pins;` for platform-gated parameters in I2SAudioTool, LoRaTool
28+
- Removed unused lambda capture `[pins]``[]` in LoRaTool
29+
- Added `[[maybe_unused]]` to `_findPeerStats` in ESPNowTool (used only inside `#ifdef ESP32`)
30+
- Zero source warnings remain (mock/test warnings are expected)
31+
32+
### Docs
33+
- Added `docs/TOOLS_REFERENCE.md`: auto-generated reference for all 44 tool modules (106 tools)
34+
- Fixed README tool count: 153 → 106 (accurate count from source)
35+
- Updated README test count: 827 → 883
36+
537
## [0.27.3] - 2026-02-20
638

739
### Tests

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,13 +33,13 @@
3333
|---|:---:|:---:|:---:|
3434
| Runs on the MCU ||| ❌ CLI tool |
3535
| MCP spec compliant | ✅ 2025-03-26 | ❌ custom WS ||
36-
| Actually compiles |827 tests | ❌ self-described | N/A |
36+
| Actually compiles |883 tests | ❌ self-described | N/A |
3737
| Streamable HTTP + SSE ||||
3838
| WebSocket transport ||||
3939
| Claude Desktop bridge ||||
4040
| mDNS discovery ||||
4141
| Resource Templates (RFC 6570) ||||
42-
| Built-in tools (GPIO, I2C, SPI, ADC, UART, CAN, Modbus, FS, Power, Timer, LCD, IR, RTC, Camera, ESP-NOW…) |153 tools |||
42+
| Built-in tools (GPIO, I2C, SPI, ADC, UART, CAN, Modbus, FS, Power, Timer, LCD, IR, RTC, Camera, ESP-NOW…) |106 tools |||
4343
| Sampling (server requests LLM from client) ||||
4444
| Elicitation (server requests user input) ||||
4545
| Audio content type ||||

0 commit comments

Comments
 (0)