Skip to content

Commit

Permalink
- fixed running method
Browse files Browse the repository at this point in the history
- inverted CH flag in run tests
- reflected changes in the changelog.
  • Loading branch information
PaulRaUnite committed Jan 30, 2023
1 parent d6ab6ed commit 06b88a7
Show file tree
Hide file tree
Showing 3 changed files with 10 additions and 9 deletions.
1 change: 1 addition & 0 deletions CHANGELOG.md
Expand Up @@ -14,6 +14,7 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.
- Updated internal use of `chrono`.
- Updated `embedded-hal-mock` dev-dependency.
- Updated MSRV to 1.62.0.
- [breaking-change] Swap implementations of `set_running` and `halt`, inverted output of `running` as CH bit was interpreted incorrectly.

## [0.4.0] - 2022-02-19

Expand Down
2 changes: 1 addition & 1 deletion src/run.rs
Expand Up @@ -7,7 +7,7 @@ where
{
/// Read if the clock is running.
pub fn running(&mut self) -> Result<bool, Error<E>> {
self.register_bit_flag_high(Register::SECONDS, BitFlags::CH)
Ok(!self.register_bit_flag_high(Register::SECONDS, BitFlags::CH)?)
}

/// Set the clock to run (default on power-on).
Expand Down
16 changes: 8 additions & 8 deletions tests/run_halt.rs
Expand Up @@ -2,39 +2,39 @@ use embedded_hal_mock::i2c::Transaction as I2cTrans;
mod common;
use crate::common::{destroy, new, Register, ADDR};

get_test!(running, running, true, trans_read!(SECONDS, [0b1000_0000]));
get_test!(not_running, running, false, trans_read!(SECONDS, [0]));
get_test!(running, running, true, trans_read!(SECONDS, [0]));
get_test!(not_running, running, false, trans_read!(SECONDS, [0b1000_0000]));

#[test]
fn can_set_running() {
let mut dev = new(&[
I2cTrans::write_read(ADDR, vec![Register::SECONDS], vec![0b0101_0101]),
I2cTrans::write(ADDR, vec![Register::SECONDS, 0b1101_0101]),
I2cTrans::write_read(ADDR, vec![Register::SECONDS], vec![0b1101_0101]),
I2cTrans::write(ADDR, vec![Register::SECONDS, 0b0101_0101]),
]);
dev.set_running().unwrap();
destroy(dev);
}

#[test]
fn set_running_when_already_running_does_nothing() {
let mut dev = new(&trans_read!(SECONDS, [0b1000_0000]));
let mut dev = new(&trans_read!(SECONDS, [0b0000_0000]));
dev.set_running().unwrap();
destroy(dev);
}

#[test]
fn can_halt() {
let mut dev = new(&[
I2cTrans::write_read(ADDR, vec![Register::SECONDS], vec![0b1101_0101]),
I2cTrans::write(ADDR, vec![Register::SECONDS, 0b0101_0101]),
I2cTrans::write_read(ADDR, vec![Register::SECONDS], vec![0b0101_0101]),
I2cTrans::write(ADDR, vec![Register::SECONDS, 0b1101_0101]),
]);
dev.halt().unwrap();
destroy(dev);
}

#[test]
fn halt_when_already_halted_does_nothing() {
let mut dev = new(&trans_read!(SECONDS, [0]));
let mut dev = new(&trans_read!(SECONDS, [0b1000_0000]));
dev.halt().unwrap();
destroy(dev);
}

0 comments on commit 06b88a7

Please sign in to comment.