Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add sanity tests for unexpected conditions in IRrecv. #773

Merged
merged 1 commit into from
Jun 29, 2019

Conversation

crankyoldgit
Copy link
Owner

Add some match sanity checks (via assert()) for conditions where we may have typo-ed
a value. They only run during Unit Testing, so no performance hit.

This uncovered a situation in decodeSony where we could underflow an
integer (and thus make a poor match determination. i.e. No security risk)
for a hypothetically long version of an out-of-spec Sony IR message.
e.g. Far too many bits to be a Sony message.

Improved some of the Sony Unit Tests while here.

Add some sanity checks (`assert()`) for conditions where we may have typoed
a value. They only run during Unit Testing, so no performance hit.

This uncovered a situation in `decodeSony` where we could underflow an
integer (and thus make a poor match determination. i.e. No security risk)
for a hypotheically long version of an out-of-spec Sony IR message.
e.g. Far too many bits to be a Sony message.

Improved some of the Sony Unit Tests while here.
@crankyoldgit
Copy link
Owner Author

No review feedback after 7 days. Merging.

@crankyoldgit crankyoldgit merged commit 3522f8b into master Jun 29, 2019
@crankyoldgit crankyoldgit deleted the match_sanity_checks branch June 30, 2019 10:37
crankyoldgit added a commit that referenced this pull request Jul 4, 2019
_v2.6.3 (20190704)_

**[Bug Fixes]**
- IRMQTTServer: REPLAY_DECODED_AC_MESSAGE not working. (#784, #797)
- ESP32: Ensure `IRrecv`'s GPIO is set to input mode. (#774)

**[Features]**
- IRMQTTServer: Show available sketch space for OTA uploads. (#795)
- Experimental detailed support for Electra/AUX protocol (#788)
- IRMQTTServer: Ability to resend existing climate state via MQTT & HTTP (#784)
- Daikin160: Add detailed & common a/c support. (#777)
- Experimental detailed support for Neoclima protocol. (#767)
- Gree: add WiFi and IFeel bits (#770)
- Handle A/Cs with toggles better. (#758)
- IRMQTTServer: Allow sending/receiving climate via JSON over MQTT. (#763)

**[Misc]**
- Move converting of IR A/C messages out of example code. (#798)
- Reduce example code size and complexity (#790)
- Change `ControlSamsungAC` example to not use `sendExtended()` (#792)
- IRMQTTServer: Add MQTT_CLIMATE_IR_SEND_ON_RESTART compile-time flag. (#784)
- Refactor A/C's toString()'s to reduce code size. Saves ~3.5k (#782)
- Add sanity tests for unexpected conditions in IRrecv. (#773)
- IRMQTTServer: Fixed the HA config documentation (missing '-') (#776)
- Improve `mkkeywords` tool. (#766)
- Refactor with generic decode routines in `IRrecv` class. Saves ~7k. (#765)
@crankyoldgit crankyoldgit mentioned this pull request Jul 4, 2019
crankyoldgit added a commit that referenced this pull request Jul 4, 2019
## _v2.6.3 (20190704)_

**[Bug Fixes]**
- IRMQTTServer: REPLAY_DECODED_AC_MESSAGE not working. (#784, #797)
- ESP32: Ensure `IRrecv`'s GPIO is set to input mode. (#774)

**[Features]**
- IRMQTTServer: Show available sketch space for OTA uploads. (#795)
- Experimental detailed support for Electra/AUX protocol (#788)
- IRMQTTServer: Ability to resend existing climate state via MQTT & HTTP (#784)
- Daikin160: Add detailed & common a/c support. (#777)
- Experimental detailed support for Neoclima protocol. (#767)
- Gree: add WiFi and IFeel bits (#770)
- Handle A/Cs with toggles better. (#758)
- IRMQTTServer: Allow sending/receiving climate via JSON over MQTT. (#763)

**[Misc]**
- Move converting of IR A/C messages out of example code. (#798)
- Reduce example code size and complexity (#790)
- Change `ControlSamsungAC` example to not use `sendExtended()` (#792)
- IRMQTTServer: Add MQTT_CLIMATE_IR_SEND_ON_RESTART compile-time flag. (#784)
- Refactor A/C's toString()'s to reduce code size. Saves ~3.5k (#782)
- Add sanity tests for unexpected conditions in IRrecv. (#773)
- IRMQTTServer: Fixed the HA config documentation (missing '-') (#776)
- Improve `mkkeywords` tool. (#766)
- Refactor with generic decode routines in `IRrecv` class. Saves ~7k. (#765)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant