58 wxS(
"issue24409/issue24409.kicad_sch" );
68 BOOST_REQUIRE_EQUAL( sheets.size(), 4u );
73 BOOST_REQUIRE_EQUAL( refs.
GetCount(), 6u );
75 std::set<wxString> seenRefs;
77 for(
size_t i = 0; i < refs.
GetCount(); ++i )
78 seenRefs.insert( refs[i].GetRef() );
80 BOOST_CHECK( seenRefs.count( wxS(
"R1" ) ) );
81 BOOST_CHECK( seenRefs.count( wxS(
"R2" ) ) );
82 BOOST_CHECK( seenRefs.count( wxS(
"R3" ) ) );
83 BOOST_CHECK( seenRefs.count( wxS(
"R4" ) ) );
84 BOOST_CHECK( seenRefs.count( wxS(
"R5" ) ) );
85 BOOST_CHECK( seenRefs.count( wxS(
"R6" ) ) );
96 sch->ConnectionGraph()->RunERC();
99 int unconnectedMarkers = 0;
100 std::set<wxString> markedRefs;
102 std::set<const SCH_SCREEN*> visitedScreens;
109 if( !visitedScreens.insert( screen ).second )
115 std::shared_ptr<ERC_ITEM> ercItem =
116 std::dynamic_pointer_cast<ERC_ITEM>( marker->
GetRCItem() );
121 ++unconnectedMarkers;
124 ? ercItem->GetSpecificSheetPath()
126 EDA_ITEM* erred = sch->ResolveItem( ercItem->GetMainItemID(),
nullptr,
true );
131 markedRefs.insert( parent->GetRef( &markerSheet ) );
140 "Expected 4 deduplicated pin_not_connected markers, got "
141 << unconnectedMarkers );
147 for(
const wxString& ref : { wxS(
"R1" ), wxS(
"R2" ) } )
150 "Missing pin_not_connected marker for " << ref
151 <<
" on the first sheet instance" );
154 for(
const wxString& ref : { wxS(
"R3" ), wxS(
"R4" ), wxS(
"R5" ), wxS(
"R6" ) } )
157 "Unexpected pin_not_connected marker for " << ref
158 <<
"; dedup should keep only the first instance" );
165 std::shared_ptr<SHEETLIST_ERC_ITEMS_PROVIDER> markersProvider =
166 std::make_shared<SHEETLIST_ERC_ITEMS_PROVIDER>( sch.get() );
172 for(
const wxString& ref : { wxS(
"R1" ), wxS(
"R2" ) } )
175 "ERC text report missing pin_not_connected for "
176 << ref <<
"\n" << report );
179 for(
const wxString& ref : { wxS(
"R3" ), wxS(
"R4" ), wxS(
"R5" ), wxS(
"R6" ) } )
182 "ERC text report unexpectedly mentions "
183 << ref <<
"\n" << report );
void GetSymbols(SCH_REFERENCE_LIST &aReferences, SYMBOL_FILTER aSymbolFilter, bool aForceIncludeOrphanSymbols=false) const
Add a SCH_REFERENCE object to aReferences for each symbol in the list of sheets.