Don't report starved thermals when connected only to isolated islands.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/16866
This commit is contained in:
Jeff Young 2024-02-07 14:02:16 +00:00
parent 6125a183b4
commit 1e6986d2f5
2 changed files with 15 additions and 3 deletions

View File

@ -196,6 +196,18 @@ void DRC_TEST_PROVIDER_ZONE_CONNECTIONS::testZoneLayer( ZONE* aZone, PCB_LAYER_I
}
}
//
// If we're *only* connected to isolated islands, then ignore the fact that they're
// isolated. (We leave that for the connectivity tester, which checks connections on
// all layers.)
//
if( spokes == 0 )
{
spokes += ignoredSpokes;
ignoredSpokes = 0;
}
//
// And finally report it if there aren't enough:
//

View File

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