51 std::vector<wxString> tests =
66 "unconnected-netnames/unconnected-netnames",
69 for(
const wxString& relPath : tests )
74 std::vector<DRC_ITEM> violations;
88 [&](
const std::shared_ptr<DRC_ITEM>& aItem,
VECTOR2I aPos,
int aLayer )
91 violations.push_back( *aItem );
96 if( violations.empty() )
98 BOOST_CHECK_EQUAL( 1, 1 );
99 BOOST_TEST_MESSAGE( wxString::Format(
"DRC regression: %s, passed", relPath ) );
105 std::map<KIID, EDA_ITEM*> itemMap;
106 m_board->FillItemMap( itemMap );
108 for(
const DRC_ITEM& item : violations )
114 BOOST_ERROR( wxString::Format(
"DRC regression: %s, failed (err: expected 0 found %d",
115 relPath, (
int)violations.size() ) );
125 std::vector< std::pair<wxString, int> > tests =
142 {
"reverse_via", 3 },
143 {
"intersectingzones", 1 },
147 for(
const auto& [testName, expectedErrors] : tests )
152 std::vector<DRC_ITEM> violations;
161 [&](
const std::shared_ptr<DRC_ITEM>& aItem,
VECTOR2I aPos,
int aLayer )
166 violations.push_back( *aItem );
171 if( violations.size() == expectedErrors )
173 BOOST_CHECK_EQUAL( 1, 1 );
174 BOOST_TEST_MESSAGE( wxString::Format(
"DRC regression: %s, passed", testName ) );
180 std::map<KIID, EDA_ITEM*> itemMap;
181 m_board->FillItemMap( itemMap );
183 for(
const DRC_ITEM& item : violations )
189 BOOST_CHECK_EQUAL( violations.size(), expectedErrors );
191 BOOST_ERROR( wxString::Format(
"DRC regression: %s, failed", testName ) );
constexpr EDA_IU_SCALE pcbIUScale
Container for design settings for a BOARD object.
std::map< int, SEVERITY > m_DRCSeverities
std::shared_ptr< DRC_ENGINE > m_DRCEngine
std::set< wxString > m_DrcExclusions
SEVERITY GetSeverity(int aDRCErrorCode)
wxString SerializeToString() const
@ DRCE_LIB_FOOTPRINT_ISSUES
@ DRCE_LIB_FOOTPRINT_MISMATCH
void LoadBoard(SETTINGS_MANAGER &aSettingsManager, const wxString &aRelPath, std::unique_ptr< BOARD > &aBoard)
SETTINGS_MANAGER m_settingsManager
DRC_REGRESSION_TEST_FIXTURE()
std::unique_ptr< BOARD > m_board
BOOST_FIXTURE_TEST_CASE(DRCFalsePositiveRegressions, DRC_REGRESSION_TEST_FIXTURE)