esphome/tests
Clyde Stubbs 5c26f95a4b
Refactor SPI code; Add ESP-IDF hardware support (#5311)
* Checkpoint

* Checkpoint

* Checkpoint

* Revert hal change

* Checkpoint

* Checkpoint

* Checkpoint

* Checkpoint

* ESP-IDF working

* clang-format

* use bus_list

* Add spi_device; fix 16 bit transfer.

* Enable multi_conf;
Fix LSB 16 bit transactions

* Formatting fixes

* Clang-format, codeowners

* Add test

* Formatting

* clang tidy

* clang-format

* clang-tidy

* clang-format

* Checkpoint

* Checkpoint

* Checkpoint

* Revert hal change

* Checkpoint

* Checkpoint

* Checkpoint

* Checkpoint

* ESP-IDF working

* clang-format

* use bus_list

* Add spi_device; fix 16 bit transfer.

* Enable multi_conf;
Fix LSB 16 bit transactions

* Formatting fixes

* Clang-format, codeowners

* Add test

* Formatting

* clang tidy

* clang-format

* clang-tidy

* clang-format

* Clang-tidy

* Clang-format

* clang-tidy

* clang-tidy

* Fix ESP8266

* RP2040

* RP2040

* Avoid use of spi1 as id

* Refactor SPI code.
Add support for ESP-IDF hardware SPI

* Force SW only for RP2040

* Break up large transfers

* Add interface: option for spi.
validate pins in python.

* Can't use match/case with Python 3.9.
Check for inverted pins.

* Work around target_platform issue with

* Remove debug code

* Optimize write_array16

* Show errors in hex

* Only one spi on ESP32Cx variants

* Ensure bus is claimed before asserting /CS.

* Check on init/deinit

* Allow maximum rate write only SPI on GPIO MUXed pins.

* Clang-format

* Clang-tidy

* Fix issue with reads.

* Finger trouble...

* Make comment about missing SPI on Cx variants

* Pacify CI clang-format. Did not complain locally??

* Restore 8266 to its former SPI glory

* Fix per clang-format

* Move validation and choice of SPI into Python code.

* Add test for interface: config

* Fix issues found on self-review.

---------

Co-authored-by: Keith Burzinski <kbx81x@gmail.com>
2023-09-08 02:27:19 -05:00
..
component_tests Run black over tests folder (#4824) 2023-05-15 16:09:56 +12:00
test_packages YAML linting (#3779) 2022-09-06 15:48:01 +12:00
unit_tests Support for LibreTiny platform (RTL8710, BK7231 & other modules) (#3509) 2023-09-05 10:16:08 +12:00
.gitignore Rename esphomeyaml to esphome (#426) 2019-02-13 16:54:02 +01:00
custom.h Add attribute support to Home Assistant sensors (#1770) 2021-05-17 11:16:22 +12:00
dummy_main.cpp Display the configured esphome:comment on the WebServer (#4246) 2023-01-17 13:02:54 +13:00
pnglogo.png Add transparency support to all image types (#4600) 2023-05-22 08:03:21 +12:00
README.md NeoPixel - Add support for ESP32-S3 (#4435) 2023-02-19 13:38:27 +00:00
test1.yaml Adding DFRobot Ozone Sensor Support (sen0321) (#4782) 2023-09-06 10:09:22 +12:00
test2.yaml Add debug component to all tests (#5333) 2023-09-06 07:38:58 +12:00
test3.1.yaml Add debug component to all tests (#5333) 2023-09-06 07:38:58 +12:00
test3.yaml Integration LightwaveRF switches (#4812) 2023-09-06 10:33:49 +12:00
test4.yaml Refactor SPI code; Add ESP-IDF hardware support (#5311) 2023-09-08 02:27:19 -05:00
test5.yaml Debug component: add free PSRAM sensor (#5334) 2023-09-05 14:02:59 +12:00
test6.yaml Add debug component to all tests (#5333) 2023-09-06 07:38:58 +12:00
test7.yaml Add debug component to all tests (#5333) 2023-09-06 07:38:58 +12:00
test8.yaml Refactor SPI code; Add ESP-IDF hardware support (#5311) 2023-09-08 02:27:19 -05:00
test9.1.yaml Support for LibreTiny platform (RTL8710, BK7231 & other modules) (#3509) 2023-09-05 10:16:08 +12:00
test9.yaml Support for LibreTiny platform (RTL8710, BK7231 & other modules) (#3509) 2023-09-05 10:16:08 +12:00

Tests for ESPHome

This directory contains some tests for ESPHome. At the moment, all the tests only work by simply executing esphome over some YAML files that are made to test whether the yaml gets converted to the proper C++ code.

Of course this is all just very high-level and things like unit tests would be much better. So if you have time and know how to set up a unit testing framework for python, please do give it a try.

When adding entries in test_.yaml files we usually need only one file updated, unless conflicting code is generated for different configurations, e.g. wifi and ethernet cannot be tested on the same device.

Current test_.yaml file contents.

Test name Platform Network BLE
test1.yaml ESP32 wifi None
test2.yaml ESP32 ethernet esp32_ble_tracker
test3.yaml ESP8266 wifi N/A
test4.yaml ESP32 ethernet None
test5.yaml ESP32 wifi ble_server
test6.yaml RP2040 wifi N/A
test7.yaml ESP32-C3 wifi N/A
test8.yaml ESP32-S3 wifi None