On Mon, Oct 17, 2022 at 09:00:43PM +0800, Kent Gibson wrote:
On Fri, Oct 14, 2022 at 04:17:24PM +0530, Viresh Kumar wrote:
Add tests for the rust bindings, quite similar to the ones in cxx bindings.
Signed-off-by: Viresh Kumar viresh.kumar@linaro.org
<snip> > + > + #[test] > + fn clock() {
My preference would be event_clock(), but I can live with clock().
let mut config = TestConfig::new(NGPIO).unwrap();
config.lconfig_add_settings(&[0]);
config.request_lines().unwrap();
let info = config.chip().line_info(0).unwrap();
assert_eq!(info.event_clock().unwrap(), EventClock::Monotonic);
let mut config = TestConfig::new(NGPIO).unwrap();
config.lconfig_clock(EventClock::Monotonic);
config.lconfig_add_settings(&[0]);
config.request_lines().unwrap();
let info = config.chip().line_info(0).unwrap();
assert_eq!(info.event_clock().unwrap(), EventClock::Monotonic);
let mut config = TestConfig::new(NGPIO).unwrap();
config.lconfig_clock(EventClock::Realtime);
config.lconfig_add_settings(&[0]);
config.request_lines().unwrap();
let info = config.chip().line_info(0).unwrap();
assert_eq!(info.event_clock().unwrap(), EventClock::Realtime);
let mut config = TestConfig::new(NGPIO).unwrap();
config.lconfig_clock(EventClock::HTE);
config.lconfig_add_settings(&[0]);
config.request_lines().unwrap();
let info = config.chip().line_info(0).unwrap();
assert_eq!(info.event_clock().unwrap(), EventClock::HTE);
I was surprised to find HTE tests passing on a kernel without CONFIG_HTE. I take that as being a kernel bug (GPIO_V2_LINE_VALID_FLAGS includes the HTE flag unconditionally - which is wrong IMHO).
Bah, I was running an old-ish kernel (5.19) in my test setup.
A check for this was added in my HTE tidy up - commit 272ddba0047 "gpiolib: cdev: compile out HTE unless CONFIG_HTE selected"
So the HTE tests now do fail with a more recent kernel (6.0+) - unless you have HTE support.
Cheers, Kent.
You probably shouldn't assume HTE works - unless you have a system that supports HTE.
Other than that the tests look good to me, though as with the Python bindings I've only skimmed them.
Cheers, Kent.