aboutsummaryrefslogtreecommitdiff
path: root/embassy-net-adin1110/src
diff options
context:
space:
mode:
authorRenĂ© van Dorst <[email protected]>2023-09-07 21:08:49 +0200
committerRenĂ© van Dorst <[email protected]>2023-09-07 21:25:53 +0200
commit336ae54a5636bf02c0c7b98b0dd59e4cff5d5192 (patch)
tree7c71327bbd550375b4b5c41bbb3851f3ba8bbae8 /embassy-net-adin1110/src
parentd6a1118406deb1cb4cf6317dfbbacf12ff9c7d63 (diff)
mdio: reenable and async the tests
Diffstat (limited to 'embassy-net-adin1110/src')
-rw-r--r--embassy-net-adin1110/src/mdio.rs173
1 files changed, 87 insertions, 86 deletions
diff --git a/embassy-net-adin1110/src/mdio.rs b/embassy-net-adin1110/src/mdio.rs
index 60abbe16a..1ae5f0043 100644
--- a/embassy-net-adin1110/src/mdio.rs
+++ b/embassy-net-adin1110/src/mdio.rs
@@ -32,6 +32,7 @@ enum Reg13Op {
32 PostReadIncAddr = 0b10 << 14, 32 PostReadIncAddr = 0b10 << 14,
33 Read = 0b11 << 14, 33 Read = 0b11 << 14,
34} 34}
35
35/// `MdioBus` trait 36/// `MdioBus` trait
36/// Driver needs to implement the Clause 22 37/// Driver needs to implement the Clause 22
37/// Optional Clause 45 is the device supports this. 38/// Optional Clause 45 is the device supports this.
@@ -87,89 +88,89 @@ pub trait MdioBus {
87 } 88 }
88} 89}
89 90
90// #[cfg(test)] 91#[cfg(test)]
91// mod tests { 92mod tests {
92// use core::convert::Infallible; 93 use core::convert::Infallible;
93 94
94// use super::{MdioBus, PhyAddr, RegC22, RegVal}; 95 use super::{MdioBus, PhyAddr, RegC22, RegVal};
95 96
96// #[derive(Debug, PartialEq, Eq)] 97 #[derive(Debug, PartialEq, Eq)]
97// enum A { 98 enum A {
98// Read(PhyAddr, RegC22), 99 Read(PhyAddr, RegC22),
99// Write(PhyAddr, RegC22, RegVal), 100 Write(PhyAddr, RegC22, RegVal),
100// } 101 }
101 102
102// struct MockMdioBus(Vec<A>); 103 struct MockMdioBus(Vec<A>);
103 104
104// impl MockMdioBus { 105 impl MockMdioBus {
105// pub fn clear(&mut self) { 106 pub fn clear(&mut self) {
106// self.0.clear(); 107 self.0.clear();
107// } 108 }
108// } 109 }
109 110
110// impl MdioBus for MockMdioBus { 111 impl MdioBus for MockMdioBus {
111// type Error = Infallible; 112 type Error = Infallible;
112 113
113// fn write_cl22( 114 async fn write_cl22(
114// &mut self, 115 &mut self,
115// phy_id: super::PhyAddr, 116 phy_id: super::PhyAddr,
116// reg: super::RegC22, 117 reg: super::RegC22,
117// reg_val: super::RegVal, 118 reg_val: super::RegVal,
118// ) -> Result<(), Self::Error> { 119 ) -> Result<(), Self::Error> {
119// self.0.push(A::Write(phy_id, reg, reg_val)); 120 self.0.push(A::Write(phy_id, reg, reg_val));
120// Ok(()) 121 Ok(())
121// } 122 }
122 123
123// fn read_cl22( 124 async fn read_cl22(
124// &mut self, 125 &mut self,
125// phy_id: super::PhyAddr, 126 phy_id: super::PhyAddr,
126// reg: super::RegC22, 127 reg: super::RegC22,
127// ) -> Result<super::RegVal, Self::Error> { 128 ) -> Result<super::RegVal, Self::Error> {
128// self.0.push(A::Read(phy_id, reg)); 129 self.0.push(A::Read(phy_id, reg));
129// Ok(0) 130 Ok(0)
130// } 131 }
131// } 132 }
132 133
133// #[test] 134 #[futures_test::test]
134// fn read_test() { 135 async fn read_test() {
135// let mut mdiobus = MockMdioBus(Vec::with_capacity(20)); 136 let mut mdiobus = MockMdioBus(Vec::with_capacity(20));
136 137
137// mdiobus.clear(); 138 mdiobus.clear();
138// mdiobus.read_cl22(0x01, 0x00).unwrap(); 139 mdiobus.read_cl22(0x01, 0x00).await.unwrap();
139// assert_eq!(mdiobus.0, vec![A::Read(0x01, 0x00)]); 140 assert_eq!(mdiobus.0, vec![A::Read(0x01, 0x00)]);
140 141
141// mdiobus.clear(); 142 mdiobus.clear();
142// mdiobus.read_cl45(0x01, (0xBB, 0x1234)).unwrap(); 143 mdiobus.read_cl45(0x01, (0xBB, 0x1234)).await.unwrap();
143// assert_eq!( 144 assert_eq!(
144// mdiobus.0, 145 mdiobus.0,
145// vec![ 146 vec![
146// #[allow(clippy::identity_op)] 147 #[allow(clippy::identity_op)]
147// A::Write(0x01, 13, (0b00 << 14) | 27), 148 A::Write(0x01, 13, (0b00 << 14) | 27),
148// A::Write(0x01, 14, 0x1234), 149 A::Write(0x01, 14, 0x1234),
149// A::Write(0x01, 13, (0b11 << 14) | 27), 150 A::Write(0x01, 13, (0b11 << 14) | 27),
150// A::Read(0x01, 14) 151 A::Read(0x01, 14)
151// ] 152 ]
152// ); 153 );
153// } 154 }
154 155
155// #[test] 156 #[futures_test::test]
156// fn write_test() { 157 async fn write_test() {
157// let mut mdiobus = MockMdioBus(Vec::with_capacity(20)); 158 let mut mdiobus = MockMdioBus(Vec::with_capacity(20));
158 159
159// mdiobus.clear(); 160 mdiobus.clear();
160// mdiobus.write_cl22(0x01, 0x00, 0xABCD).unwrap(); 161 mdiobus.write_cl22(0x01, 0x00, 0xABCD).await.unwrap();
161// assert_eq!(mdiobus.0, vec![A::Write(0x01, 0x00, 0xABCD)]); 162 assert_eq!(mdiobus.0, vec![A::Write(0x01, 0x00, 0xABCD)]);
162 163
163// mdiobus.clear(); 164 mdiobus.clear();
164// mdiobus.write_cl45(0x01, (0xBB, 0x1234), 0xABCD).unwrap(); 165 mdiobus.write_cl45(0x01, (0xBB, 0x1234), 0xABCD).await.unwrap();
165// assert_eq!( 166 assert_eq!(
166// mdiobus.0, 167 mdiobus.0,
167// vec![ 168 vec![
168// A::Write(0x01, 13, 27), 169 A::Write(0x01, 13, 27),
169// A::Write(0x01, 14, 0x1234), 170 A::Write(0x01, 14, 0x1234),
170// A::Write(0x01, 13, (0b01 << 14) | 27), 171 A::Write(0x01, 13, (0b01 << 14) | 27),
171// A::Write(0x01, 14, 0xABCD) 172 A::Write(0x01, 14, 0xABCD)
172// ] 173 ]
173// ); 174 );
174// } 175 }
175// } 176}