Fix QA gold DRC counts.

Also improves the error message when some spokes are ignored because
they're connected to an isolated island.
This commit is contained in:
Jeff Young 2023-08-04 00:35:04 +01:00
parent f463b9d017
commit 9456fab435
2 changed files with 19 additions and 8 deletions

View File

@ -79,6 +79,7 @@ void DRC_TEST_PROVIDER_ZONE_CONNECTIONS::testZoneLayer( ZONE* aZone, PCB_LAYER_I
BOARD_DESIGN_SETTINGS& bds = board->GetDesignSettings();
std::shared_ptr<CONNECTIVITY_DATA> connectivity = board->GetConnectivity();
DRC_CONSTRAINT constraint;
wxString msg;
const std::shared_ptr<SHAPE_POLY_SET>& zoneFill = aZone->GetFilledPolysList( aLayer );
ISOLATED_ISLANDS isolatedIslands;
@ -189,11 +190,21 @@ void DRC_TEST_PROVIDER_ZONE_CONNECTIONS::testZoneLayer( ZONE* aZone, PCB_LAYER_I
if( spokes < minCount )
{
std::shared_ptr<DRC_ITEM> drce = DRC_ITEM::Create( DRCE_STARVED_THERMAL );
wxString msg = wxString::Format( _( "(layer %s; %s min spoke count %d; actual %d)" ),
board->GetLayerName( aLayer ),
constraint.GetName(),
minCount,
spokes );
if( ignoredSpokes )
{
msg = wxString::Format( _( "(layer %s; %d spokes connected to isolated island)" ),
board->GetLayerName( aLayer ),
ignoredSpokes );
}
else
{
msg = wxString::Format( _( "(layer %s; %s min spoke count %d; actual %d)" ),
board->GetLayerName( aLayer ),
constraint.GetName(),
minCount,
spokes );
}
drce->SetErrorMessage( drce->GetErrorText() + wxS( " " ) + msg );
drce->SetItems( aZone, pad );

View File

@ -122,10 +122,10 @@ BOOST_FIXTURE_TEST_CASE( DRCFalseNegativeRegressions, DRC_REGRESSION_TEST_FIXTUR
std::vector< std::pair<wxString, int> > tests =
{
{ "issue1358", 2 },
{ "issue1358", 3 },
{ "issue2512", 5 },
{ "issue2528", 1 },
{ "issue5750", 4 }, // Shorting zone fills pass DRC in some cases
{ "issue5750", 6 }, // Shorting zone fills pass DRC in some cases
{ "issue5854", 3 },
{ "issue6879", 6 },
{ "issue6945", 2 },
@ -137,7 +137,7 @@ BOOST_FIXTURE_TEST_CASE( DRCFalseNegativeRegressions, DRC_REGRESSION_TEST_FIXTUR
{ "issue12109", 8 }, // Pads fail annular width test
{ "issue14334", 2 }, // Thermal spoke to otherwise unconnected island
{ "reverse_via", 3 }, // Via/track ordering
{ "intersectingzones", 1 }, // zones are too close to each other
{ "intersectingzones", 2 }, // zones are too close to each other
{ "fill_bad", 1 } // zone max BBox was too small
};