65 std::vector<TEST_DESCRIPTION> tests =
69 {
"issue2904",
false,
false,
false,
true,
false,
false, 9 },
70 {
"issue5093",
false,
false,
false,
false,
true,
false, 118 },
71 {
"issue7004",
false,
true,
false,
false,
false,
true, 25 },
72 {
"issue8883",
true,
true,
true,
true,
false,
true, 80 },
73 {
"issue10916",
false,
false,
true,
false,
false,
false, 0 }
80 m_board->GetConnectivity()->RecalculateRatsnest();
81 m_board->UpdateRatsnestExclusions();
84 toolMgr.
SetEnvironment( m_board.get(),
nullptr,
nullptr,
nullptr,
nullptr );
88 std::vector< std::shared_ptr<CLEANUP_ITEM> > dryRunItems;
89 std::vector< std::shared_ptr<CLEANUP_ITEM> > realRunItems;
91 cleaner.
CleanupBoard(
true, &dryRunItems, entry.m_Shorts,
92 entry.m_RedundantVias,
93 entry.m_RedundantTracks,
94 entry.m_DanglingTracks,
96 entry.m_DanglingVias );
98 cleaner.
CleanupBoard(
true, &realRunItems, entry.m_Shorts,
99 entry.m_RedundantVias,
100 entry.m_RedundantTracks,
101 entry.m_DanglingTracks,
102 entry.m_TracksInPads,
103 entry.m_DanglingVias );
105 if( dryRunItems.size() == entry.m_Expected && realRunItems.size() == entry.m_Expected )
107 BOOST_CHECK_EQUAL( 1, 1 );
108 BOOST_TEST_MESSAGE(
wxString::Format(
"Track cleaner regression: %s, passed",
113 BOOST_CHECK_EQUAL( dryRunItems.size(), entry.m_Expected );
114 BOOST_CHECK_EQUAL( realRunItems.size(), entry.m_Expected );
118 std::map<KIID, EDA_ITEM*> itemMap;
119 m_board->FillItemMap( itemMap );
121 for(
const std::shared_ptr<CLEANUP_ITEM>& item : realRunItems )
140 std::vector<wxString> tests = {
"issue832",
145 for(
const wxString& relPath : tests )
149 m_board->GetConnectivity()->RecalculateRatsnest();
150 m_board->UpdateRatsnestExclusions();
153 toolMgr.
SetEnvironment( m_board.get(),
nullptr,
nullptr,
nullptr,
nullptr );
157 std::vector< std::shared_ptr<CLEANUP_ITEM> > dryRunItems;
158 std::vector< std::shared_ptr<CLEANUP_ITEM> > realRunItems;
174 BOOST_CHECK_EQUAL( dryRunItems.size(), realRunItems.size() );
176 std::vector<DRC_ITEM> violations;
186 [&](
const std::shared_ptr<DRC_ITEM>& aItem,
VECTOR2I aPos,
int aLayer )
189 violations.push_back( *aItem );
194 if( violations.empty() )
196 BOOST_TEST_MESSAGE(
wxString::Format(
"Track cleaner regression: %s, passed",
203 std::map<KIID, EDA_ITEM*> itemMap;
204 m_board->FillItemMap( itemMap );
206 for(
const DRC_ITEM& item : violations )
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
void CleanupBoard(bool aDryRun, std::vector< std::shared_ptr< CLEANUP_ITEM > > *aItemsList, bool aCleanVias, bool aRemoveMisConnected, bool aMergeSegments, bool aDeleteUnconnected, bool aDeleteTracksinPad, bool aDeleteDanglingVias, REPORTER *aReporter=nullptr)
the cleanup function.
@ DRCE_LIB_FOOTPRINT_ISSUES
@ DRCE_LIB_FOOTPRINT_MISMATCH
void LoadBoard(SETTINGS_MANAGER &aSettingsManager, const wxString &aRelPath, std::unique_ptr< BOARD > &aBoard)
void FillZones(BOARD *m_board)
void Format(OUTPUTFORMATTER *out, int aNestLevel, int aCtl, const CPTREE &aTree)
Output a PTREE into s-expression format via an OUTPUTFORMATTER derivative.
SETTINGS_MANAGER m_settingsManager
TRACK_CLEANER_TEST_FIXTURE()
std::unique_ptr< BOARD > m_board
BOOST_FIXTURE_TEST_CASE(FailedToCleanRegressionTests, TRACK_CLEANER_TEST_FIXTURE)