@@ -97,14 +97,14 @@ static sai_status_t MockMdioCl22Write(
9797 return SAI_STATUS_SUCCESS;
9898}
9999
100- #if 0
101- TEST(MdioIpcServer1, mdioRead1)
100+ TEST (MdioIpcServer, mdioAccess)
102101{
103- std::shared_ptr<MockableSaiInterface> mdio_sai1(new MockableSaiInterface());
104- mdio_sai1->mock_switchMdioRead = MockMdioRead;
105- mdio_sai1->mock_switchMdioWrite = MockMdioWrite;
106- mdio_sai1->mock_switchMdioCl22Read = MockMdioCl22Read;
107- mdio_sai1->mock_switchMdioCl22Write = MockMdioCl22Write;
102+ SWSS_LOG_ENTER ();
103+ std::shared_ptr<MockableSaiInterface> mdio_sai (new MockableSaiInterface ());
104+ mdio_sai->mock_switchMdioRead = MockMdioRead;
105+ mdio_sai->mock_switchMdioWrite = MockMdioWrite;
106+ mdio_sai->mock_switchMdioCl22Read = MockMdioCl22Read;
107+ mdio_sai->mock_switchMdioCl22Write = MockMdioCl22Write;
108108 char path[64 ];
109109 strcpy (path, SYNCD_IPC_SOCK_SYNCD);
110110 if (open (path, O_DIRECTORY) < 0 )
@@ -115,241 +115,63 @@ TEST(MdioIpcServer1, mdioRead1)
115115 SWSS_LOG_WARN (" Can not create directory %s" , SYNCD_IPC_SOCK_SYNCD);
116116 }
117117 }
118- mdioDevRegValMap.clear();
119- std::shared_ptr<MdioIpcServer> mdio_server1(new MdioIpcServer(mdio_sai1, 0));
120- mdio_server1->setIpcTestMode();
121- mdio_server1->setSwitchId(0x21000000000000);
122- mdio_server1->startMdioThread();
118+ std::shared_ptr<MdioIpcServer> mdio_server (new MdioIpcServer (mdio_sai, 0 ));
119+ mdio_server->setIpcTestMode ();
120+ mdio_server->setSwitchId (0x21000000000000 );
121+ mdio_server->startMdioThread ();
123122 sleep (1 );
123+
124+ uint32_t data;
125+ uint64_t key;
124126 sai_status_t rc;
125- uint32_t data = 0;
126- uint64_t key = 0x4;
127+
128+ /* MDIO read */
129+ mdioDevRegValMap.clear ();
130+ data = 0 ;
131+ key = 0x4 ;
127132 key <<= 32 ;
128133 key |= 0x1A ;
129134 mdioDevRegValMap[key] = 0xC0DE ;
130135 rc = mdio_read (0xF0F0F0F0F0F0F0F0 , 0x4 , 0x1A , 1 , &data);
131136 SWSS_LOG_NOTICE (" rc = %d, data = %x" , rc, data);
132137 EXPECT_EQ (rc, SAI_STATUS_SUCCESS);
133138 EXPECT_EQ (data, 0xC0DE );
134- mdio_server1->stopMdioThread();
135- sleep(1);
136- }
137139
138- TEST(MdioIpcServer1, mdioWrite1)
139- {
140- std::shared_ptr<MockableSaiInterface> mdio_sai1(new MockableSaiInterface());
141- mdio_sai1->mock_switchMdioRead = MockMdioRead;
142- mdio_sai1->mock_switchMdioWrite = MockMdioWrite;
143- mdio_sai1->mock_switchMdioCl22Read = MockMdioCl22Read;
144- mdio_sai1->mock_switchMdioCl22Write = MockMdioCl22Write;
145- char path[64];
146- strcpy(path, SYNCD_IPC_SOCK_SYNCD);
147- if (open(path, O_DIRECTORY) < 0)
148- {
149- SWSS_LOG_NOTICE("Directory %s does not exist", SYNCD_IPC_SOCK_SYNCD);
150- if (mkdir(SYNCD_IPC_SOCK_SYNCD, 0755) < 0)
151- {
152- SWSS_LOG_WARN("Can not create directory %s", SYNCD_IPC_SOCK_SYNCD);
153- }
154- }
140+ /* MDIO write */
155141 mdioDevRegValMap.clear ();
156- std::shared_ptr<MdioIpcServer> mdio_server1(new MdioIpcServer(mdio_sai1, 0));
157- mdio_server1->setIpcTestMode();
158- mdio_server1->setSwitchId(0x21000000000000);
159- mdio_server1->startMdioThread();
160- sleep(1);
161- sai_status_t rc;
162- uint32_t data = 0xBEEF;
142+ data = 0xBEEF ;
163143 rc = mdio_write (0xF0F0F0F0F0F0F0F0 , 0x3 , 0x1B , 1 , &data);
164144 SWSS_LOG_NOTICE (" rc = %d" , rc);
165145 EXPECT_EQ (rc, SAI_STATUS_SUCCESS);
166- uint64_t key = 0x3;
146+ key = 0x3 ;
167147 key <<= 32 ;
168148 key |= 0x1B ;
169149 SWSS_LOG_NOTICE (" reg = %x" , mdioDevRegValMap[key]);
170150 EXPECT_EQ (mdioDevRegValMap[key], 0xBEEF );
171- mdio_server1->stopMdioThread();
172- sleep(1);
173- }
174151
175- TEST(MdioIpcServer1, mdioCl22Read1)
176- {
177- std::shared_ptr<MockableSaiInterface> mdio_sai1(new MockableSaiInterface());
178- mdio_sai1->mock_switchMdioRead = MockMdioRead;
179- mdio_sai1->mock_switchMdioWrite = MockMdioWrite;
180- mdio_sai1->mock_switchMdioCl22Read = MockMdioCl22Read;
181- mdio_sai1->mock_switchMdioCl22Write = MockMdioCl22Write;
182- char path[64];
183- strcpy(path, SYNCD_IPC_SOCK_SYNCD);
184- if (open(path, O_DIRECTORY) < 0)
185- {
186- SWSS_LOG_NOTICE("Directory %s does not exist", SYNCD_IPC_SOCK_SYNCD);
187- if (mkdir(SYNCD_IPC_SOCK_SYNCD, 0755) < 0)
188- {
189- SWSS_LOG_WARN("Can not create directory %s", SYNCD_IPC_SOCK_SYNCD);
190- }
191- }
152+ /* MDIO CL22 read */
192153 mdioDevCl22RegValMap.clear ();
193- std::shared_ptr<MdioIpcServer> mdio_server1(new MdioIpcServer(mdio_sai1, 0));
194- mdio_server1->setIpcTestMode();
195- mdio_server1->setSwitchId(0x21000000000000);
196- mdio_server1->startMdioThread();
197- sleep(1);
198- sai_status_t rc;
199- uint32_t data = 0x0;
200- uint64_t key = 0x2;
154+ data = 0x0 ;
155+ key = 0x2 ;
201156 key <<= 32 ;
202157 key |= 0x1C ;
203158 mdioDevCl22RegValMap[key] = 0xFEED ;
204159 rc = mdio_read_cl22 (0xF0F0F0F0F0F0F0F0 , 0x2 , 0x1C , 1 , &data);
205160 SWSS_LOG_NOTICE (" rc = %d, data = %x" , rc, data);
206161 EXPECT_EQ (rc, SAI_STATUS_SUCCESS);
207162 EXPECT_EQ (data, 0xFEED );
208- mdio_server1->stopMdioThread();
209- sleep(1);
210- }
211-
212- TEST(MdioIpcServer1, mdioCl22Write1)
213- {
214- std::shared_ptr<MockableSaiInterface> mdio_sai1(new MockableSaiInterface());
215- mdio_sai1->mock_switchMdioRead = MockMdioRead;
216- mdio_sai1->mock_switchMdioWrite = MockMdioWrite;
217- mdio_sai1->mock_switchMdioCl22Read = MockMdioCl22Read;
218- mdio_sai1->mock_switchMdioCl22Write = MockMdioCl22Write;
219- char path[64];
220- strcpy(path, SYNCD_IPC_SOCK_SYNCD);
221- if (open(path, O_DIRECTORY) < 0)
222- {
223- SWSS_LOG_NOTICE("Directory %s does not exist", SYNCD_IPC_SOCK_SYNCD);
224- if (mkdir(SYNCD_IPC_SOCK_SYNCD, 0755) < 0)
225- {
226- SWSS_LOG_WARN("Can not create directory %s", SYNCD_IPC_SOCK_SYNCD);
227- }
228- }
229- mdioDevCl22RegValMap.clear();
230- std::shared_ptr<MdioIpcServer> mdio_server1(new MdioIpcServer(mdio_sai1, 0));
231- mdio_server1->setIpcTestMode();
232- mdio_server1->setSwitchId(0x21000000000000);
233- mdio_server1->startMdioThread();
234- sleep(1);
235- sai_status_t rc;
236- uint32_t data = 0xCAFE;
237- rc = mdio_write_cl22(0xF0F0F0F0F0F0F0F0, 0x1, 0x1D, 1, &data);
238- SWSS_LOG_NOTICE("rc = %d", rc);
239- EXPECT_EQ(rc, SAI_STATUS_SUCCESS);
240- uint64_t key = 0x1;
241- key <<= 32;
242- key |= 0x1D;
243- SWSS_LOG_NOTICE("cl22 reg = %x", mdioDevCl22RegValMap[key]);
244- EXPECT_EQ(mdioDevCl22RegValMap[key], 0xCAFE);
245- mdio_server1->stopMdioThread();
246- sleep(1);
247- }
248- #endif
249-
250- class MdioIpcServerTest : public ::testing::Test
251- {
252- public:
253- MdioIpcServerTest () = default ;
254- virtual ~MdioIpcServerTest () = default ;
255-
256- public:
257- virtual void SetUp () override
258- {
259- char path[64 ];
260- strcpy (path, SYNCD_IPC_SOCK_SYNCD);
261- if (open (path, O_DIRECTORY) < 0 )
262- {
263- SWSS_LOG_NOTICE (" Directory %s does not exist" , SYNCD_IPC_SOCK_SYNCD);
264- if (mkdir (SYNCD_IPC_SOCK_SYNCD, 0755 ) < 0 )
265- {
266- SWSS_LOG_WARN (" Can not create directory %s" , SYNCD_IPC_SOCK_SYNCD);
267- }
268- }
269- mdio_sai = std::make_shared<MockableSaiInterface>();
270- mdio_sai->mock_switchMdioRead = MockMdioRead;
271- mdio_sai->mock_switchMdioWrite = MockMdioWrite;
272- mdio_sai->mock_switchMdioCl22Read = MockMdioCl22Read;
273- mdio_sai->mock_switchMdioCl22Write = MockMdioCl22Write;
274- mdio_server = std::make_shared<MdioIpcServer>(mdio_sai, 0 );
275- mdio_server->setIpcTestMode ();
276- mdio_server->setSwitchId (0x21000000000000 );
277- mdio_server->startMdioThread ();
278-
279- /* enough time for the server thread to finish setting up socket */
280- sleep (1 );
281- }
282-
283- virtual void TearDown () override
284- {
285- mdio_server->stopMdioThread ();
286-
287- /* enough time stop the server thread*/
288- sleep (1 );
289- }
290-
291- protected:
292- std::shared_ptr<MockableSaiInterface> mdio_sai;
293- std::shared_ptr<MdioIpcServer> mdio_server;
294163
295- };
296-
297- TEST_F (MdioIpcServerTest, mdioCl22Write)
298- {
164+ /* MDIO CL22 write */
299165 mdioDevCl22RegValMap.clear ();
300- sai_status_t rc;
301- uint32_t data = 0xCAFE ;
166+ data = 0xCAFE ;
302167 rc = mdio_write_cl22 (0xF0F0F0F0F0F0F0F0 , 0x1 , 0x1D , 1 , &data);
303168 SWSS_LOG_NOTICE (" rc = %d" , rc);
304169 EXPECT_EQ (rc, SAI_STATUS_SUCCESS);
305- uint64_t key = 0x1 ;
170+ key = 0x1 ;
306171 key <<= 32 ;
307172 key |= 0x1D ;
308173 SWSS_LOG_NOTICE (" cl22 reg = %x" , mdioDevCl22RegValMap[key]);
309174 EXPECT_EQ (mdioDevCl22RegValMap[key], 0xCAFE );
310- }
311-
312- TEST_F (MdioIpcServerTest, mdioCl22Read)
313- {
314- mdioDevCl22RegValMap.clear ();
315- sai_status_t rc;
316- uint32_t data = 0x0 ;
317- uint64_t key = 0x2 ;
318- key <<= 32 ;
319- key |= 0x1C ;
320- mdioDevCl22RegValMap[key] = 0xFEED ;
321- rc = mdio_read_cl22 (0xF0F0F0F0F0F0F0F0 , 0x2 , 0x1C , 1 , &data);
322- SWSS_LOG_NOTICE (" rc = %d, data = %x" , rc, data);
323- EXPECT_EQ (rc, SAI_STATUS_SUCCESS);
324- EXPECT_EQ (data, 0xFEED );
325- }
326-
327- TEST_F (MdioIpcServerTest, mdioWrite)
328- {
329- mdioDevRegValMap.clear ();
330- sai_status_t rc;
331- uint32_t data = 0xBEEF ;
332- rc = mdio_write (0xF0F0F0F0F0F0F0F0 , 0x3 , 0x1B , 1 , &data);
333- SWSS_LOG_NOTICE (" rc = %d" , rc);
334- EXPECT_EQ (rc, SAI_STATUS_SUCCESS);
335- uint64_t key = 0x3 ;
336- key <<= 32 ;
337- key |= 0x1B ;
338- SWSS_LOG_NOTICE (" reg = %x" , mdioDevRegValMap[key]);
339- EXPECT_EQ (mdioDevRegValMap[key], 0xBEEF );
340- }
341175
342- TEST_F (MdioIpcServerTest, mdioRead)
343- {
344- mdioDevRegValMap.clear ();
345- sai_status_t rc;
346- uint32_t data = 0 ;
347- uint64_t key = 0x4 ;
348- key <<= 32 ;
349- key |= 0x1A ;
350- mdioDevRegValMap[key] = 0xC0DE ;
351- rc = mdio_read (0xF0F0F0F0F0F0F0F0 , 0x4 , 0x1A , 1 , &data);
352- SWSS_LOG_NOTICE (" rc = %d, data = %x" , rc, data);
353- EXPECT_EQ (rc, SAI_STATUS_SUCCESS);
354- EXPECT_EQ (data, 0xC0DE );
176+ mdio_server->stopMdioThread ();
355177}
0 commit comments