|
KiCad PCB EDA Suite
|
Regression test for issue #24177: PcbNew 10.99 erroneously reported silk-to-rule-area clearance violations and solder-mask bridges against ZONE objects that are rule areas (logical keepouts/disallow regions). More...
#include <algorithm>#include <qa_utils/wx_utils/unit_test_utils.h>#include <board.h>#include <board_design_settings.h>#include <pcb_shape.h>#include <pcbnew_utils/board_file_utils.h>#include <zone.h>#include <drc/drc_engine.h>#include <drc/drc_item.h>#include <widgets/report_severity.h>Go to the source code of this file.
Functions | |
| BOOST_AUTO_TEST_CASE (RuleAreaDoesNotCauseSilkOrMaskViolationsIssue24177) | |
Regression test for issue #24177: PcbNew 10.99 erroneously reported silk-to-rule-area clearance violations and solder-mask bridges against ZONE objects that are rule areas (logical keepouts/disallow regions).
A rule area has GetIsRuleArea() == true and represents a constraint, not physical copper, mask or silk material. When the silk-clearance and solder-mask DRC providers inserted rule-area zones into their rtrees the resulting collisions produced bogus violations between the rule area and any nearby silk graphic.
The fix skips rule areas in both providers' rtree population.
Definition in file test_drc_silk_rule_area_issue24177.cpp.
| BOOST_AUTO_TEST_CASE | ( | RuleAreaDoesNotCauseSilkOrMaskViolationsIssue24177 | ) |
Definition at line 50 of file test_drc_silk_rule_area_issue24177.cpp.
References BOOST_CHECK_EQUAL(), BOOST_REQUIRE(), DRC_ENGINE::ClearViolationHandler(), DRCE_LAST, DRCE_SILK_CLEARANCE, DRCE_SILK_EDGE_CLEARANCE, DRCE_SILK_MASK_CLEARANCE, DRCE_SOLDERMASK_BRIDGE, F_SilkS, KI_TEST::GetPcbnewTestDataDir(), DRC_ENGINE::InitEngine(), BOARD_DESIGN_SETTINGS::m_DRCEngine, BOARD_DESIGN_SETTINGS::m_DRCSeverities, MM, path, PCB_SHAPE_T, KI_TEST::ReadBoardFromFileOrStream(), RPT_SEVERITY_ERROR, RPT_SEVERITY_IGNORE, DRC_ENGINE::RunTests(), and DRC_ENGINE::SetViolationHandler().