
ESP32_MCPWM target note
-----------------------

This repository is for an Arduino-ESP32 library built around the ESP32 MCPWM
peripheral. The release examples are tested on an ESP32-S3 DevKitC-1; ESP32-only
features include MCPWM routing/timers, esp_timer soft-brake scheduling, and GPIO
fault/capture interrupt fallbacks.

This directory is intended for PlatformIO Test Runner and project tests.

The startup-state regression suite runs on the host with deterministic Arduino,
MCPWM, GPIO, interrupt, and esp_timer mocks. From the repository root, run:

```
sh test/run_native_tests.sh
```

The mocks are test-only include replacements and add no production code or
runtime overhead.

Coverage includes zero-strength and period-preserving dither, idempotent mode
selection, stale-callback interruption, guarded frequency changes, setup
validation and hardware failures, repeated setup, safe destruction, every
fault action and persistence mode, interface access, and capture intervals.

Unit Testing is a software testing method by which individual units of
source code, sets of one or more MCU program modules together with associated
control data, usage procedures, and operating procedures, are tested to
determine whether they are fit for use. Unit testing finds problems early
in the development cycle.

More information about PlatformIO Unit Testing:
- https://docs.platformio.org/en/latest/advanced/unit-testing/index.html
