PackageTrack
Sign in Get early access

embedded-hal-mock

A collection of mocked devices that implement the embedded-hal traits

0.11.1 5.6M downloads/mo #4303 most downloaded on crates.io dbrgn/embedded-hal-mock

What this package is like to depend on

Last release 2 years ago

no release in 18 months

Release timing varies

gaps range from 2 weeks to 1.4 years

Nearly every release is documented

notes for 15 of 15 stable releases

Nothing withdrawn

no release was ever pulled

8 years old

19 releases · first in 2018

0 releases in the last 12 months

see the full history below

Release timeline

19 releases · Mar 2018 to Jun 2024
2019 2020 2021 2022 2023 2024 2025 2026
Release Pre-release

Releases

latest 19
  1. 0.11.1 02 Jun 2024
    Release notes

    This release only includes a documentation fix (with regards to default-enabled Cargo features), but no code changes.

    Open source →
  2. 0.11.0 30 May 2024
    Release notes

    This release adds support for various async APIs as defined in embedded-hal-async. To use these features, you need to enable the embedded-hal-async Cargo feature.

    If you're upgrading from an earlier version, please note that the pin module was renamed to digital to match embedded-hal.

    Added

    • Add ToggleableOutputPin support for eh0::digital::Mock (#89)
    • Add StatefulOutputPin support for eh1::digital::Mock (#89)
    • Async support for eh1::i2c::Mock (#119)
    • Async support for eh1::digital::Mock (#91)
    • Async delay for NoopDelay / StdSleep (#104)
    • New CheckedDelay mock that supports both sync and async delays (#104)

    Changed

    • Rename pin module to digital to match embedded-hal (#113)
    • Improve top level usage docs (#117)
    Open source →
  3. 0.10.0 11 Jan 2024
    Release notes

    This release contains a big change: embedded-hal-mock now supports both embedded-hal 0.x and 1.x! The two variants are accessible through embedded_hal_mock::eh0::* and embedded_hal_mock::eh1::*. If there are any issues, leave feedback in the GitHub issue tracker.

    Additionally, tests now fail if you forgot to call .done(). This should reduce the chance of accidentally writing a broken test.

    This release contains commits by 12 different people, thanks a lot for the contributions!

    Migrating to 0.10.0

    • Update your imports: Change use embedded_hal_mock::* to use embedded_hal_mock::eh0::*
    • Rename all .expect(...) calls on mocks to .update_expectations(...)
    • Rename all eh0::delay::MockNoop usages to eh0::delay::NoopDelay
    • Run your tests to ensure that you don't have any missing .done() calls in your code
    • Look through the rest of the changes below and check if they might affect your code

    Added

    • Support for both embedded-hal 0.x and 1.x in the same crate (#75)
    • Print a warning to stderr and fail test if a mock is dropped without having calling .done() on it, or if .done() is called twice (#59, #61)
    • Implement mock for eh1::pwm::SetDutyCycle

    Fixed

    • Generic mock: Fix a bug that caused the call to .done() to fail if .next() was called on the mock after all expectations have already been consumed (#58)
    • Fix assertion error message for SPI transfer and transfer_in_place (#90)

    Changed

    • Renamed .expect(...) method to .update_expectations(...) to avoid confusion with the expect method in Option and Result (#63)
    • When updating expectations on a mock by calling .expect(...) / .update_expectations(...) on it, assert that previous expectations have been consumed (#63)
    • Rename delay::MockNoop to delay::NoopDelay.
    • Changed the eh1 SPI implementation to be generic over word size
    • Updated nb dependency from 0.1 to 1.1 (#107)
    • Bump minimal supported Rust version (MSRV) to 1.63 (or 1.75 if you use embedded-hal 1.0)
    • The minimal supported Rust version (MSRV) is specified in the Cargo.toml to offer clearer error messages to consumers with outdated Rust versions
    Open source →
  4. 0.10.0-rc.4 14 Dec 2023 pre-release

    Nothing published for this version

  5. 0.10.0-rc.3 29 Nov 2023 pre-release

    Nothing published for this version

  6. 0.10.0-rc.2 23 Nov 2023 pre-release

    Nothing published for this version

  7. 0.10.0-rc.1 01 Nov 2023 pre-release

    Nothing published for this version

  8. 0.9.0 06 Jan 2023
    Release notes

    Added

    • Implement WriteIter and WriteIterRead for i2c mock (#44)
    • Implement PwmPin for pin mock (#52)
    • Add mock for timers using embedded-time with nanosecond precision (#40)

    Changed

    • Bump minimal supported Rust version (MSRV) to 1.60
    • Switch to Rust 2021 edition (#55)
    • Switch from CircleCI to GitHub Actions (#50)
    Open source →
  9. 0.8.0 16 Aug 2021
    Release notes

    Added

    • Add one-shot ADC mock (#38)
    Open source →
  10. 0.7.2 02 Jun 2020
    Release notes

    Added

    • Implement std::Error trait for MockError (#31)
    • serial: Implement error expectations (#32)
    Open source →
  11. 0.7.1 03 Jan 2020
    Release notes

    Added

    • i2c: Implement error expectations (#29)

    Fixed

    • Fix link to digital pin docs (#28)
    Open source →
  12. 0.7.0 22 May 2019
    Release notes

    Added

    • The serial transaction API now has two new constructor methods: read_many and write_many.

    Changed

    • The serial transaction API changed: The Transaction::write function now expects a single word, not a collection of words. To add a transaction for many writes, use Transaction::write_many instead.

    Fixed

    • Make the serial mock actually cloneable
    Open source →
  13. 0.6.0 10 May 2019
    Release notes

    Added

    • Add serial device mock (#21)
    • Add InputPin and OutputPin mocks (#18)

    Changed

    • MockError::Io now wraps an io::ErrorKind instance instead of io::Error.
    Open source →
  14. 0.5.0 07 Jan 2019
    Release notes

    Added

    • SPI: Add support for non-blocking FullDuplex mode (#14)

    Changed

    • Require Rust 1.31+
    • Apply and enforce rustfmt
    Open source →
  15. 0.4.1 26 Dec 2018
    Release notes

    Added

    • Add StdSleep delay implementation based on std::thread::sleep (#8)
    • Add new() methods to MockNoop and StdSleep

    Fixed

    • Fix error messages for unfulfilled I²C expectations (#12)
    Open source →
  16. 0.4.0 22 Oct 2018
    Release notes

    Changed

    • I²C mock has a new transaction based API, matching the SPI mock (#4)
    Open source →
  17. 0.3.0 12 Oct 2018
    Release notes

    Added

    • SPI mock implementation (#2)
    • Set up CI (#3)

    Changed

    • Restructure crate:
      • I2cMock is now at i2c::Mock
      • DelayMockNoop is now at delay::MockNoop
    • Move all docs into crate docs (so it can be tested)
    Open source →
  18. 0.2.0 18 Jun 2018
    Release notes

    Changed

    • Upgrade to embedded-hal 0.2.
    Open source →
  19. 0.1.0 31 Mar 2018
    Release notes

    Initial release on crates.io.

    Open source →

Every package, every release, already written down.

The archive is open and free. Watching your own project is what we are building next.

Browse the archive