@@ -1487,10 +1487,11 @@ namespace buffermgrdyn_test
1487
1487
4. Existing lossless profiles are removed when the cable length is "0m".
1488
1488
5. No new lossless PG is created when the cable length is "0m".
1489
1489
6. When the cable length is updated to "5m", the correct lossless profiles and PGs are created.
1490
- 7. When the cable length is updated back to "0m", the lossless profiles and PGs are removed.
1490
+ 7. When the cable length is updated back to "0m", the lossless profiles are removed, PG still there .
1491
1491
8. Check if port MTU update, PG and profile still there.
1492
- 9. When the cable length is "0m", lossy PGs remain, while lossless PGs are deleted.
1492
+ 9. When the cable length is "0m", lossy PG and profile can still be created, lossless profile deleted.
1493
1493
*/
1494
+
1494
1495
TEST_F (BufferMgrDynTest, SkipProfileCreationForZeroCableLength)
1495
1496
{
1496
1497
vector<FieldValueTuple> fieldValues;
@@ -1536,7 +1537,7 @@ namespace buffermgrdyn_test
1536
1537
// Expect profile not created
1537
1538
auto zeroMProfile = " pg_lossless_100000_0m_profile" ;
1538
1539
ASSERT_EQ (m_dynamicBuffer->m_bufferProfileLookup .find (zeroMProfile), m_dynamicBuffer->m_bufferProfileLookup .end ());
1539
- ASSERT_TRUE (m_dynamicBuffer->m_portPgLookup . find ( " Ethernet0:3-4" ) == m_dynamicBuffer-> m_portPgLookup . end ());
1540
+ ASSERT_TRUE (m_dynamicBuffer->m_portPgLookup [ " Ethernet0" ][ " Ethernet0 :3-4" ]. running_profile_name . empty ());
1540
1541
1541
1542
// 4. Existing lossless profiles are removed when the cable length is "0m".
1542
1543
// Since the cable length is set to 0m, previous profile for 5m should not exist.
@@ -1545,30 +1546,38 @@ namespace buffermgrdyn_test
1545
1546
// 5. No new lossless PG is created when the cable length is "0m".
1546
1547
// The expectation is that no new PGs should be created with a cable length of 0m.
1547
1548
InitBufferPg (" Ethernet0|6" );
1548
- ASSERT_TRUE (m_dynamicBuffer->m_portPgLookup .find (" Ethernet0:6" ) == m_dynamicBuffer->m_portPgLookup .end ());
1549
+ ASSERT_TRUE (m_dynamicBuffer->m_portPgLookup [" Ethernet0" ].find (" Ethernet0:6" ) != m_dynamicBuffer->m_portPgLookup [" Ethernet0" ].end ());
1550
+ ASSERT_TRUE (m_dynamicBuffer->m_portPgLookup [" Ethernet0" ][" Ethernet0:6" ].running_profile_name .empty ());
1549
1551
1550
1552
// 6. When the cable length is updated to "5m", the correct lossless profiles and PGs are created.
1551
1553
cableLengthTable.set (" AZURE" ,
1552
1554
{
1553
1555
{" Ethernet0" , " 5m" }
1554
1556
});
1555
1557
HandleTable (cableLengthTable);
1556
- // Check if the profiles are created correctly
1558
+ m_dynamicBuffer->doTask ();
1559
+ // Check if the profiles are restored correctly
1557
1560
CheckPg (" Ethernet0" , " Ethernet0:3-4" , " pg_lossless_100000_5m_profile" );
1558
1561
CheckPg (" Ethernet0" , " Ethernet0:6" , " pg_lossless_100000_5m_profile" );
1562
+ ASSERT_TRUE (m_dynamicBuffer->m_portPgLookup [" Ethernet0" ].find (" Ethernet0:3-4" ) != m_dynamicBuffer->m_portPgLookup [" Ethernet0" ].end ());
1563
+ ASSERT_TRUE (m_dynamicBuffer->m_portPgLookup [" Ethernet0" ].find (" Ethernet0:6" ) != m_dynamicBuffer->m_portPgLookup [" Ethernet0" ].end ());
1564
+ ASSERT_EQ (m_dynamicBuffer->m_portPgLookup [" Ethernet0" ][" Ethernet0:3-4" ].running_profile_name , " pg_lossless_100000_5m_profile" );
1565
+ ASSERT_EQ (m_dynamicBuffer->m_portPgLookup [" Ethernet0" ][" Ethernet0:6" ].running_profile_name , " pg_lossless_100000_5m_profile" );
1559
1566
1560
- // 7. When the cable length is updated back to "0m", the lossless profiles and PGs are removed.
1567
+ // 7. When the cable length is updated back to "0m", the lossless profiles are removed, PG still there .
1561
1568
cableLengthTable.set (" AZURE" ,
1562
1569
{
1563
1570
{" Ethernet0" , " 0m" }
1564
1571
});
1565
1572
HandleTable (cableLengthTable);
1566
- // Check that the profiles for 0m do not exist, 5m profile could be still there, because it is shared by other ports
1573
+ m_dynamicBuffer-> doTask ();
1567
1574
ASSERT_TRUE (m_dynamicBuffer->m_bufferProfileLookup .find (" pg_lossless_100000_0m_profile" ) == m_dynamicBuffer->m_bufferProfileLookup .end ());
1568
1575
ASSERT_TRUE (m_dynamicBuffer->m_bufferProfileLookup .find (" pg_lossless_100000_5m_profile" ) == m_dynamicBuffer->m_bufferProfileLookup .end ());
1569
- // Check that the PGs for Ethernet0:3-4 and Ethernet0:6 have been deleted
1570
- ASSERT_TRUE (m_dynamicBuffer->m_portPgLookup .find (" Ethernet0:3-4" ) == m_dynamicBuffer->m_portPgLookup .end ());
1571
- ASSERT_TRUE (m_dynamicBuffer->m_portPgLookup .find (" Ethernet0:6" ) == m_dynamicBuffer->m_portPgLookup .end ());
1576
+ // Check that the PGs for Ethernet0:3-4 and Ethernet0:6 are still there
1577
+ ASSERT_TRUE (m_dynamicBuffer->m_portPgLookup [" Ethernet0" ].find (" Ethernet0:3-4" ) != m_dynamicBuffer->m_portPgLookup [" Ethernet0" ].end ());
1578
+ ASSERT_TRUE (m_dynamicBuffer->m_portPgLookup [" Ethernet0" ].find (" Ethernet0:6" ) != m_dynamicBuffer->m_portPgLookup [" Ethernet0" ].end ());
1579
+ ASSERT_TRUE (m_dynamicBuffer->m_portPgLookup [" Ethernet0" ][" Ethernet0:3-4" ].running_profile_name .empty ());
1580
+ ASSERT_TRUE (m_dynamicBuffer->m_portPgLookup [" Ethernet0" ][" Ethernet0:6" ].running_profile_name .empty ());
1572
1581
1573
1582
// 8. Check if port MTU update, PG and profile still there.
1574
1583
cableLengthTable.set (" AZURE" ,
@@ -1577,40 +1586,27 @@ namespace buffermgrdyn_test
1577
1586
});
1578
1587
HandleTable (cableLengthTable);
1579
1588
string mtu = " 4096" ;
1580
- m_dynamicBuffer->m_portInfoLookup [" Ethernet0" ].mtu = mtu;
1589
+ m_dynamicBuffer->m_portInfoLookup [" Ethernet0" ].mtu = mtu;
1581
1590
// Check if the profile is created correctly
1582
1591
CheckPg (" Ethernet0" , " Ethernet0:3-4" , " pg_lossless_100000_5m_profile" );
1583
1592
CheckPg (" Ethernet0" , " Ethernet0:6" , " pg_lossless_100000_5m_profile" );
1584
1593
1585
- // 7. Check if lossy PG can still be created
1594
+ // 9. When the cable length is "0m", lossy PG and profile can still be created, lossless profile deleted.
1586
1595
InitBufferPg (" Ethernet0|0" , " ingress_lossy_profile" );
1587
1596
cableLengthTable.set (" AZURE" ,
1588
1597
{
1589
1598
{" Ethernet0" , " 0m" }
1590
1599
});
1591
1600
HandleTable (cableLengthTable);
1592
- bool found = false ;
1593
- auto it = m_dynamicBuffer->m_portPgLookup .find (" Ethernet0" );
1594
- if (it != m_dynamicBuffer->m_portPgLookup .end ()) {
1595
- found = (it->second .find (" Ethernet0:0" ) != it->second .end ());
1596
- }
1597
- ASSERT_TRUE (found);
1598
-
1599
- // 9. When the cable length is "0m", lossy PGs remain, while lossless PGs are deleted.
1600
- cableLengthTable.set (" AZURE" ,
1601
- {
1602
- {" Ethernet0" , " 0m" }
1603
- });
1604
- HandleTable (cableLengthTable);
1605
- it = m_dynamicBuffer->m_portPgLookup .find (" Ethernet0" );
1606
- if (it != m_dynamicBuffer->m_portPgLookup .end ()) {
1607
- found = (it->second .find (" Ethernet0:0" ) != it->second .end ());
1608
- }
1609
- ASSERT_TRUE (found);
1601
+ ASSERT_TRUE (m_dynamicBuffer->m_portPgLookup [" Ethernet0" ].find (" Ethernet0:0" ) != m_dynamicBuffer->m_portPgLookup [" Ethernet0" ].end ());
1602
+ ASSERT_TRUE (m_dynamicBuffer->m_portPgLookup [" Ethernet0" ].find (" Ethernet0:3-4" ) != m_dynamicBuffer->m_portPgLookup [" Ethernet0" ].end ());
1603
+ ASSERT_TRUE (m_dynamicBuffer->m_portPgLookup [" Ethernet0" ].find (" Ethernet0:6" ) != m_dynamicBuffer->m_portPgLookup [" Ethernet0" ].end ());
1604
+
1605
+ // Lossy profiles still there
1606
+ ASSERT_EQ (m_dynamicBuffer->m_portPgLookup [" Ethernet0" ][" Ethernet0:0" ].running_profile_name , " ingress_lossy_profile" );
1607
+ ASSERT_TRUE (m_dynamicBuffer->m_portPgLookup [" Ethernet0" ][" Ethernet0:3-4" ].running_profile_name .empty ());
1608
+ ASSERT_TRUE (m_dynamicBuffer->m_portPgLookup [" Ethernet0" ][" Ethernet0:6" ].running_profile_name .empty ());
1610
1609
ASSERT_TRUE (m_dynamicBuffer->m_bufferProfileLookup .find (" pg_lossless_100000_0m_profile" ) == m_dynamicBuffer->m_bufferProfileLookup .end ());
1611
1610
ASSERT_TRUE (m_dynamicBuffer->m_bufferProfileLookup .find (" pg_lossless_100000_5m_profile" ) == m_dynamicBuffer->m_bufferProfileLookup .end ());
1612
- // Check that the PGs for Ethernet0:3-4 and Ethernet0:6 have been deleted
1613
- ASSERT_TRUE (m_dynamicBuffer->m_portPgLookup .find (" Ethernet0:3-4" ) == m_dynamicBuffer->m_portPgLookup .end ());
1614
- ASSERT_TRUE (m_dynamicBuffer->m_portPgLookup .find (" Ethernet0:6" ) == m_dynamicBuffer->m_portPgLookup .end ());
1615
1611
}
1616
1612
}
0 commit comments